0

このuCでI2C(SMBus)が正常に動作し、USB経由で(USBXpressを使用して)通信し、uCから別のICへのI2Cトランザクションを実行できるVB GUIを持っています。問題は、uC が 1 秒ごとに IC のレジスタをポーリングしていることです。非同期 GUI I2C トランザクションを実行すると、時々、ポーリング I2C トランザクションと衝突し、すべての I2C データが GUI でシフトされます (つまり、レジスタ 0x00 のデータがレジスタ 0x01 に表示されます)。IC 内の I2C データは正しいように見えます (LA で I2C バスをスパイすることにより)。正確に何が起こっているのでしょうか?どうすれば修正できますか?

4

1 に答える 1

0

uC と I2C の間のポーリングが、GUI アプリで使用されているのと同じ I2C バスで行われている場合は、I2C へのアクセスが制御されていることを確認して、一方のトランザクションが完了してから他方のトランザクションが開始できるようにする必要があります。すでにこれを行っているかもしれませんが、これは質問からは明らかではありません。

また、uCコードのコードまたは疑似コードを投稿すると役立つ場合があります。

于 2009-10-28T00:20:05.247 に答える