ATmega32u4は使いにくいという話
Arduinoを使った電子工作も慣れてくると色々と融通を効かせたくなるもので.
最近ではもっぱら純正基板の回路図をコピーして自分なりに作り替えて使ってます.
(部品を秋葉原で入手しやすいものに変えたり,サイズ変えたり)
今まで使っていたのは,Arduino UNOでおなじみにATmega328P,
その表面実装版であるATmega328P-AUだったわけですが・・・
いちいちUSBからアクセスするためにインタフェースICを追加するのが面倒だったので
いっそUSB機能付きのICに交換したれ,
ということでATmega32u4を使うことにしました,
ATmega32u4はUSB機能付きのICの中でも,Arduino Pro Microという
種類に使われているもの.当然回路図もあるので,それをコピーすれば楽勝・・・
と思っていたのが運の尽き.
実際に基板を設計し,実装した後でいざブートローダーを書き込もうとすると
一向に成功しない.
・まず,Aitendoで買ったPro MicroのコピーボードとUNOを接続し書き込み
→5V16MHzで成功.まぁこれで問題あるとどうしようもないんだけど.
・次に,自作ボードで同じように接続して書き込み
→3.3V8MHzで失敗.
"avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check."
エラーの内容はこんなもの.どうせ接続が間違っているんだろうと
テスタで当たってみるも問題ない.
・何度かやってみると,Verifyに失敗しただのデバイスIDが違うだのと
毎回エラーの内容そのものが安定しない.
・もうどうにでもなれと,試しに5V16MHzに設定を変更して書き込み
→まさかの成功.ただし自作ボードに実装しているのは8MHzのクリスタル.
(まぁ,書き込む時はクロックの管理UNO側だから関係ないんだろうけど)
・その後,UNOを外して自作ボードをPCと接続するも,
USBデバイスが確認できないというエラーが発生.
その後,ブレイクアウトボードで試してみるなどいろいろやってみたが
問題は解決せず.
32u4で作れれば基板がすっきりするんだが,どうにもうまくやる方法が思いつかない.
(328Pの場合はUSB接続したいならFT232RL/Qを実装する必要がある.
IC2個はなかなかに面倒だ.何?今のUNOはFT232RじゃなくてATmega16u使ってる?
今回と同じようなオチになりそうなので使いたくありません.
シリアル通信できれば当面は何の問題もないしね.)
そんなわけで,しばらくは安全を取ってATmega328P+FT232Rの組み合わせで
設計することとしよう.ちょっと古臭いけどね.
では,また.