gpasm+akipicもうひといき

AKI-PICをVS-60Rで接続

キットを組み立て、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も書き込む方法を探す(か追加する?)とよさそう。