Easy PDK Programmerの最終形態、Super Easy PDK Programmerが完成しました。
PCBgogoから基板が届く
PCBgogoに基板を発注して1週間くらいで、基板とメタルマスクが到着しました。今回はいつもより数日早く到着しました。
シルクスクリーン印刷はとても綺麗です。掠れることなく綺麗に印刷されていますね。
今回驚いたのが、QFPパッケージのレジストです。これまで、他の業者ではパッドとパッドの間が狭いために、黒レジストの場合レジストが印刷されませんでした。しかしPCBgogoでは、この狭いパッドとパッドの間もレジストが印刷されています。
パッド間にレジストがあることで、はんだブリッジしにくくなったり、リフローの時にICが正しい位置へ移動するセルフアライメントが起きやすくなると思います。これはいいですね。
PCBgogoの製造品質はとても高いことがわかりました。
組み立て
それでは、早速組み立てていきましょう。
クリームはんだの印刷
ダンボールの上に基板を置きます。今回は基板の端まで部品があり、基板の端にもクリームはんだが印刷されるので、同じ厚みの基板をつないで段差をなくし、スムーズに印刷できるようにしています。
四隅の穴にマップピンを刺して、位置合わせと固定をします。穴の大きさは0.75mmです。
奥側にクリームはんだを乗せます。クリームはんだには、低温で溶ける低融点鉛フリーはんだCHIPQUIK TS391LT50を使っています。メタルマスクからの抜けが良く、粒子が細かいのでクッキリ綺麗に印刷できます。常温保存できるのもとても便利です。
先端がしなるスキージを使って、クリームはんだを手前に引き寄せながら印刷していきます。
USB Type-CやQFPパッケージなどの細かいパッドにも、完璧な位置に綺麗に印刷できました。
部品の実装
続いて部品を実装していきます。私はピンセットではなく、吸着ピンセットHAKKO394を使っています。
テープから部品を掃除機のように吸着します。
部品を目的の場所に置いて離します。部品の上面を吸着するので、上の写真のように、部品と部品の間が狭くても実装が可能です。
ノズルにはこれを使っています。

ちなみに実装の時には、KiCadのプラグイン Interactive HTML BOM を使っています。部品をどこに実装するのか一目でわかって、とても便利ですよ。
上の例では、0.1uFのコンデンサを実装する場所が、赤く表示されています。
LEDやダイオードなど極性のある部品は、テープの中で同じ方向を向いています。テープから直接吸着することで、毎回向きを揃える必要がなくなります。
吸盤のノズルに交換すると、ICなども吸着できます。
マイコンも実装できました。

吸着ピンセットのおかげで、スピーディに実装ができました。
リフロー
熱風が庫内を循環してむらなく加熱できる、テスコムのコンベクションオーブンでリフローします。テスコムのコンベクションオーブンは、加熱の途中でも温度を変更できます。できないメーカーもあるので購入の際は注意してください。
庫内に熱電対温度計を入れておいて、温度をモニターしながら温度調節つまみを調節します。
90度→120度→140度→165度と変化させて終了です。120度、140度とはんだが溶ける近辺の温度をゆっくり上げると失敗が起きにくい感じがします。
リフローが完了しました。目視でのチェックでは問題なさそうです。
ファームウェアの書き込み
それでは、マイコンにファームウェアを書き込んでみます。
DFUボタンを押しながらUSBを接続すると、STM32マイコン内蔵のブートローダが起動します。
USBデバイスツリーを見ると、ブートローダーが接続されていることが確認できます。
ここで、dfu-utilを使ってEasy PDK Programmerのファームウェアを転送します。
USBを抜いて、刺し直します。するとEasy PDK Programmerとして認識されました!順調です。
試しにマイコンにプログラムを書き込んでみましょう。
正常に書き込めました!
PFS122の様々なパッケージ
PFS122など一部のPadaukマイコンは、SOP8とSOP14で一部のピンが異なります。一つのソケットでどちらも対応できるように、今回の書き込み機には切替用のスイッチを設けました。この切り替えがうまくいくか検証してみます。
SOP14
PFS122のSOP14をソケットに入れます。SOPソケットはソケットの周りを上から押し込むことで部品をセットできる状態になります。その中に、バキュームピックを使ってマイコンセットします。
スイッチをSOP14にセットします。
プログラムを書き込んでみます。
Erasing IC... done.
Writing IC (289 words)... done.
正常に書き込めました。
SOP8
続いてSOP8を試してみます。
スイッチをSOP8にセットします。
プログラムを書き込んでみます。
Erasing IC... done.
Writing IC (289 words)... done.
正常に書き込めました。スイッチで切り替える作戦は成功です。
一つのSOPソケットで、SOP8もSOP14、SOP16に対応できることが確認できました。
SOT
ついでにSOTパッケージも試してみます。
Erasing IC... done.
Writing IC (289 words)... done.
正常に書き込めました。SOTとSOP全てのパッケージに書き込みができることがわかりました。
インサーキット書き込み
この書き込み機の最大の特徴である、インサーキット書き込み機能を試してみます。TARGETと書かれたコネクタと、回路とを接続します。
スイッチを「WRITE」にセットします。
マイコンがターゲットの回路から切り離され、書き込み機に接続されます。
プログラムを書き込んでみます。
Erasing IC... done.
Writing IC (289 words)... done.
書き込めました。
スイッチを「RUN」に切り替えます。
マイコンが書き込み機から切り離されて、ターゲットの回路と接続されます。
マイコンが動作を開始して、回路が動作しました。
インサーキット書き込み機能も正常に動作しました!!
最強のSuper Easy PDK Programmer完成
SOT,SOPパッケージのPadaukマイコンに対応した、インサーキット書き込み機能のある世界最強のSuper Easy PDK Programmerが完成しました。
書き込みツールのeasypdkprogが対応していれば、どのマイコンでも書き込めます。
これで、Padaukマイコンの開発が捗ります。
何台か作ったので、今回制作したSuper Easy PDK Programmerを頒布したいと思います。詳しくは下記のサイトをご覧ください。

世界的にもホビイストの中でPadaukマイコンはブームが去っており、私だけが一人で盛り上がっているだけなので、これを逃すと書き込み機は2度と手に入らないと思われます。ちょっとでもPadaukマイコンで遊んでみたいという方は是非お手に取ってみてください。
Super Easy PDK Programmerが対応しているPadaukマイコンのリストです。
MCU390 (0xC31): OTP : 2048 (14 bit), RAM: 128 bytes (RO)
PFS154 (0xAA1): FLASH: 2048 (14 bit), RAM: 128 bytes
PFS172 (0xCA6): FLASH: 2048 (14 bit), RAM: 128 bytes
PFS173 (0xEA2): FLASH: 3072 (15 bit), RAM: 256 bytes
PMC131 (0xC83): OTP : 1536 (14 bit), RAM: 88 bytes (RO)
PMC251 (0x058): OTP : 1024 (16 bit), RAM: 59 bytes (RO)
PMC271 (0xA58): OTP : 1024 (16 bit), RAM: 64 bytes (RO)
PMS131 (0xC83): OTP : 1536 (14 bit), RAM: 88 bytes (RO)
PMS132 (0x109): OTP : 2048 (14 bit), RAM: 128 bytes (RO)
PMS132B (0x109): OTP : 2048 (14 bit), RAM: 128 bytes (RO)
PMS133 (0xC19): OTP : 4096 (15 bit), RAM: 256 bytes (RO)
PMS134 (0xC19): OTP : 4096 (15 bit), RAM: 256 bytes (RO)
PMS150C (0xA16): OTP : 1024 (13 bit), RAM: 64 bytes
PMS152 (0xA27): OTP : 1280 (14 bit), RAM: 80 bytes
PMS154B (0xE06): OTP : 2048 (14 bit), RAM: 128 bytes
PMS154C (0xE06): OTP : 2048 (14 bit), RAM: 128 bytes
PMS15A (0xA16): OTP : 1024 (13 bit), RAM: 64 bytes
PMS171B (0xD36): OTP : 1536 (14 bit), RAM: 96 bytes
PMS271 (0xA58): OTP : 1024 (16 bit), RAM: 64 bytes (RO)
制作した世界最強のSuper Easy PDK Programmer頒布しています。詳しくはこちら👇👇👇

コメント