arduino自作 ブートローダー書き込みからスケッチ転送まで

はじめに

ちょっと電子工作で作りたいものがあるので、Arduino Uno 3を試しに使ってみた。

https://www.switch-science.com/catalog/789/

ボード単体でLチカはできるし、ブレッドボードを足せばLCDや温度センサなんかも豊富なライブラリで簡単に動かせる。

画像

Arduino Uno R3 + 秋月16*2LCD + 空気質センサCCS811でCO2/VOC濃度を表示させる

 

しかし、組み込みで使うとなると基板の大きさは小さい方がいいし、いちいちボードを買い足すのは面倒くさいしカネがかかる。

そこで、手元にあったATmega328PとUSBシリアル変換器(秋月AE-FT231X)を使ってArduinoを自作することにした。

ブートローダーの書き込み

買ってきたばかりのマイコンはまっさらなので、Arduinoのスケッチを書き込むための下地であるブートローダーを書き込む必要がある。

今回はArduinoブートローダー書き込み機として使い、ブートローダーを書き込んでみた。

参考にしたページ

壊れたArduinoを修理!ブートローダーの書き換えでArduinoを修理する方法

https://voltechno.com/blog/arduino-bootloader/

Arduino as ISP and Arduino Bootloaders(英語)

https://www.arduino.cc/en/Tutorial/ArduinoISP

From Arduino to a Microcontroller on a Breadboard(英語)

https://www.arduino.cc/en/Tutorial/ArduinoISP

 

何はともあれブレッドボード上のマイコンArduinoと接続する。

追加で7pin(VCC)-8pin(GND)間に0.1uFのコンデンサを接続している。

それと大事なのが、書き込み用ArduinoのRESET-GND間に10uFの電解コンデンサを接続すること!

公式サイトに書いてあるのに図に示されていなくて散々苦労した…

 

ArduinoIDEを起動し、ファイル>スケッチ例>11.ArduinoISP>ArduinoISPを開く

f:id:takanami24:20200611215452p:plain

ツール>書き込み装置>Arduino as ISPを選択する

ツール>ブートローダーを書き込むを選択し、しばらくして「ブートローダーの書き込みが完了しました。」というメッセージが出たらOK。

 

 

スケッチの書き込み

次はArduinoを動かすスケッチファイルを書き込む。

ここではスケッチ例のBlinkを使ってLEDが1秒毎に点滅するようにする。

参考にしたページ

05. Arduino互換基板を作ろう > 101. 自作Arduino互換回路(ブレッドボード版)

https://sites.google.com/a/gclue.jp/fab-zang-docs/dian-zi-hui-lu/zi-zuoarduino-hu-huan-hui-lu

とにかく部品を配置して配線!配線!

マイコンとUSBシリアル変換器のTXD/RXDを互い違いに接続すること、LEDの極性を間違えないことに注意すれば大丈夫だと思います。

USBシリアル変換器は何でもいいと思います。多分。私はFTDI社のチップが乗ったものを使いました。

f:id:takanami24:20200611221647p:plain

▲部品実装図 右側の黄色テープ下に赤色LEDが設置してある。シリアル通信監視用にTXD/RXD端子にLEDと470Ω抵抗をそれぞれ配置した。

 

いよいよスケッチの書き込み。

ArduinoIDEを起動し、ファイル>スケッチ例>01.Basics>Blinkを開く。

ツール>ボード>Arduino Unoを選択する。(他の設定だとスケッチが書き込めなかった。)

シリアルポートはデバイスマネージャーを参照して使うポートに設定しておくこと。

スケッチ>マイコンボードに書き込むを選択してしばらく待つと、接続したLEDが点滅するはずです。

 

以上、お疲れ様でした。

次はATmega168PをArduinoで使ってみようかと思います。