gpasm+akipicもうひといき
キットを組み立て、ROMライタをつないでみた。キットはPICNICに比べると超シンプルであっという間に組み立て完了。ちゃんと足もついてて安心。
IT技術演習の、出荷時焼き込み済みのファームは疑似命令の問題でgpasm(gnupic)で処理できなかったが、マイクロコンピュータの最初のサンプルは超シンプル。gpasmでばっちりhexファイルができた。
次はakipicだ。こちらもアーカイブを展開してmakeするとakipicができた。
そしていよいよ書き込み。VS-60Rで接続し、まずはチェックコマンド。
[macintosh:cai/pic/akipic-0.1.8] quwaji% ./akipic -p /dev/cu.usbmodemUSB-COM1 -v AKIPIC writer 0.1.8alpha-version firmware version...AKIPIC-PGMV4.00
おぉ! つながってるっぽい。基板上のROMには、「PIC-PGM REV.D」と書かれている(シール)。Dは4ってことかな。-hオプションも試してみる。
[macintosh:cai/pic/akipic-0.1.8] quwaji% ./akipic -p /dev/cu.usbmodemUSB-COM1 -h AKIPIC writer 0.1.8alpha-version firmware version...unknown not connected or power-off. Usage: [-p serial-device] [-d taget-device] -r|-w hex-file or [-p serial-device] [-d taget-device] -b|-e if variable AKIPICPORT set,use instead of option -p device. Options: -w write PIC -r read PIC -e erase all memory -b blank check -o overwrite internal OSC calibration data (only 12c5*/12ce* available) ex) akipic -p /dev/ttyS0 -d 16f84 -w myfile.hex supported devices are 12c508 12c508a 12c509 12c509a 12ce518 12ce519 12c671 12c672 12ce673 12ce674 16c55 16c55a 16c57 16c57c 16c54 16c54a 16c54c 16c56 16c56a 16c58a 16c58b 16c554 16c556 16c558 16c61 16c620 16c620a 16c621 16c621a 16c622 16c622a 16c623 16c624 16c625 16c62 16c62a 16c62b 16c63 16c63a 16c64 16c64a 16c65 16c65a 16c65b 16c66 16c67 16c710 16c711 16c712 16c717 16c71 16c72 16c72a 16c73 16c73a 16c73b 16c74 16c74a 16c74b 16c76 16c770 16c771 16c773 16c774 16c77 16c84 16f627 16f628 16f83 16f84 16f84a 16f873 16f874 16f876 16f877
さっきと同じように見えるのに、unknownの文字が微妙に気になるが・・・ いよいよ書き込みにTRY。
[macintosh:cai/pic/akipic-0.1.8] quwaji% ./akipic -p /dev/cu.usbmodemUSB-COM1 -w ../microcomp/led_rotate.hex ID information... 0xf 0xf 0xf 0xf config word status... CP disable PWRTE disable WDTE enable FOSC RC Program memory = 0026 Data memory = 0000 Config word = 0000
んー できたっぽい。かくして実験基板にPICをさし込み、いよいよ電源投入・・・
動かなかった・・・
やむなく(というか手っ取り早く切り分けるため)ThinkPad投入。MPLABとPIC Programmerでテスト。MPLABで作ったHEXは、gpasmの生成したhexと相違なかった。よしよし。そしてPIC Programmerで書き込み。マイクロコンピュータのテキスト通りConfig Wordを設定して書き込むと、akipicよりは時間をかけて書き込み完了。実験基板にさすと、バッチリ動作。なんとなんと。
考えてみると、akipicではConfigWordを設定しておらず、書き込み時に表示されたStatusによると、期待するConfigWordと違う状態になっている。FOSC=RCがまずい。akipicでConfigWordも書き込む方法を探す(か追加する?)とよさそう。