0

PIC16F88 で奇妙な問題が発生しています。I2C を介して接続された EEPROM があり、portb.bit6 に書き込むまで問題なく動作します。その時点から、EEPROM からゴミが出始めます。オシレータ出力に portb.6 を使用する Timer 1 を明示的に無効にしようとしましたが、役に立ちませんでした。PIC ピン (ピン 12) からトレースを切り取って、物理的に何も接続されないようにしてみましたが、役に立ちませんでした。私の C コードは単純で、portb.6 = 0 または portb.6 = 1 です。いずれにせよ、I2C を介した EEPROM の読み取りは永遠に失敗します。生成された ASM コードは正常に見えます。この問題は、私が試したすべてのボードで発生するため、特定の PCB に限定されたものではありません。私は当惑しています。助言がありますか?

4

1 に答える 1

0

portb の任意のビットに書き込む前に、毎回 SCL ピンと SDA ピンにゼロ ビットを書き込む必要があることがわかります。FWIW、I2C 通信に PIC16F88 の SSP ペリフェラルを使用するのではなく、ビットバンギングを行っていました。このパズルを解決してくれた Yahoo グループ Electronics_101 のメンバーに感謝します。

于 2012-08-21T16:42:40.717 に答える