背景
ATmega328PBというMicrochipのマイコンを搭載し、USBシリアル通信回路が付いていて、それ経由でプログラムを更新可能なファームウェアを書き込んだ装置です。ブレッドボードの両側に信号線を引き出しているため、ATmega328PBとミニブレッドボードを利用した回路を作りやすくなっています。
以前ATmega328PBの信号線をブレッドボードに引き出す装置を作りましたが、ピンを使い切らない場合はUSB経由でプログラムを書き込めたら便利だったので、今回こちらの装置として回路をまとめました。
使い方を紹介します。
使ったもの
- Arduino にプログラムを書き込めるPC
Arduino IDEかPlatformIOをPCにインストールしてください - ATmega328PB-usb-bread-board
今回紹介する装置です。
スイッチサイエンスで販売中です。 - USB microBケーブル
プログラムの書き込みに必要です。
外観
Rev2021.03の裏と表の見た目はこうなっています。特徴
ミニブレッドボードの両側のピンソケットに信号線を展開
ミニブレッドボードを利用して電子部品を検証しやすくしています。I2Cとして利用可能なWireポートを2種類をGrove端子に接続
Grove向けのI2C装置を利用可能です。Wireを2端子、Wire1を1端子用意しています。
(Rev2021.05ではWireのピン名が「D19、D24」となっていますが、これは間違いで、正しくは「D18、D19」です。)
MicroBのUSB経由でプログラムを更新可能
ATmega328PBにはMiniCoreのUART経由でプログラムを更新できるファームウェアを書き込み、USB Uart変換モジュール CP2102Nを介してPCからUSB接続でプログラムを書き込めます。プログラムの書き込み方法や環境設定はこの後解説します。
GPIO13で制御可能なLED搭載
USB端子の横にGPIO13で制御可能なLEDを搭載しています。部品の追加なしでLチカが可能です。
16MHzの外部発信子(MEMS)で動作
水晶振動子ではなくMEMSを利用しているため、水晶振動子を利用した場合と比べて利用可能なGPIO端子(D21)が1つ多いです。支柱付き
M3の5mmの支柱4本とナット4つが付属するので、それを4隅に取り付けることで作業台を傷つけにくくできます。USBシリアルモジュール CP2102Nのドライバをインストール
ATmega328PB-usb-bread-boardはUSBシリアルモジュールとしてCP2102Nを利用しています。macOSを利用している場合: 下記ページからインストーラーをダウンロードして手動でのインストールが必要です。
Windowsの場合: USB接続すると数分で自動インストールしてくれますが、自動で設定されない場合は下記のページからインストーラーをダウンロードしてインストールしてください。
Linux(Ubuntu)の場合は標準のドライバで認識してくれるので、追加でのドライバインストールは不要です。
CP210x USB to UART Bridge VCP Drivers
上記のページのDOWNLOADSタブをクリックするとドライバのダウンロードリンクを一覧できます。
書き込み環境の設定: MiniCoreをインストール
ATMega328PB-usb-bread-boardにはMiniCoreのブートローダーを書き込んでいます。そのため、USB経由でプログラムを更新するにはMiniCoreの開発環境へのインストールが必要です。
Arduino IDEとPlatformIOの設定方法を紹介します。
Arduino IDEの場合
Arduino IDEとはArduinoという電子工作を始めやすいマイコンボードの開発環境です。それを利用してATmega328PB-usb-bread-boardにプログラムを書き込むための設定方法を紹介します。
ボード情報にMiniCoreを追加します。
ここで紹介する手順でインストール出来ない場合は、MiniCoreのボードマネージャーの設定方法に従ってください。
ファイル -> 環境設定 を選び、環境設定画面を開きます。
環境設定画面の「追加のボードマネージャーのURL」に下記のMiniCoreのURLを追加します。
https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
URL追加できたらボードマネージャーでMiniCoreをインストールします。
ツール -> ボード -> ボードマネージャ を選び、ボードマネージャを開きます。
MiniCoreを探してインストールしてしてください。
上部の検索フィルタにMiniCoreと入力すると探しやすいです。
MiniCoreをインストールしたらボード選択で選べるようになります。
ATmega328PBに対してプログラムを書き込むには、ツール -> ボード -> MiniCore -> ATmega328 を選びます。
MiniCoreのATmega328を選んだら、再び ツール を開いて下記の設定にしてください。
- Clock: External 16MHz
- Variant: 328PB
- シリアルポート: ATmega328PBをPCに接続すると認識されるシリアルポート
これでATmega328PB-usb-bread-boardにプログラムを書き込めます。
PlatformIOの場合
PlatformIOとは、様々なマイコン向けのプログラムを様々なフレームワークで開発可能な開発環境です。VSCodeというプログラム編集ソフトにプラグインを入れて利用したり、コマンド操作でpython3のpipでインストールして利用したりします。
MiniCoreのプログラムも開発可能です。
PlatformIOのプロジェクトで下記のようにplatformio.iniのenvをATmega328PBにすれば、ATmega328PB-usb-bread-boardにUSB経由でプログラムをアップロードできます。
[env:ATmega328PB]
platform = atmelavr
board = ATmega328PB
framework = arduino
LED点滅プログラムを書き込み
下記のプログラムを書き込んでみます。void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
上記のプログラムはArduino IDEの ファイル -> スケッチ例 -> 01.Basics -> Blink で開けるプログラムと同じです。
Arduino IDEの場合は右矢印ボタンをプログラムを書き込めます。
(先ほど説明した「書き込み環境の設定」の「Arduino IDEの場合」を行っておいてください。)
書き込みに成功したらD13に接続されているLEDが点滅します。
余談: ケースが欲しい場合はタカチのTW8-4-8*を利用可能
タカチのケースにネジ穴の位置を合わせています。USBケーブル接続用の穴を開ければ利用可能です。
下記の写真はTW8-4-8Gと組み合わせた様子です。
ケースは秋月電子で購入可能です。
プラスチックケース TW8-4-8B
まとめ
ATmega328PBの特徴と使い方を紹介しました。
良かったら使ってみてくださいな。
ATMega328PB-usb-bread-board
変更履歴
2021.05.09
MiniCoreの更新により、LED_BUILTINが定義されるようになったため、プログラムでそれを定義していた箇所と説明を削除しました。
2021.05.11
機能の紹介写真をRev2021.05で写真を撮り直しました。
2021.05.13
スイッチサイエンスの販売ページのリンクを追加しました。
2023.04.19
TW8-4-8Gの取り扱いが秋月電子で終わっていたので、取り扱いがあるTW8-4-8Bに変更しました。
面白そうだったので早速購入させて頂いたのですが、しばらく遊んでいたところArduino IDEから書き込みできなくなり、シリアル出力もボーレートが合わず化けるようになりました。
返信削除色々調べてみたところどうもMEMS発振器が正常に発振しなくなったようです。
公開されている回路図を見るとMEMS発振子のVDDにVCC(5V)を供給しており、これが原因で発振子が壊れたのではないかと疑ってます。
手持ちに適当な発振子がないので真偽のほどは確認できていないのですが、取り敢えず一報まで。
ご購入と情報共有ありがとうございます。
削除仰る通り、MEMSに5Vを供給するのは誤りです。
その電力供給ためにCP2102Nから3V3を生成したのですが、MEMSへの供給を変更しないままにしていました。
回路を修正いたします。
よろしければ修正版完成後に更新版をお送りしますので、更新版の受け取りを希望される場合は本ページ下部にあるお問い合わせフォームで住所を共有していただけますか?
(不具合品の返品は不要です。)
返信ありがとうございます。
削除この手のミスはちょいちょいやってしまいますよね。
私も3.3V系のセンサーを5V系に繋いで壊した経験があります。(中途半端に動いたりするので厄介ですよね)
更新版送って頂けるとの事なので、後ほど問い合わせフォームから住所などを送らせていただきます。
返信ありがとうございます。
削除ですね、中途半端に動いてくれるのが厄介です。
住所情報ありがとうございます。
発送まで1ヶ月ほどお待ちください。