JH1LHVの雑記帳

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

スポンサーリンク

ARDUINO CW KEYER を試してみた ~その50~ (Mega2560 Pro Mini ボード)

今回は、Arduino USB Host Shield を使って USB キーボードを利用する方法を試してみました。

この K1NG の CW Keyer は、PS/2 キーボードに対応している仕様ですが、かなりのクセがあり、動作するキーボードが限られているという大きな課題があります。

そこで、メインのマイコンボードを mega2560 にアップグレードしたこともあり、メモリ容量を気にせずに済むようになったため、Arduino Uno 用の USB Host Shield を試してみることにしました。

最初に結論から。

mega2560 と USB Host Shield のインターフェースは SPI 通信なんですが、すでにこの端子は送信機の CW ジャックの接続で使われているため、このままでは動作しません。

SPI (SS、MOSI、MISO、CLK)で使う、D10 ~ D13 を空ける必要があります。


https://radioartisan.files.wordpress.com/2011/03/k3ng-keyer-schematic-2012052101.png

K1NG の回路では、SPI 端子を送信機の接続に割り当てています。

わたしの回路でも、K1NG と同じ D11(MOSI)、D12(MISO)を送信機へ接続しているので、USB Host Shield を使うためには、この D11 と D12 を解放させる必要があります。

Mega2560 Pro Mini ボードで、USB Host Shield は使えるか?

そもそも、mega2560 で USB Host Shield は使えるのか、検証です。
さて、USB キーボードは使えるのでしょうか。

Arduino Uno の SPI は、D10(SS)、D11(MOSI)、D12(MISO)、D13(CK)を使いますが、mega2560 では、ここに SPI 信号は出てないので、SPI と D11~D13 でジャンパする必要があります。
 

手持ちの3種の USB Host Shield で試してみました。

Mega2560 Pro Mini ボードに、USB Host Shield を重ねます。

Mega2560 には、四角で囲まれた専用の SPI 端子と、D50~D52 の丸で囲まれた端子の2カ所に SPI 信号が出力されるとされています。しかし、実際には専用の SPI 端子を使用しないとうまく動作しませんでした。
 

Mega2560 の SPI に L 型ピンヘッダを取り付けたため、USB Host Shield とはジャンパー線で接続する形になりました。

当初、SPI 通信には D50 ~ D52 ピンを使えば問題ないと思い、その前提で基板も作成したのですが・・・実際には、この端子では通信がうまくいかないことが判明しました。
確認作業にけっこう時間がかかってしまいました。

USB キーボードの接続試験では、ここのスケッチを使いました。

f:id:JH1LHV:20200322182056j:plain
ちゃんと動作することを確認しました。

f:id:JH1LHV:20200322183039j:plain

GAOHOU Mini USB Host Shield、やっぱり動きませんでした。
2020/05/02 GAOHOU Mini USB Host Shield の動作確認ができました。)

オシロスコープで確認したところ、最初のクロック信号が出ていないことを確認しました。これが物理的な故障なのか、それとも単に使い方に問題があるだけなのかはわかりません。現在、AliExpressで同じ製品を2つ注文中なので、到着次第もう一度試してみる予定です。

ちなみに、大きいタイプの USB Host Shield は、どちらも問題なく動作しました。

さて、USB キーボードを使用できるようにするために、CW Keyer のメイン基板に割り当てている IO を見直す必要があります。再設計した基板を新たに発注するつもりです。

いやはや、こんな作業ばかりしていたら、気づけば連休が終わってしまいました。
トホホ。