2012-10-28 (日)
*ThinkPadキーボード(4日目)
今日は,トラックポイント周りの解析とUSB周りを実装して普通のキーボードとして使えるようにする.
トラックポイントメモ
- 30 CapsLock LED(K) [Optional]
- 19 5V
- 20 MOUSE ??
- 21 MOUSE CLK
- 22 MOUSE DAT
- 25 MOUSE GND
2012-10-21で調べたやつは一部間違ってたので修正した.
最近のThinkPadキーボードはCapsLockキーにLEDがついてるのですが,カソードが30番ピンにつながってるのはわかった.アノード側調べてないけど残ってるピン少ないしすぐ見つかるはず.
トラックポイント操作すると,DATに3バイトのデータが流れている.最初のバイトにはボタンの情報が入っているっぽい.パリティ付きのシリアル通信だったので,たぶんPS/2互換.
http://ioiodesu.web.fc2.com/PS2/PS2.HTML
オープンコレクタだと外付け部品が出てくるのでだるいなと思ったけど.AVRの内部プルアップ抵抗と,入出力モードの切り替えで模倣すれば直結でもいけるな….
USBキーボードとして使えるように
続いてキーボードの方.
最初からUSBが載ってるAT90USB1286も買ってあるのだけど,MEGA128で作り始めてしまったのでV-USBで.
あとでAT90USB1286に乗せ換えるつもりで回路作ってたけど,mega128にはPCINT無いのか.V-USBでUSB使うために割り込みが必要なのだけど,90USB128互換でピンを使ってたら,割り込みかけられないことに気づいた.仕方ないので別のピンを使う.
USB周りも実装したので,キーボードとして認識されるようになった.CTRL,ALT,SHIFTの処理追加したのでとりあえず普通に使える.
途中でライタの接続間違えて,mega128壊してしまった気がしてあせったけど,前に書き込んだプログラムは実行できているっぽいので,MISO/MOSIの様子を伺っているとデバイスタイプが取得できないだけみたいだったので,タイプをmega128に強制して操作して回避.
来週あたりトラックポイントを使えるようにしよう.