ここ数日は、マイコンチップの「ATmega1284P」を弄っておりました。
このマイコンチップのフラッシュメモリは Arduino Uno の4倍です。
これは、「ARDUINO CW KEYER」の機能を全て書き込んでもメモリに余裕があるということ。
Atmega2560 では少し勿体ない気がしていたので、ワンランク下のこの ATmega1284P はチップの価格の面からも最適な選択ではないでしょうか。
ということで、早速実験です。
私が購入した「ATmega1284P」は 40 ピンの DIP タイプで、入出力ピンも Uno に比べて 12 本も増えています。
(大陸から@750で購入しました。)
Arduino ブートローダを書き込む
(ATmega1284P を Arduino互換機にするためブートローダを書き込む)
まず、最初にやること。
それはこのマイコンに Arduino のブートローダを書き込むことです。
ATmega328P ならスイッチサイエンスの「AVR ISP シールドキット」を使って簡単にブートローダは書き込めますが、今回使用する1284P の足は 40 ピンもあるため、このシールドを使うことはできません。
少々面倒な配線作業が必要になりますが、今回はブレッドボードと ”Arduino Uno 互換機” を使ってブートローダを書き込むことにしました。
ARDUINO CW KEYER を試してみた ~その9~ - JH1LHVの雑記帳
ブレッドボードに乗せた 1284P と Uno 互換機の配線については、ここに掲載されている記事を参考にさせて頂きました。
http://sepzed.files.wordpress.com/2014/03/6413368937_a20a4d8939_o.png
私はこの回路図にリセットボタンと、動作確認用として Pin1に LED を追加しました。
ブートローダを書き込むだけの最小構成です。
ブートローダを 1284P に書き込むためには、もう一つやるべきことがあります。
デフォルトの IDE ではマイコンチップの 1284P に対応していないので、海外サイトからライブラリをダウンロードして Arduino のフォルダへ配置しなければなりません。
ここから、1284P のライブラリをダウンロードして、
/Arduino/hardware/mighty-1284p
のようにファイルを配置します。
Arduino IDE ver 1.6.0 では
/Arduino/hardware/arduino/mighty-1284p
のように配置する。(2015/3/9 追記)
IDE を再起動すると「マイコンボード」のリストに 1284P が現れ選択できるようになります。
準備が整いましたので、それでは早速ブートローダの書き込みです。
- Arduino 互換機を AVR プログラマとして働かせるためスケッチを転送する
①Arduino 互換機のみで起動する(まだ、1284P は接続しない)
②マイコンボードは「Arduino Uno」を選択する
③スケッチの例から「ArduinoISP」を選択する
④スケッチを転送する - ブートローダを書き込む
① Arduino と1284P を以下の通り接続する
(Arduino Uno) (1284P)
5V Pin 10 (VCC)
GND Pin 11 (GND)
D10 (SS) Pin 9 (RESET)
D11 (MOSI) Pin 6 (MOSI)
D12 (MISO) Pin 7 (MISO)
D13 (SCK) Pin 8 (SCK)
②マイコンボードは「Mighty 1284p 16MHz using Optiboot」を選択する
③書込装置は「Arduino as ISP」を選択する
④ツールの「ブートローダを書き込む」を選択する
(RX、TX の LED が交互に点滅するので通信していることが分かります。また1284P の Pin7 に LED を付けても転送状況を確認することができます。)
しばらくすると、書き込みは完了します。
(ブートローダの書き込みが成功していれば、リセットボタンで Pin1 に取り付けた LED が何度か点滅します。)
今日は、ここまです。
この続きはまた今度ということで。。。