コントロールレジスタへの書込みがうまく行かずプログラミングに失敗している
とも考えられます。
まずI/Oとしてレジスタを正常に読み書きできるかどうかですが既にRIDとCCONF
は正常にアクセスできることは見ました。
ところがこれは下4ビットしか確認できません。
そこでR/W可能なレジスタとしてMAMSKレジスタに0~255のデータを書込み、
読出しベリファイをしてみました
とも考えられます。
まずI/Oとしてレジスタを正常に読み書きできるかどうかですが既にRIDとCCONF
は正常にアクセスできることは見ました。
ところがこれは下4ビットしか確認できません。
そこでR/W可能なレジスタとしてMAMSKレジスタに0~255のデータを書込み、
読出しベリファイをしてみました
for(x=0;x<256;x++) { WriteUSB(USB_MAMSK,x); y=ReadUSB(USB_MAMSK); if(x!=y) { sprintf(str,"X=%02X Y=%02X\n\r",x,y); putstr(str); } }
すると書込んだデータと違うものが読み出されるパタンがヒットしました
書込み 読出し 0x2? → 0x6? 0x3? → 0x7? 0x4? → 0x0? 0x5? → 0x1? 0x8? → 0xC? 0x9? → 0xD? 0xA? → 0xE? 0xB? → 0xF? ?は書いた値と同じ
上位4ビットが化けてしまっています。
ビット列で書くとD6ビットのセット/リセット状態が不安定のようです
ビット列で書くとD6ビットのセット/リセット状態が不安定のようです
そこでUSBN9603につながるデータラインD6をモニタしてみると
![イメージ 1](https://cdn-ak.f.st-hatena.com/images/fotolife/O/O3I/20190804/20190804211714.jpg)
ch1:D6 ch2:USBN9603チップセレクト