[[FrontPage]] 2008/10/09 からのアクセス回数 &counter; #contents SunSPOTのeDemoには、ATMELのATmega88が使われていて、拡張ボードもATmega88だと都合がよいので AVRを勉強することにしました。 ちょうど、「エレキジャックNo. 8」にTiny2313が付録についてきたので、これを使ってみることにします。 また、「インターネット・ガジェット設計」という本が結構おもしろいので、これもさらってみます。 ソフトの開発でも同じですが、 - 頭で理解するのではなく、自分の手を使って実際に最初から自分でなぞってみること - 常に複数の対応を準備しておき、場合に応じて対処すること が大切です。 ** ライターを用意する [#ied0ea6a] ちょうど、EZ-USBが手元にあり、チップ抵抗の半田付けを練習するために、オプティマイズの [[EZ-USBを使用した AVR ISP ライター>http://optimize.ath.cx/avr/index.html]]を使うことにしました。 送られてきた部品は、 #ref(1.jpg); です。 たった4個のチップ抵抗の半田付けに半日かかりました。 #ref(2.jpg); ** 開発環境の整備 [#x132a66c] *** Windowsの環境 [#lb9792c6] ライターがWindowsでしか動作しないので、最初はWindows 2000に開発環境を整備しました。 「エレキジャックNo. 8」の第5章AVRマイコンを使おうにしたがい - [[AVR Stduio>http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725]] ダウンロードには登録が必要です - [[WinAVR>http://sourceforge.net/projects/winavr/]] をダウンロードしました。このほかCygwinもインストールしてあります。 ライターのソフトは、オプティマイズのページからダウンロードし、WinAVRをインストールしたディレクトリのbinと同じ場所に入れます。 エレキジャックNo. 8の図5-6 ((初心者を対象とした入門書なのに、実体配線図のLEDのKとAの記述が逆になっているので注意してください。)) を参考に、LEDの点灯例題を #ref(6.jpg); のようにブレッドボードで回路を組んで、ライターでSignatureを読み込むと、 #pre{{ $ avrezusb.exe -rf Detected device is ATtiny2313. Low: 01100100 ||||++++-- CKSEL[3:0] NbNI ||++-- SUT[1:0] - N |+-- CKOUT (0:PD2VXeNbNo) +-- CKDIV8 NbNlw High:11-11111 |||||||+-- RSTDISBL (RESETs 1:L, 0:(PA2)) ||||+++-- BODLEVEL[2:0] f[^V[gQ |||+-- WDTON (WDT 0:ON, 1:) ||+-- SPIEN (1:ISP~, 0:ISP) Parallel |+-- EESAVE (EEPROM 1:, 0:) +-- DWEN (On-ChipfobO 1:, 0:L) Ext: -------1 +-- SPMEN (SPM 1:, 0:L) Cal: 92 }} のように正しくTiny2313が認識されました。 avrezusbの使い方は、helpを参照してください。 #pre{{ $ avrezusb.exe -help AVREZUSB - AVR Serial Programming tool R0.30 (C)ChaN,2004 http://elm-chan.org/ Modified by OPTIMIZE for EZ-USB V4.3 Write code and/or data : <hex file> [<hex file>] ... Verify code and/or data : -v <hex file> [<hex file>] ... Read code, data or fuse : -r{p|e|f} Write fuse byte : -f{l|h|x}<bin> Lock device : -l[<bin>] Erase device : -e Copy calibration bytes : -c SPI control delay [-d3] : -d<n> SUPPORTED DEVICE: AT90S 1200,2313,2323,2333,2343,4414,4433,4434,8515,8535 ATtiny 12,13,15,22,25,26,45,85,2313 ATmega 8,16,32,48,64,88,103,128,161,162,163,165,168,169,323,603,8515,8535 AT90CAN 128 SUPPORTED ADAPTER: EZ-USB only. }} *** 純正ライターの購入 [#mcfb0d99] Macでの開発のために、純正のAVR ISP mkIIを購入しました。 WindowsのAVR Stduioで動作を確認しようとしたところ、いきなり + ソケットのピン配置を勘違い + Tiny2313を認識しない + プログラムが書き込めない + 書込後に正常に動作しない という事態に陥りました。 原因を調べたところ、 + AVR ISP mkII のユーザガイドには、 #ref(pin_assign.jpg); のように書かれているので、ついケーブルの赤いラインのピンが1番だと勘違いした。 この図は、ライターにソケットを付けた時にボードの上からみた図で、赤いラインに一番近いピンは2番 ピンです。どうようのメッセージがhttp://metrocrusader.blog41.fc2.com/blog-date-200711.htmlにもありました。 + EZ-USBのISPライターではライターから電源を供給していたが、mkIIは外部電源を必要とする + 回路に組み込んだままでは、プログラムが書き込めなくて、クリスタルを付けた別ブレッドボードを用意した + これも当たり前なのですが、うっかりライターのケーブルを接続したまま、動作チェックをした ことが原因と分かりました。 *** Mac OSXの環境 [#a4db9613] 最初は、MacPortを使ってインストールしようとしたのですが、途中でエラーとなったので、今回は - WinAVRのマック版である[[AVR MacPack>http://www.obdev.at/products/avrmacpack/download-de.html]]のAVRMacPack-20080721.dmgをダウンロードしました。 インストールはマック用のパッケージ形式になっているので、マウント後のAVRMacPack.pkgをダブルクリックするだけです。 libusbが正しく動作するように念のため、インストール後に再起動をした方がいいです。 ** コメント [#ua8e5faa] この記事は、 #vote(おもしろかった,そうでもない,わかりずらい) 皆様のご意見、ご希望をお待ちしております。 #comment_kcaptcha