まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

2011年12月

USB充電通信ケーブル

この前Android機の中をいじろうとUSBで接続したら全然認識せずに午前中を潰してしまった。よくよく調べたらなんと充電onlyケーブルのケーブルだった。紛らわしい。USBロゴ付けないで!
…ということがあったのでUSBの通信と、通信をOFFにして充電のみ出来るものはないか探してみた。
ELECOM USB2.0HUB 個別スイッチ付 セルフパワー 4ポート 2m ブラック U2H-TZS420SBKELECOM USB2.0HUB 個別スイッチ付 セルフパワー 4ポート 2m ブラック U2H-TZS420SBK

エレコム 2010-08-20
売り上げランキング : 11503

Amazonで詳しく見る
by G-Tools
 が、これは違う。スイッチを押すと電源が切れてしまう。 ということで作ってみた。

usbcable1

 ホームセンターで買ってきたコタツ用の電源スイッチと、USB延長ケーブル。
mini-Bやmicro-B、特殊なものなど各種コネクタに繋ぎたいため、それぞれの携帯電話などに付属のUSBケーブルを接続できるようにとUSB延長ケーブルにした。

usbcable2

 内部はこんな感じ。ご想像の様に+5V、GNDはそのまま。スイッチは片切りなのでD-はそのまま接続し、D+をカット出来るようにした。
 スイッチがでかく、ON/OFFはっきりわかるのでLED等もいらない。
 これで、WindowsMobileのように接続するとSync動作を始めるものでもあらかじめ通信OFFにしておけば充電のみ行うことが出来る。SyncしたければパチンとONにする。よし。

PS/2キーボード変換器の製作(5)

キーボード⇔変換器⇔PC本体とのやり取りについて検討する。

 キーボードとPC本体、それぞれはPS/2インターフェースでシリアル通信を行う。このデータを加工するためには送受信するデータをいったんマイコン内部に蓄積しなければならない。2つのポートに関してポーリングを行うことになるので、以下の様な手順を考えた。

(1)キーボード⇔変換器について
 キーボードからの送信か、キーボードへの送信かを判定
 (1-a)キーボード→変換器
 0bit目を受信
 1bit目を受信
 2bit目を受信
 3bit目を受信
 4bit目を受信
 5bit目を受信
 6bit目を受信
 7bit目を受信
 8bit目(ODDパリティ)を受信
 キーボードからの受信バッファに蓄積
 キーボードからの受信モード解除
 (1-b)キーボード←変換器
 0bit目を送信
 1bit目を送信
 2bit目を送信
 3bit目を送信
 4bit目を送信
 5bit目を送信
 6bit目を送信
 7bit目を送信
 8bit目(ODDパリティ)を送信
 キーボードへの送信バッファから削除
 キーボードへの送信モード解除
(2)PC本体⇔変換器について
 本体からの送信か、本体への送信かを判定
 (2-a)PC本体→変換器
 0bit目を受信
 1bit目を受信
 2bit目を受信
 3bit目を受信
 4bit目を受信
 5bit目を受信
 6bit目を受信
 7bit目を受信
 8bit目(ODDパリティ)を受信
 PC本体からの受信バッファに蓄積
 PC本体からの受信モード解除
 (2-b)PC本体←変換器
 0bit目を送信
 1bit目を送信
 2bit目を送信
 3bit目を送信
 4bit目を送信
 5bit目を送信
 6bit目を送信
 7bit目を送信
 8bit目(ODDパリティ)を送信
 PC本体への送信バッファから削除
 PC本体への送信モード解除
 (3)キーボードからの受信バッファに蓄積がある場合
 データ変換
 PC本体への送信バッファに転送
 キーボードからの受信バッファから削除
 PC本体への送信モード設定
(4)PC本体からの受信バッファに蓄積がある場合
 キーボードへの送信モード設定
※(1)〜(4)繰り返し、これらのループを数十μS以内で回す(PS/2インターフェース観測後決定)

 ODDパリティのエラーがあった場合は?変換器で加工せずそのまま渡すことにより、PC本体とキーボード間で訂正してくれるので問題ない。

 各バッファの容量とマイコンの処理速度がどれくらいあれば収まるか?

PS/2キーボード変換器の製作(4)

US配列と日本語配列のキーの位置とスキャンコードは同じで、キートップの刻印が異なるだけである。これが問題で、キーボードの種類をパソコン側で見分けることができない。OSでキーボードの種類を設定するため、そのままキーボードを繋ぎ換えたら刻印どおりの記号が入らなくなる。

 SHIFTキーについては特別な扱いとなる。@マークを入力するには、日本語配列ではそのまま@だが、US配列だとSHIFT+2となる。つまり、US配列のキーボードでSHIFTが押された状態で2が押された時に、日本語配列で@に相当するスキャンコードを送出しなければならない。この時はいったんSHIFTキーを離したように見せかけた後、再度SHIFTキーのスキャンコードを送る。



英 [SFT] [2]        [2解除]         [SFT解除]

和 [SFT] [SFT解除][@][SFT] [SFT解除][@解除][SFT]  [SFT解除]

ALTキーやCTRLキー併用の場合は問題ない。機能が独立しているためだ。
あと、キーリピートが発生するが、変換にかかる時間がキーリピートの時間よりも充分に短ければ問題にならないだろう。

PS/2キーボード変換器の製作(3)

使用するマイコンだが開発キットを持っててひと通り使ったことのあるR8Cで検討。

サンハヤト SR8C15CP 
R8C/TinyマイコンSR8C15CP用書込み・I/Oボード MB-RS8 

SR8C15CPはDIP20ピンに封止したR8C/15マイコン。生産完了品だが手持ちがあるので使ってみる。
開発キットは9V300mAのアダプタが必要。液晶は持っている。

ルネサス開発環境 

PS/2キーボード変換器の製作(2)

 US配列と日本語配列の対応について作ってみた。今回はそのままタイプした場合とシフトキーを押した場合で対応づけている。
SHIFTキーを押している状態をマイコン側で保持して、ダマすことになる。ALTキーやCNTLキーを併用した場合も考慮する必要があるかも。

キートップとスキャンコード

和 英 code 英→和 変換後
漢 ~` 0x0E SHIFT+0x55/SHIFT+0x54
1! 1! 0x16 -
2" 2@ 0x1E 0x1E/0x54
3# 3# 0x26 -
4$ 4$ 0x25 -
5% 5% 0x2E -
6& 6^ 0x36 0x36/0x55
7' 7& 0x3D 0x3D/SHIFT+0x36
8( 8* 0x3E 0x3E/SHIFT+0x52
9) 9( 0x46 0x46/SHIFT+0x3E
00 0) 0x45 0x45/SHIFT+0x46
-= -_ 0x4E 0x4E/0x51
^~ =+ 0x55 SHIFT+0x4E/SHIFT+0x4C
\| 無 0x6A -
@` [{ 0x54 0x5B/SHIFT+0x5B
[{ ]} 0x5B 0x5D/SHIFT+0x5D
;+ ;: 0x4C 0x4C/0x52
:* '" 0x52 SHIFT+0x3D/SHIFT+0x1E
]} |\ 0x5D SHIFT+0x6A/0x6A
__ 無 0x51 -

以下は対応なし
無変換 - 0x67
前候補 - 0x64
カタカナ - 0x13

参考文献:PC周辺機器オリジナル設計ガイド2 Interface2005年12月号別冊付録

PS/2キーボード変換器の製作(1)

IBM-PC互換機のキーボードはUS配列と日本語配列の切り替えがOSを再起動しないとできない。(Macintoshは混在していてもそれぞれ認識して使うことができた) 
US配列を好む人は多いが、日本語配列の方が変換キーなどの機能が多いこと、一般的なご家庭用パソコンでは日本語配列しかないこと、WindowsをUS配列に設定するには若干の手間がかかることが問題となる。
 で、US配列のキーコードを日本語配列に見せかけるインターフェースを検討する。もし挫折しても資料は残るのでなんなりと役に立つでしょう。

PS/2 connector Wikipedia

 これによると5Vで275mAが取れる。信号線はDataとCLKで入出力を考えると4ポートあれば充分。  最近のマイコンで作るとしたら8PのAVRでもできそうだが、手持ちで以下のマイコンを検討する。

AVRマイコン ATTINY2313 

R8C/M12Aマイコン 

※いづれも秋月電子

 キーボードと本体は双方向の通信なので、コードを書き換える部分以外はスルーパスする方針。ハンドシェイクはこのアダプタ側では行わないことにする。
  SHIFTキーを押した状態での記号、例えば数字の2についてはUS配列で@、日本語配列で”となるが、これを差し替えるには現在SHIFTキーを押している状態かどうかを保持しないといけない。US配列での日本語入力切り替えで使うALT+`も同様で、ALTの状態を保持しないといけない。使わないかも知れないがCTRLもあるし、それぞれ左右に存在する。

 PS/2キーボードの資料については以下が見つかったが、詳細なタイミングなどは本+実機確認。

Sazanami Online:PS/2 インターフェイスの研究 
KeyCordLsit.pdf
記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ