2012年1月12日木曜日

ATMega64aのワナ

最近、ATMega64AというATMEL社のマイコンを使っています。
そこで早々にハマってしまった点をご紹介します

といってもデータシートにはちゃんと書いてあるわけで、読まずに悩んでたのがバカだったりするのですが

ハマったのは、ATMEL社のISPである、AVRISP mk2を使ったときのことです。

以前使っていた、Arduinoでも使われているATMega328pなんかだと、MISOもMOSIも素直につなげばよかったので、特に問題はありませんでした。

そのときの感覚のままでISPのMISO、MOSIをATMega64AのMISO、MOSI(PB2、PB3)につないだところ、まったく通信ができません。
おっかしーなーと散々悩んだ挙句、ついに発見しましたデータシート
310ページあたりの、「27.8 SPI Serial Programming Pin Mapping」という章です。

詳しくはデータシートを読んでください。
簡単に言うと、「SPIのIOモジュールはプログラミングインターフェースには使わないよ、SPIプログラミングモードのときはMOSIはPE0、MISOはPE1につなげよ!」ってことだったのです!
ちなみにSCKはPB1でよいです。

なんとまあ・・これで半日潰れてしまいました・・・