丸太小屋日記 ~オーミック電子の開発室から~

超音波センサーメーカー、オーミック電子の公式ブログです。

自家製 Arduino Pro Micro の製作

最近、自作のマイコン基板を作ってみました。一応動くところまで行ったので製作過程をメモしておきたいと思います。

製作の背景

今まで試作用や小ロット生産では汎用のマイコン基板を購入して使っていました。それで事足りることが多かったのですが、最近もうすこし細かいところまで調整したくなってきて自分で専用のものを作ってみることにしました。通常、マイコンの電源は3.3Vや5V仕様ですが、センサ界隈では12V~24Vで使われることが多いのでマイコンをはじめから24Vまで対応できるようにしたいと思っていました。また、基板を任意の形にしたり、はじめから気の利いた部品を載っけておくこともしたかったです。

市販のマイコンはいろいろあるけれど...
マイコンの選定

マイコンを選ぶにあたってまずは昔からある有名な汎用的なチップで作ろうと思いました。Arduino Pro miniで使われているAtmega328Pが思い浮かびましたがプログラムの書き込みをするときにUSB-シリアル変換器を外付けしなければならずできれば基板にUSBを直挿ししたかったので、USB-シリアル変換器が内蔵されているAtmega32u4というチップを使うことにしました。市販の基板ですとArduino Pro MicroやDFRobot社のBeetleというマイコン基板で使われているチップです。メモリが少しだけ328Pよりも多いところも良さそうです。基板屋さん(JLCPCB)でこのチップの在庫を持っていることがわかり、依頼すれば実装までやって頂けるというのも良さそうなポイントでした。何より昔からあるチップなので簡単にはなくならなそうだし、CADソフトにも事前にフットプリントなどが登録されている安心感があったので、初めて作る基板には向いていると思いました。

Atmega32u4 と村田のクリスタル
回路図の作成

回路図はArduino Pro MicroBeetleの基板を参考にしつつ、24V → 5Vレギュレータや可変抵抗を入れたり、出力用のトランジスタを追加したりしました。クロック源の水晶振動子村田製作所の見慣れない小型パッケージのものを選んでみました。

回路図
回路の配線

今回初めて足が44本もあるチップを配線したので引き回しに苦労しました。これを専門にやっている人の頭の中はどうなっているのだろうか。かなり疲れましたがBeetleのパターンを参考にしてなんとか完了しました。動くかどうか不安。

基板の発注

毎度お世話になっているJLCPCBに依頼しました。Atmega32u4を在庫として持っているらしく受動部品の実装と合わせてマイコンチップも実装して頂きました。発注から1週間くらいで到着する異次元のスピード感は相変わらずでした。

きちんとAtmega32u4が載っている
ブートローディング

基板が完成してもそのままではArduinoとしては動作してくれず、専用のファームウェアを書き込むブートローディングという作業が必要になります。ネットの記事などを見ているとここで苦労されている方がかなりいらっしゃるようでした。

asukiaaa.blogspot.com

こちらの方はArduino Leonardoを使って書き込めると書いていたのですが、別の方はどうも上手くいかないのでUSBaspというプログラムライターを使った方が良いとおっしゃっていました。

qiita.com

私もUSBaspでやってみることにしました。早速ライターを購入します。

Amazon.co.jp: KKHMF USB AVRプログラマ USBaspライタ 51 52 AVRシリーズ 専用 + ケーブル + 10ピン-6ピンISPアダプタ : パソコン・周辺機器

指示通りにブートローダを書き込んでみましたが、エラーメッセージが出てきてうまくいかず。。。いろいろ探しているとUSBasp用のドライバをインストールする必要があるとのこと。

www.jh4vaj.com

しかし、ドライバを入れても下記のエラーメッセージが出てきてうまくいかず。。。

avrdude: Warning: cannot query manufacturer for device: No such file or directory

さらにエラーメッセージで検索をかけるとこんな記事がありました。

ameblo.jp

ドライバーをlibusb-win32ではなくlibusb k に変更すると上手くいったとのこと。早速変更して書き込んでみると、、、上手く行きました。(心の中でガッツポーズ。)

ブートローダー書き込み成功!

ブートローディング風景

その後、Arduino IDEと接続するときちんとArduino Leonardoとして認識されたのでプログラムの書き込みが可能となりました。Lチカやその他の動きも上手くいったのでどうやら成功のようです。

自作マイコン基板(右)にしたことでスペース的にも優位になるので、今後の製作の幅が広がっていきそうです。