読者です 読者をやめる 読者になる 読者になる

JH1LHVの雑記帳

和文電信好きなアマチュア無線家の雑記帳

ARDUINO CW KEYER を試してみた ~その16~

ここ数日は、マイコンチップの「ATmega1284P」を弄っておりました。

 

このマイコンチップのフラッシュメモリは Arduino Uno の4倍です。

これは、「ARDUINO CW KEYER」の機能を全て書き込んでもメモリに余裕があるということ。

 

Atmega2560 では少し勿体ない気がしていたので、ワンランク下のこの ATmega1284P はチップの価格の面からも最適な選択ではないでしょうか。

 

ということで、早速実験です。

 

f:id:JH1LHV:20141210214449j:plain

私が購入した「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

http://sepzed.files.wordpress.com/2014/03/6413368937_a20a4d8939_o.png

 

私はこの回路図にリセットボタンと、動作確認用として Pin1に LED を追加しました。

 

f:id:JH1LHV:20141213181543j:plain

f:id:JH1LHV:20141213181625j:plain

ブートローダを書き込むだけの最小構成です。 

 

ブートローダを 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 が現れ選択できるようになります。

f:id:JH1LHV:20141213184027j:plain

 

準備が整いましたので、それでは早速ブートローダの書き込みです。

  1. Arduino 互換機を AVR プログラマとして働かせるためスケッチを転送する
    ①Arduino 互換機のみで起動する(まだ、1284P は接続しない)
    ②マイコンボードは「Arduino Uno」を選択する
    ③スケッチの例から「ArduinoISP」を選択する
    ④スケッチを転送する

  2. ブートローダを書き込む
    ① Arduino と1284P を以下の通り接続する
      (Arduino)   (1284P)
         5V           Pin 10
             GND         Pin 11
             D10          Pin 9         (RESET)
             D11          Pin 6         (MOSI)
             D12          Pin 7         (MISO)
             D13          Pin 8         (SCK)
    ②マイコンボードは「Mighty 1284p 16MHz using Optiboot」を選択する
    ③書込装置は「Arduino as ISP」を選択する
    ④ツールの「ブートローダを書き込む」を選択する
    (RX、TX の LED が交互に点滅するので通信していることが分かります。また1284P の Pin7 に LED を付けても転送状況を確認することができます。)

    f:id:JH1LHV:20141210233319j:plain

    しばらくすると、書き込みは完了します。
    (ブートローダの書き込みが成功していれば、リセットボタンで Pin1 に取り付けた LED が何度か点滅します。)

 

今日は、ここまです。

この続きはまた今度ということで。。。