ATmega644
ATmega644によるV-USB実験†
実験装置です。
裏面配線はあまりきれいではありません。
- 配線はWS#172基板互換に作ります。USB周りでは
--------------------------------------- USB: PB0 ===> USB D- PB1,PD2 ===> USB D+ XTAL: XTAL1,2 => Crystal 16MHz ---------------------------------------
- USBへは直結ではなくて75Ωを挟みます。
- PB1とPD2を接続しないとINT0割り込みが発生しませんので動作しません。
- 「USB D-」は2kΩで5VにPullUpします。
mega644のfuseはこんな感じです。
Low: 11110111 ||||++++-- CKSEL[3:0] システムクロック選択 ||++-- SUT[1:0] 起動時間 |+-- CKOUT (0:CLKOにシステムクロックを出力) +-- CKDIV8 クロック分周初期値 (1:1/1, 0:1/8) High:11-11011 (ブートローダーを使用しないで直接焼く場合) 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)
- ファームウェアはATmega88生活のATmega328P対応HIDaspx:hidspx88-ws172-m328.zip を使いました。(main644-16.hex)
- ATmega88生活のATmega328P対応HIDaspx:bootmon-ws172-m328.zip (main644-16.hex) のほうは、
- そのままでは動きませんでした。
- main.c の
#define OPTIMIZE_SIZE 1
を#define OPTIMIZE_SIZE 0
- に変更してビルドすると動きました。
- とりあえずありあわせのハードウェアでATmega644の動作を確認してみました。
- この基板は市販されていないようですので、WS★NAKさんに問い合わせするのはご遠慮ください。
- もともとはビデオゲーム基板ですので、USBコネクタは刺さりません。(無理やり差し込んでいます)