2013年8月31日土曜日

active-highかどうか、ちゃんと確認しませう  今日(これから)のfirmware実験 USB (funny keyboard v2b)

なんか、タイトルがいつもと違いますが(笑)。


結論から言うと、トラックボールモジュールからのパルスをUSBモジュールに取り込むときに、
NORゲートを使うことにしました。



トラックボールモジュールからのパルスをUSBモジュール(56ピンFX2LP)に取り込むところで
うまく行ってません。
ORゲートのロジックICを使ってダメで、ANDゲートのロジックICを使ってもダメで。


上図はORゲートロジックICの7432を使った図
7432の出力をUSBコントローラー(FX2LP)の外部割り込みピン(INT0)に接続し、
up と down はUSBコントローラーにも接続してある。

上図の矢印の位置は、実験中は7432の山の左側にあると思っていました。
でも想定通り動作しないので、図にあるように山の右裾で外部割り込みが発生しているようです。

FX2LPには、エッジではなく high または low で外部割り込みが起きるモードもあるのですが、そのモードでの実験結果も外部割り込みが起きるタイミングは上図の矢印の位置であることを示していました。
つまり、FX2LP の INT0  と INT1 の外部割り込みは、active low (high → low)だったわけです。
説明書というか、Cypress社の資料をよく読むと、そう書いてある。あちゃ
そして、active high で外部割り込みを起こすことはできなさそう。


なので、NORを使うことにしました。


これなら、 active low の外部割り込みが欲しいタイミングで起きるはず。


OR(7432)やAND(7408)と違って、NOR(7402)はピンの配置(inputとoutput)が異なっているので、親指モジュールを作り直しです。




新しい親指モジュールができたら、firmwre の external interupt は negative ORからの信号なので active low の edge sensitive で検出可能で、トラックボールモジュールからの信号を直接読み取るピンがhighになっているときにマウスカーソルを動かすようにすればいいでしょう。


今日は、ともかく、ハンダ付けに没頭したい。。。。


コメントを投稿