ATmega88生活
ws☆Nak#172基板で始めるATmega88生活†
Hardwareについて†
- WS#172基板は、回路図を含め仕様が公開されています。
- http://www.wsnak.com/kit/172/index.htm
- ここでは、WS#172基板を料理していきたいと思います。
- まず、必要最小限と思われる部品を載せます。
- 3.3V動作させたかったので、バスパワージャンパーJP1の表側2-3間をパターンカットして、ジャンパーの代わりに3端子レギュレータを実装しました。
- 裏面は3端子レギュレータの真ん中の足をGNDに落としています。
- ちょっと汚いですが、改造箇所は、表面の3端子のJP1 (2-3) パタンカット1箇所と、裏面のJP1 (2) GNDの2つです。
- ポリスイッチR7は手持ちが無かったため、0Ω直結しています。
- ZD1,ZD2は青色LEDで代用し、ZDとは逆極性(つまりLEDが点灯するように順方向)接続にしています。
- 5V動作時は青色LEDがまばゆいほどに点灯しますが、3.3V動作では丁度良い明るさで点灯し、USBバスの動作の様子を表わしてくれています。
- 3.3V動作させるので、ZD(もしくは代用LED)は省略可能です。(単に目視チェック用に点灯させているだけです)
- スイッチは'L'のみを載せています。(bootloadHIDのユーザープログラム起動が出来ます)
- PWR LED , BSY LEDはちゃんと実装しました。
- 水晶はソケット式にして、差し替え可能(クロック変更自在)としました。
Softwareについて†
第一弾:
HIDmonとbootloaderHIDの詰め合わせ
- これは、bootmon-1127.zip のbootloaderconfg.hを書き換えて、USBの配線をWS#172に合わせただけのものです。
- hidmon88.exeを起動して、PWR LED , BSY LEDを手動で点灯させることが出来ます。
- bootloadHID.exeを起動して、ATmega88の応用領域6kBに任意のhexファイルを転送して実行させることが出来ます。
- 実行後hidmonに制御を移す、あるいはリセットするという操作により、自作プログラムの実行後のメモリー内容
を読み出すことも出来ます。
注意:
- ATmega328P用HEXをビルドするときはATmega328Pに対応したAVR-GCCが必要です。
- ATmega88/168用HEXをビルドするときはWinAVRの20060421版もしくはそれに近いバージョンのコンパイラを使用します。(ファームサイズを2kに納める為です。)
Borland-Cに対応してみました。
Borland-C対応版HIDmonソース入り (ファームはmega328/644用です)
第2弾:
HIDaspx for ATmega88†
注意:
- ATmega328P用HEXをビルドするときはATmega328Pに対応したAVR-GCCが必要です。
第3弾以降の予定稿
- キーボードまにあ!!!(スリー) for WS#172基板
- microSD access TEST
ATmega328P/ATmega644Pのfuseについて。†
- 以下のように設定しています。
ATmega328P†
E:\bootmon-ws172\bin>hidspx -d4 -rf Detected device is ATmega328P.
Low: 11111111 ||||++++-- CKSEL[3:0] システムクロック選択 ||++-- SUT[1:0] 起動時間 |+-- CKOUT (0:PB0にシステムクロックを出力) +-- CKDIV8 クロック分周初期値 (1:1/1, 0:1/8)
High:11-11000 |||||||+-- BOOTRST (1:Normal, 0:BootLoader) |||||++-- BOOTSZ[1:0] (11:256W, 10:512, 01:1024, 00:2048) ||||+-- EESAVE (消去でEEPROMを 1:消去, 0:保持) |||+-- WDTON (1:WDT通常動作, 0:WDT常時ON) ||+-- SPIEN (1:ISP禁止, 0:ISP許可) ※Parallel時のみ |+-- DWEN (On-Chipデバッグ 1:無効, 0:有効) +-- RSTDISBL (RESETピン 1:有効, 0:無効(PC6))
Ext: -----101 +++-- BODLEVEL[2:0] (111:無, 110:1.8V, 101:2.7V, 100:4.3V)
ATmega644†
Detected device is ATmega644P. Low: 11110111 ||||++++-- CKSEL[3:0] システムクロック選択 ||++-- SUT[1:0] 起動時間 |+-- CKOUT (0:CLKOにシステムクロックを出力) +-- CKDIV8 クロック分周初期値 (1:1/1, 0:1/8)
High:11-11010 |||||||+-- BOOTRST ※データシート参照 |||||++-- BOOTSZ[1:0] ※データシート参照 ||||+-- EESAVE (消去でEEPROMを 1:消去, 0:保持) |||+-- WDTON (1:WDT通常動作, 0:WDT常時ON) ||+-- SPIEN (1:ISP禁止, 0:ISP許可) ※Parallel時のみ |+-- JTAGEN (1:JTAG禁止, 0:JTAG許可) +-- OCDEN (JTAGデバッグを 1:無効, 0:有効)
Ext: -----101 +++- BODLEVEL[2:0] (111:無し, 110:1.8V, 101:2.7V, 100:4.3V)