i2c на кремниевом изображении c8051f32x (с использованием USBXpress) - PullRequest
0 голосов
/ 28 октября 2009

Я имею I2C (SMBus), работающий должным образом в этом uC, и имею графический интерфейс VB, который может связываться через USB (используя USBXpress) и выполнять транзакции I2C от uC до отдельной IC. Проблема в том, что я проводил опрос в регистре IC каждые 1 с. Когда я выполняю асинхронную транзакцию I2C с графическим интерфейсом, я время от времени полагаю, что она сталкивается с транзакцией I2C опроса, и все данные I2C смещаются в GUI (то есть данные регистра 0x00 отображаются в регистре 0x01). Данные I2C в IC выглядят корректно (следя за шиной I2C с помощью LA). Что именно происходит и как я могу это исправить?

1 Ответ

0 голосов
/ 28 октября 2009

Если опрос между uC и I2C происходит по той же шине I2C, что и приложение GUI, вам необходимо убедиться, что доступ к I2C контролируется таким образом, что одна транзакция завершается до того, как разрешается начать другую , Может быть, вы уже делаете это, но это не ясно из вопроса.

Также может помочь размещение некоторого кода или псевдокода кода uC.

...