PR 記事には広告が含まれています
スポンサーリンク
Translate

Padakuマイコンの書き込み機EasyPDKProgrammerが動作しました!

スポンサーリンク

PCBWayから基板が到着したので早速組み立てて、Padaukマイコンの書き込み機を作りたいと思います。

スポンサーリンク

PCBWayから基板が届く

発注から10日ほどで基板とメタルマスクが届きました。

細かい配線ですが、とても綺麗に製造されています。PCBWayは品質が悪い基板に当たったことがありません。

スポンサーリンク

クリームはんだを印刷

ダンボールの上に基板を置きます。

メタルマスクを上に載せて、四隅に開けておいた穴にマップピンを差し込み、メタルマスクと基板との位置合わせと固定を行います。開けておく穴の大きさは直径0.75mmです。

メタルマスクの奥側にクリームはんだを載せます。クリームはんだには、普通のオーブンでも簡単にリフローできる、低融点鉛フリーはんだを使っています。

先端の部分が適度にしなるスキージを使って、クリームはんだを手前に引き寄せながら印刷していきます。

クリームはんだは何度も印刷すると、クリームはんだが多めに印刷されて、パッドからはみ出してしまいます。なるべく1回の印刷で完了できるように慎重に印刷します。

マップピンで位置合わせをしているので、マイコンのパッドなど完璧な位置にクリームはんだが印刷できていることがわかると思います。

スポンサーリンク

部品の実装

表面実装部品は、掃除機のように部品を吸い付けるHAKKO394を使って、テープから直接吸着します。

ノズルにはこれを使っています。

バキュームピック用ノズル3種類セット | kohacraftのshop
電動バキュームピックHAKKO394の純正よりも使いやすいノズルのセットです

部品の上から吸着するので、写真の中央のように部品が密集していても実装が可能です。

また、テープの中では極性が同じ向きに収納されています。テープから直接吸着することで、毎回部品の向きを揃えたり確認する必要がありません。

基板の設計時に、極性のある部品は同じ向きに配置しておきます。こうすることで、実装時に連続して実装することができ、効率的に実装できます。

ノズルを吸盤タイプに交換すると、ICも吸着することができます。

バキュームピック用吸盤3種類セット | kohacraftのshop
電動バキュームピックHAKKO394でSOPやQFPが吸着できる吸盤のセットです

ICも実装できました。

全ての部品が実装できました。電動バキュームピックアップツールのHAKKO394を使うことで、ピンセットに比べて格段に速く実装が可能です。

スポンサーリンク

リフロー

熱風が庫内を循環して庫内全体が均一に加熱される、コンベクションオーブンでリフローします。

庫内に熱電対温度計を入れておいて、温度をモニターしながら温度を調節します。100度→130度→165度と温度を変化させます。

165度に達したらリフロー完了です。扇風機で冷却します。

リフローが完了しました。

捨て基板を取り外し、基板を分離します。

スポンサーリンク

ファームウェアの書き込み

認識できるか

STM32マイコンは、DFUボタンを押しながらUSBを接続すると、内蔵のブートローダが起動します。

果たしてのブートローダが起動するでしょうか。USBデバイスにSTM32が追加されるか確認します。

おおお!USBのデバイスにSTM32のブートローダが追加されています。STM32が動作しています。

ファームウェアの書き込み

Easy PDK Programmer softwareのReleaseからプログラム一式をダウンロードします。

Firmwareフォルダの中の、EASYPDKPROG.dfuがSTM32に書き込むファームウェアです。

ファームウェアをSTM32に書き込むツールをインストールします。コンソールからbrewでインストールします。

brew install dfu-util

続いてSTM32にファームウェアをダンロードします。

dfu-util -d 0483:df11 -a "@Internal Flash /0x08000000/064*0002Kg" --dfuse-address 0x08000000 -D EASYPDKPROG.dfu
Opening DFU capable USB device...
Device ID 0483:df11
Device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Interface #0 ...
Determining device status...
DFU state(10) = dfuERROR, status(10) = Device's firmware is corrupt. It cannot return to run-time (non-DFU) operations
Clearing status
Determining device status...
DFU state(2) = dfuIDLE, status(0) = No error condition is present
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
Downloading element to address = 0x08000000, size = 38016
Erase [=========================] 100% 38016 bytes
Erase done.
Download [=========================] 100% 38016 bytes
Download done.
File downloaded successfully

正常にファームウェアがダンロードできました。

USBを一旦抜いて、再度差し込み、USBデバイスを再認識させます。

STM32がEasy PDK PRogrammerとして動作し始めました。

ここまで順調です。

PFS122に何か書き込んでみる

今回作ったEasy PDK Programmerでやりたいことは、PFS122の6ピンマイコンにプログラムを書き込むことです。

それでは、PFS122に適当なプログラムが書き込めるか試してみましょう。

まずはEasy PDK ProgrammerにPFS122を接続して、デバイスを認識できるか確認してみます。

easypdkprog probe

PFS172として認識できました。PFS172はPFS122の古い型番です。PFS122が認識できています。

試しにPFS123用のプログラムですが、書き込めるか試してみます。

easypdkprog -n PFS172 write firmware.ihx

書き込めました!書き込みソフトは、書き込んだ後にベリファイを実行しているので、正常に書き込まれているはずです。

書き込んだプログラムを読み出してみましょう。

easypdkprog -n PFS172 read test.hex

test.hexとして読み出してみました。hexファイルを見てみましょう。

何かしらプログラムが書き込まれていることがわかります。

メモリの後半は、何も書き込んでいない3FFFという値で埋まっています。メモリの最後の方にある3ワードは、クロックのキャリブレーションのための値が書き込まれている領域です。このため、メモリが最後まで正しく読み出されていることがわかります。

スポンサーリンク

Developerバージョンの書き込み

Easy PDK Programmerは通常版と、より多くのマイコンに対応したDeveloper版の2種類があります。Developer版にすると、書き込み機だけでなく書き込みツールもDeveloper版にしないといけません。

書き込みツールのコンパイル

git clone -b development https://github.com/free-pdk/easy-pdk-programmer-software/

developmentブランチをクローンします。

make all

クローンしたフォルダに移動してmakeします。

easypdkprog

書き込みツールのeasypdkprogが生成されました。

ファームウェアのコンパイル

brew install --cask gcc-arm-embedded

ARMのコンパイラをインストールします。

Fiemwareのフォルダに移動します。

make
buildフォルダが作られて、その中にファームウェアが生成されます。
EASYPDKPROG.dfu

ファームウェアの書き込み

Easy PDK ProgrammerのDFUボタンを押しながら、USBを接続します。

dfu-util -d 0483:df11 -a "@Internal Flash /0x08000000/064*0002Kg" --dfuse-address 0x08000000 -D EASYPDKPROG.dfu
dfu-utilを使って、STM32にファームウェアをダウンロードします。

動作チェック

Easy PDK ProgrammerにPFS122を接続して、デバイスの認識ができるか確認してみます。

./easypdkprog probe
Probing IC... found.
TYPE:FLASH RSP:0x1CA6 VPP=4.50 VDD=2.00
IC is supported: PFS172 / PFS172B / PFS121 / PFS122 ICID:0xCA6

Develop版になると、PFS173としてでなく、PFS173と同じ後継モデルのPFS121,PFS122なども表示されるようになりました。

スポンサーリンク

Easy PDK Programmerが完成しました!

PFS122の6ピンマイコンにもプログラムを書き込むことができる、Easy PDK Programmerが完成しました!
Easy PDK Programmerが正常に動作したので、プログラムの開発がしやすいように、インサーキット書き込み機能も追加した書き込み機も作りたいと思います。
Easy PDK ProgrammerはFree PDK プロジェクトの成果物です。FreePDKプロジェクトは、EEVblogのスレッドを読むと進行状況がわかって楽しいです。どんどん解析が進んで書き込み機やコンパイラが作られていきます。すごいですね。
2025.3.6追加 続きはこちら
https://kohacraft.com/archives/202503060845.html