カテゴリーアーカイブ: Arduino

ATmega328Pのヒューズ設定に関して。
以下問題ありませんでした。

UNO用ヒューズ書き込み をしたあと、 Duemilanove用ヒューズ再書き込み
Duemilanove用ヒューズ書き込み をしたあと、 UNO用ヒューズ再書き込み


Arduino Uno
Low Fuse 0xFF
High Fuse 0xDE
Extended Fuse 0x05

Arduino Duemilanove or Nano w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05

(http://www.codingwithcody.com/2011/04/arduino-default-fuse-settings/)

広告

IMG_6728
ATmega328P-PU

IMG_6732
Arduino UNOにさし込む。
(※ 別の種類のArduino(Duemilanoveなど)でArduino UNO用のブートローダ書き込み(&ヒューズ書き込み)、ということもできます。その反対も。)

IMG_6730
さし込むとき、向きをまちがえないこと。
はしの半円の切り欠きを外側に。

IMG_6731
ちなみに外すときは、マイナスドライバーやキリ、ピンセットなどを使って丁寧に(できるだけ垂直に)外します。
そうしないとマイコンの足が曲がります。

IMG_6734
Arduino UNOとAVR ISP mkIIをこのようにつなぐ。
Arduino UNOのUSBケーブルも、AVR ISP mkIIのUSBケーブルも両方PCにつなぐ。
(通信はAVR ISP mkIIだけ行っていればokですが、ATmega328P-PUに給電する必要があるため、Arduino UNOのUSBケーブルもつなぎます)
このあたりのピンマッピングが気になる場合は「Arduino ICSP pin mapping」と検索。

IMG_6735
AVR ISP mkIIのLEDが緑に点灯していたら接続okの意味。
(だめなときは赤で点灯します → ① Arduino UNOとAVR ISP mkII両方のUSBケーブルがPCにささっているか確認 ② コネクタの向きが正しいか確認 ③ ATmega328P-PUをArduino UNOのボードに取り付ける向きが正しいか確認)

scrn0
Arduino IDEを開く
ツール / マイコンボード / Arduino UNO を選択

scrn1
ツール / 書込装置 / AVRISP mkII を選択

scrn2
ツール / ブートローダを書き込む をクリック。
AVR ISP mkIIのLEDが緑色やオレンジ色に点灯、中のほうの緑色のLEDが点滅します。
しばらくしてArduino IDEに「ブートローダの書き込みが完了しました」という表示が出たら完了です。
なにかスケッチを書き込んでみて、正しく動作するか確認してみてください。

ATtinyにはArduinoのSerialライブラリは使えないので、SoftwareSerial(もしくはNewSoftSerial)ライブラリを使います。
自分のArduino IDEに、SoftwareSerialかNewSoftSerialのどっちが入っているかはこのページの’Program the board’を見ながらチェック。
(どっちも入っていなかったら探してダウンロードしてlibrariesフォルダのなかに入れる!)
http://academy.cba.mit.edu/2013/students/yuichi.hirose/12.html

BoardでATtiny45 (8 MHz)などを選んでBurn Bootloaderをすると、
デフォルトで1MHzで動くATtinyが8MHzで動くようになります。
8MHzで動かさないと、SoftwareSerialが使えません。
(もしくは、レゾネータやクリスタルを使ってexternal 20MHzで動かしてもたぶん大丈夫っぽいです)

詳しくはこちらの’Configuring the ATtiny to run at 8 MHz (for SoftwareSerial support)’を。
http://hlt.media.mit.edu/?p=1695

You cannot use Arduino’s Serial library for ATtiny 45, 85, 44 and 84 (and any tiny series, I guess).
So you can use SoftwareSerial library or NewSoftSerial library instead of it.

(Check which you have on your Arduino IDE, SoftwareSerial or NewSoftSerial with seeing ‘Program the board’ on this page.
http://academy.cba.mit.edu/2013/students/yuichi.hirose/12.html)

But, after programming the board, it didn’t work.
Then after struggling for a while, I found I forgot to burn bootloader on the board.

ATtiny series run at 1MHz by defalt,
so you need to configure the board to run at 8MHz with burning bootloader after selecting e.g. ‘ATtiny45 (8 MHz)’ on Board menu.
(Or, it also can work with external 20MHz using a resonator or a crystal, I guess.)

See ‘Configuring the ATtiny to run at 8 MHz (for SoftwareSerial support)’ on this page.

http://hlt.media.mit.edu/?p=1695

Arduino – SoftwareSerial
http://arduino.cc/en/Reference/SoftwareSerial

NewSoftSerial | Arduiniana
http://arduiniana.org/libraries/newsoftserial/