Arduino Uno,pro, micro は基板の形は違いますが,使用しているマイコンは同じでATmega 328pです(パッケージはUnoだとDIP,miniだとTQFPなので見た目とアナログピンの数が違うが)
設定方法
atmega328p-auを買ってきて,arduinoのファームウェアもはいっていないという前提です.
- atmega 328pにavr-ispで接続する(avr-ispはarduinoで自作するか買って来る)
- atmega328pにヒューズビットを書き込む
- ファームウェアを書き込む
avr -ispへの接続
avrispへの接続はavrwriterを介して接続します.avrwriterはいくつかの種類がありますが,どれでも大丈夫です.arduino Unoをavr writerにする方法もあります.
https://leico.github.io/TechnicalNote/Arduino/avr-isp
ヒューズビットの書き込み
ヒューズビットはマイコンの動作クロックの設定,リセットピンをリセットピンとして使うのか入出力ピンとして使うのかの設定,電源投入から起動までの時間,ウォッチドックタイマなどの設定ができます.
ヒューズビットはavrdudeを使って書き込みます.
avrdudeがインスールされているか確認するにはコマンドプロンプトを起動して,avrdudeと打ち込みます.エラーが帰ってきたらインストールされていて,ヘルプが出てきたらインストール済みです.
avrdudeはwinavrに含まれています.ダウンロードは次のURLより
https://sourceforge.net/projects/winavr/files/WinAVR/20100110/WinAVR-20100110-install.exe/download
コマンドプロントから次のコマンドを実行する.-c は利用する書き込み機によって変わります.arduinoを使って書き込む時は-c avrisp -p COMxにします.(xにはarduinoのポート番号が入る)
まずはヒューズビットを読み出します.この段階でrc=-1とかエラーが出てきたら接続がおかしいので見直します.
1 |
avrdude -c usbasp -p m328p -U lfuse:r:con:h -U hfuse:r:con:h -U efuse:r:con:h |
問題なさそうなら,ヒューズビットを書き込みます(作業に失敗すると高圧書き込みきを使わないと元に戻せなくなる可能性あります)
1 |
avrdude -c usbasp -p m328p -U lfuse:w:0xe2:m -U hfuse:w:0xde:m -U efuse:w:0x07:m |
ファームウェアの書き込み
arduino ideで書き込みたいスケッチを起動します.
「ツール」→「ボード」→「Arduino Pro or Pro Mini」
「ツール」→「ボード」→「ATmega328p(3.3V, 8MHz)」に設定します.(5Vで動かすなら,5V, 8MHzにします)
「スケッチ」→「コンパイルしたバイナリを出力」をクリック
スケッチファイルと同じフォルダに「なんとか.ino.with_bootloader.eightanaloginputs.hex」が作られたと思います.
次のコマンドを実行してファームウェアを書き込みます(-c なんとかは,読み出しと同様に変更してください)
1 |
avrdude -c usbasp -p m328p -U flash:w:coaster-firmware.ino.with_bootloader.eightanaloginputs.hex |