======================================================== memo:: MacOSX で PICNIC(アセンブラ、ライタ、シリアル端末など) by Katsumi WASAKI (2006/06/08) ======================================================== -------------------------------------------------------- (0)MacOSX対応のUSB-Serialアダプタ 今回は、サン電子 VS-60R を使用した(コネクタはオス型) http://www.sun-denshi.co.jp/scc/products/mobile/vs60r/vs60r.htm MacOSX Panther/Tiger ならば、ドライバ不要で、/dev/下にデバイス ができる(便利)。 /dev/cu.usbmodemUSB-COM1 /dev/tty.usbmodemUSB-COM1 -------------------------------------------------------- (1)MacOSXシリアル端末ソフト (jerminal) EasyPackageにふくまれる、Jerminal (jerm) が便利。 comms/jerminal http://www.bsddiary.net/jerm/00README 例)9600bps、パリティなし、ストップビット 1、フロー制御なし の場合: (ttyデバイスが吉)。 $ jerm -b 9600 -p none -d 8 -s 1 -f none /dev/tty.usbmodemUSB-COM1 Jerminal v0.8095 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 candy Type "Ctrl-M ~ ." to exit. と表示されたら成功。 やめるときは、[Ctrl-M] --> [~] --> [.] のマジックシーケンスを入力 すれば、止まる。 -------------------------------------------------------- (2)USB-Serialアダプタ と PICNICを接続してテスト。 [0] PICNIC側のJP1をブートストラップモードにしておく。 [1] RS232C延長ケーブル(メス<-->オス)で、PICNIC側シリアルと接続 +--------------+ +----------+ | | | | | PICNIC |<===(延長ケーブル)====>[VS-60R>----->| iBook等 | | | | | +--------------+ +----------+ [2] 上記(1)の(例)と同じ通信条件で、jerminalを立ち上げる。 $ jerm -b 9600 -p none -d 8 -s 1 -f none /dev/tty.usbmodemUSB-COM1 [3] PICNIC側に電源を入れる(あるいはリセット)。   そうすると、以下のようなオープニングメッセージが出る。 PIC Network Interface Card - Bootstrap Mode Version 1.2.0.0 ***** Configuration ***** MAC Addr. :00-02-CB-01-2E-75 [I]P Addr. :192.168.0.200 [N]etMask :255.255.255.0 [G]ateWay :0.0.0.0 [H]ttpPort #80 [L]CD Port #0 [P]arallelPort #10001 [S]erialPort #10002 PICNIC> [4] あとは、適当に h=8080 などとやって値を調整してみる。 調整後は、「リセット」しないと、更新が反映されないので注意。 -------------------------------------------------------- (3)MacOSX上でのPICマイコン開発環境(gnupic::GPASM) GNUPIC : GPASM(MPASM互換。サポートしていない疑似命令多数) http://gputils.sourceforge.net/#Download gputils-0.13.3.tar.gz ~/tmpなどに落としてきて、以下のようにビルド。 $ tar zxpf gputils-0.13.3.tar.gz $ cd gputils-0.13.3 $ ./configure $ make $ sudo make install これで、/usr/local/bin の下に、GPASMは、/usr/local/bin/gpasm と して入る。ライブラリ関係は、/usr/local/share/gputilの下に入って いる。 gpasmのコマンドラインオプションは、gpasm --help とすれば得られる。 -------------------------------------------------------- (4)GPASMをつかって、v1204org.asmファームをアセンブルしてみる [1] PICNICのファームウェア(IT院改訂版)をダウンロードする。 http://ysserve.int-univ.com/sugsi/Lecture/picnic/exp00.html#Firmware http://ysserve.int-univ.com/sugsi/Lecture/picnic/firmware/v1204org.asm [2] 以下のコマンドでアセンブル(ワーニングレベルは2) $ gpasm -w 2 v1204org.asm [3] アセンブルが終わると、以下のファイルが得られる。 v1204org.lst リスティングファイル v1204org.hex intelHEX形式の機械語コード+EEPROMデータファイル -------------------------------------------------------- (5)秋月電子AKI-PICライタをMacOSから使う(akipic) akipic : 秋月電子通商のキット"AKI-PICプログラマー"をUNIXから使う! http://members.jcom.home.ne.jp/pnms/akipic.html akipic-0.1.8.tar.gz --> ~/tmpなどに落としてきて、以下のようにビルド。 $ tar zxpf akipic-0.1.8.tar.gz $ cd akipic-0.1.8.tar.gz $ make $ sudo cp akipic /usr/local/bin/. これで、/usr/local/bin の下に、akipicというコマンドとして入る。 くわしいデパイス対応情報は、README.txtをみよ。 akipicのコマンドラインオプションは、akipic -h とすれば得られる。 -------------------------------------------------------- (6)akipicを使って、v1204org.hex をPICに書き込む。 [1] RS232C延長ケーブル(メス<-->オス)で、PICライタと接続 +--------------+ +----------+ | | | | | PICライタ |<===(延長ケーブル)====>[VS-60R>----->| iBook等 | | | | | +--------------+ +----------+ [2] チェックコマンドで、PICライタと通信できるか確認する。 (cuデバイスでないとダメ)。 $ /usr/local/bin/akipic -p /dev/cu.usbmodemUSB-COM1 -v AKIPIC writer 0.1.8alpha-version firmware version...AKIPIC-PGMV4.00 最後の行のように、AKIPICからのレスポンス(バージョン番号あり)が かえってきたら成功。 [3] ヘルプコマンドも使える。 $ /usr/local/bin/akipic -p /dev/cu.usbmodemUSB-COM1 -h [4] いよいよ、HEXファイルを書き込んでみる。 PIC16F877-20/Pを、ライタの右側ソケットに挿入する。 JP2 1<->2 短絡であることを確認。 [4-1] まずは、ブランクチェック。 $ /usr/local/bin/akipic -p /dev/cu.usbmodemUSB-COM1 -d 16f877 -b Program memory = 03FF program memory blank check NG. Data memory = 003F data memory blank check NG. Config word = 0007 config word blank check NG. 書き込み済みPICの場合、NGが出る。 [4-2] つづいて、全メモリ消去 $ /usr/local/bin/akipic -p /dev/cu.usbmodemUSB-COM1 -d 16f877 -e Erase OK [4-3] 最後に、書き込み開始(だいたい2分くらい)。 $ /usr/local/bin/akipic -p /dev/cu.usbmodemUSB-COM1 -d 16f877 -w v1204org.hex ID information... 0xf 0xf 0xf 0xf config word status... BKBUG disable CP disable WRT enable CPD disable LVP enable BODEN enable PWRTE enable WDTE disable FOSC HS Program memory = 1FC1 Data memory = 0017 Config word = 0007 [4-4] ※オプション 読み出しの方法 $ /usr/local/bin/akipic -p /dev/cu.usbmodemUSB-COM1 -d 16f877 -w hoge.hex <注意点> ・ときどき、(けっこう?)、PICライタ側との通信がおかしくなる時がある。 Connection error!! というメッセージがでたら、ちょっと時間をおいてから 再度コマンドを発行してみる。ダメなら、PICライタの電源を入れ直してみる。 それでもだめなら、Macをリブートし、リブート直後に再度ためしてみる。 ・akipicでは、.asmファイル中に書かれた、MPASM風CONFIG指定を そのまま信じて書き込む。以下のコンフィグが、.asmファイル に入っていることを確認せよ。 __CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _HS_OSC -------------------------------------------------------- (7)書き込んだPICを使ってPICNICキットを動作させてみる。 v1204org.asm は、以下のようなIP:PORT条件でhttp待ち受けしている ので、クライアント側PCのネットワーク設定をそれにあわせて適宜 調整しておく。 IP : 192.168.1.200 PORT : 8080 クライアントPCのブラウザから、次のURLへ接続して、いつものweb制御 画面が表示されたら、大成功! おめでとうございます。 http://192.168.1.200:8080/ -------------------------------------------------------- <参考資料> [1] MacOS X 上に PIC の開発環境を構築 http://members.jcom.home.ne.jp/t-kuwabara/macos_pic/index.html [2] GNUPIC http://gputils.sourceforge.net/ [3] akipic http://members.jcom.home.ne.jp/pnms/akipic.html -------------------------------------------------------- Copyright 2006(c) Katsumi Wasaki. All rights reserved. wasaki@cs.shinshu-u.ac.jp