JH1LHVの雑記帳

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

スポンサーリンク

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

前回の L チカに続き、

今回は「ARDUINO CW KEYER」のスケッチを ATmega1284P に転送してみます。

 

まあ、Lチカが転送できたので、「ARDUINO CW KEYER」のような大きなサイズのデータでも簡単に転送できるだろうと高をくくっていたら、シリアル転送でエラーが連続し、すっかりハマってしまいました。

 

ということで、

ウェブサイトで解決策を 探し回ったり、オシロで波形を見たりと・・・

色んなことをしましたが、結論としては、

 

ATmega1484P のピン配置の関係により、ノイズが影響してシリアル通信を邪魔していたようです。

1484P ではクロック(Pin 12、13)の隣のピン(Pin 14)が RX になっている関係上、どうもクロック側のノイズが RX 側に乗ってしまうようで、このノイズが影響してデータ転送の途中でプロトコルエラーとなってしまうようです。

 

そこで、

RX 側にローパスフィルタ(10KΩと100pF)を追加したところ、これまでの書き込みエラーは嘘のように無くなり、一発でデータが転送できるようになりました。

 

さて、

ここからは、「ARDUINO CW KEYER」シールドと ATmega1284P の接続についての話しです。 

 

f:id:JH1LHV:20141220162750j:plain

左側の「ARDUINO CW KEYER」シールドと、右側の 1284P が乗ったブレッドボードをジャンパワイヤで接続します。

 

シールドと 1284P の実際の接続は以下のとおりです。

f:id:JH1LHV:20180716223408j:plain

■ 「ARDUINO CW KEYER」シールド、ATmega1284P ピン番号対応表

 Keyer シールド   ATmega1284P   
 RESET   9   
 5V   10   
 GND   11   
 Vin   30 (AVCC)   
 A0   40   Speed VR 
 A1   39   Button 
 A3   37   PS2 DATA 
 A4   23 (SDA)   I2C SDA 
 A5   22 (SCL)   I2C SCL 
 -   14 (RX0)   FT232RL TX 
 -   15 (TX0)   FT232RL RX 
 D2   3   Left Paddle 
 D3(D10)*  16 (INT0)   PS2 Clock 
 D4   5   Speaker 
 D5   6   Right Paddle 
 D11   17   TX Key 1 
 D12   18   TX Key 2 

※ keyer シールドのピン配置は Arduino Uno に合わせています。
 (Arduino Uno の D3 には、Atmega1284p の D10 を接続しています。 )

※ Arduino Uno で PS2 Keyboard を使うときには、"keyer_pin_settings.h" の設定を pin = 3 に、1284p では pin = 10 に設定する必要があります。

f:id:JH1LHV:20180716234552j:plain

※ 328P と 1284P ではピン配置に違いがあるため、実際に接続する時には注意が必要です。

 

f:id:JH1LHV:20141220163933j:plain

取り急ぎ、「ARDUINO CW KEYER」 のスケッチが正しく書き込めたか確認したかったので、上の対応表の一部だけを接続して試験を行いました。

 

f:id:JH1LHV:20141220165545j:plain

パドルを接続した試験も良好です。

メモリ機能も動作してます。

 

これで、「ARDUINO CW KEYER」のような大きなデータサイズのスケッチでも 1284P に書き込めることが確認できました。

 

やれやれ。