Jump to content
    

Решение проблемы USCI30 (I2C slave receiver)

Добрый день!

 

Для решения проблемы USCI30, описанной в SLAZ059J–April 2010, для серии F550x F5510, предлагается несколько вариантов. Я выбрал DMA.

 

Под отладкой все прекрасно работает, slave принимает данные без проблем. Как только запускаю процессор без отладки, I2C отваливается. Линия SCL в нуле.

 

Мастер посылает 3 байта данных, и периодически считывает 18 байт. DMA инициализирован на три байта, далее прерывание от DMA и обработка.

 

Внешнее проявления проблемы без дебагера такие:

После старта могут быть записаны только 2 байта, после этого клоки в ноль. При этом, после старта, до записи, чтение работает без проблем.

 

Подскажите, кто как решил эту задачу.

 

 

 

 

 

Share this post


Link to post
Share on other sites

Дополнение:

 

Дебагер подключается через интерфейс Spy-Bi-Wire. Так вот, если в момент включения пин RSTM подключен к разъему дебагера, все будет работать без проблем. По схеме линия сброса подключена к питанию через RС-цепь (47кОм, 2200pF). Осциллографом смотрел никаких изменений на линии не происходит, без дебагера и с ним.

Но все же какая-то завязка есть.

Share this post


Link to post
Share on other sites

Частота передачи не изменяется? В режиме дебаг частота может быть ниже, а в нормальном режиме задержки уменьшаются и все плывет

 

Share this post


Link to post
Share on other sites

Контролирую SMCLK - все один к одному. Частота I2C задается мастером, поэтому отличий тоже нет.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...