本日は最終回です.XILINX FPGA slave serial configの設計資料をupします.
なお、全て免責としまーす!
ハンダづけ
ハンダづけが下手なので、0.5mm pitchだとフラックスを大量に使用してハンダづけします.ベタベタのフラックスを除去するのにアルコールで超音波洗浄です.
2枚の基板から成ります.
左のはFPGA config機能です.
USB COM機能のためFT232を使います.
CPUはSTM32C011F4P6です.FLASH 16kB、RAM 6kB
FPGA config dataを格納するのはserial FLASH W25Q32です.32Mbit
右の基板 回路図pdf gerber(zip)
XC3S50の他に、裏面に3.3V/2.5V/1.2Vのreguratorがあります.
左右の接続
FPGAのconfig信号をコネクタに引き出しています.
ただし、この3つはコネクタに結線せず、固定したりNCしたりで済ませました.
M[2:0]=111
HSWAP=0
DOUT 不使用
STM32 program project folder詰め合わせ(zip)
やってることはこんなです.
・PCとUSB COMで接続する(9600bps)
・PC上のxxx.binファイルを受信したらserial FLASHに書く=config data
・serial FLASH上のconfig dataをFPGAへ流し込む
・PCからコマンドを受けて処理する
XILINX ISE でxxx.binを作る方法はこちらに書きました.
基本の使い方
1)USBでPCと接続する
2)PCのterminal softを起動、COM PORTにシリアル接続する 9600bps
3)xxx.binをserial FLASH W25Q32に焼くには、「f リターンキー」を押す
4)terminalに表示が出る.
flash write mode. waiting for transferring bin in 20Sec
5)20秒以内にxxx.binをterminal softからバイナリ送信する
6)しばらく待つと書き込み終了する (FLASH先頭から書く)
7)FPGA configするには「w リターンキー」を押す
8)5秒ぐらいでconfig完了する
その他のコマンド
「e リターンキー」 FLASH全域erase
「r リターンキー」 FLASHダンプ (アドレスtopとアクセス長はaとlで設定した値)
「d リターンキー」 binaryダンプ/characterダンプの切り替え
「a 数値 リターンキー」 FLASHアクセスアドレスtop
「l 数値 リターンキー」 FLASHアクセス長BYTE
「q リターンキー」 アドレスとアクセス長を表示する
「s リターンキー」 FLASH上の非ゼロデータ末尾を検索する
source code
PCcommand.c
コマンド処理いろいろ.
USB COM→UART受信はHAL_UART_RxCpltCallback()というcall backで1byteずつ受信してbufferに積みます.
FLASH焼きの際は、PCからのデータが256byte貯まったらFLASHの先頭から焼きます.なお、bufferを2本用意して書く読むを切り替えて、書く読むが衝突しないようにしていますので、programの可読性が悪いです.
FPGAWrite.c
FLASH上のxxx.binをFPGAへ転送する関数いろいろ.
PROGB,INITB,DONEの制御はSPARTAN3のdatasheetを読むと書いてあります.
FLASHから256byteをreadして、FPGAへシリアル転送するのloop.
シリアル転送をFLASHの先頭から始めます.
ならばシリアル転送終了アドレスはどうするかというと、searchBin.cであらかじめ非ゼロデータのボトムアドレスを探索しておいて、そこで打ち切ります.
searchBin.c
FLASH上の非ゼロデータのボトムアドレスを探します.
portRW.c
IO portの読み書きをする下位関数いろいろ.
W25Q32FV.c
FLASHを制御する関数いろいろ.
UART.c
UART→USB COMへ送信する関数いろいろ.
内部状態の表示に使います.
TIMINT.c
TIMER割り込みからcallされる関数いろいろ.
hardwareでこうゆう割り込みをセットしています.
TIM14 10mSec割り込み
TIM16 100mSec割り込み
TIM17 1000mSec割り込み
1000mSec割り込みで、fコマンドのファイル転送待ち時間を管理しています.
3Dプリンタで作る台座
3DCADファイル (DesignSparkMechanical)
あらすじだけですみません、以上とします.good luck!
かしこ
読者 超音波洗浄機といえば 蒲田駅と京急蒲田駅の途中の商店街の角の眼鏡屋でおじさんが洗ってティッシュでめがね拭いていた
返信削除眼鏡屋の店頭の超音波洗浄機、ご自由にお使いくださいなのでしょうけど、あの濁った水がキモくて使う気にならんのでした
削除洗剤投入するとあんな風に濁るんでしょうけど、嫌だぁー
読者 モスバーガーの先の眼鏡屋はどろどろしてなかったな
削除水でしたね そこのどろどろの眼鏡屋は ご来店が多いのでしょうね
聖水がいいですね
削除読者 あ 男性創作で そんなものがあると とりあえず買えのマニアがいるのはまちがいない バイト代全つっこみの学生さん 若さゆえのあやまち よのう うらやましい 若さ まだまだ若いよのう 選球眼が鍛えらっれると うかつに買うができないのも悲しき さだめじゃ
削除聖水の主の写真付きです
削除読者 にわか 「うしし 写真つき を手に入れました」
削除海千山千の戦士 「きみ それ なかなか いい加工の写真だな」
にわか 「え ?」
にわか「あ ねえちゃん そっくりだ」
海千山千の戦士「ねえちゃん の〇〇〇 を売ってくれ めしおごるぞ これからうまいものたべにいこう」