реклама на сайте
подробности

 
 
> I2C Slave на STM32F103, нестабильная работа
Demeny
сообщение Aug 3 2015, 07:20
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Добрый день!
На контроллере STM32F103 реализовано I2C Slave устройство, которое принимает от "внешнего мира" команды, обрабатывает их, и по запросу чтения выдает ответ. Всё это работает на 90% выпущенных плат.
На 10% тех же плат (из той же произведенной серии) наблюдается следующая картина - I2C Slave аппаратно не подтверждает свой адрес, то есть не выдает ACK на первый (адресный) байт со стороны мастера. В качестве мастера для теста используется компьютер с простейшим адаптером на LPT порт, который имитирует программно работу мастера (выдает команды по I2C и получает ответ).
Картина, наблюдаемая логическим анализатором, доподлинно следующая - мастер правильно формирует старт-условие, адресный байт, не получает от I2C Slave ACK, снова формирует старт, адрес и т. д. много-много раз (несколько десятков раз), и вот в какой-то момент адрес подтверждается (ACK), контроллер получает команду, обрабатывает её и готов отдать ответ. Далее та же петрушка начинается с чтением - старт, адрес + бит чтения = NACK до посинения, потом, наконец, STM32 формирует ACK и выдает правильный ответ мастеру.
Примечательный момент - если встать на любую линию SCL или SDA щупом осциллографа, то работа слейва сразу стабилизируется, он начинает работать четко и формирует ACK сразу после первого же запроса.
Что это может быть? В чём ошибка? Почему 90% плат работают, а 10% ведут себя так?


--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Demeny
сообщение Aug 3 2015, 07:58
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Цитата(1113 @ Aug 3 2015, 10:23) *
ваше устройство только с компьютером связано или стоит в связке с чем-то? какие скорости по шине? покажите схему и плату, что с землёй?

Для тестирования устройство подключается к компьютеру, скорость обмена минимальна, не более 20 кГц по SCL. Программа тестирования 100% рабочая, проверено не на одной тысяче устройств. Да и логическим анализатором записываю обмен...
Схема простая, от внешнего разъёма 2 последовательных резистора по SCL и SDA по 100 Ом, далее подтяжка 4,7 кОм к +3,3 В обе линии, далее ESD-защита на диодах BZA456A обе линии, ну и всё это на контроллер I2C1 STM32F103.
Земля, как земля, полигончик на нижней стороне и на разъём, не думаю, что при таких частотах земля играет какую-то роль.

Цитата(Golikov A. @ Aug 3 2015, 10:31) *
и с подтяжками шин...
уровни логические, питание, ничего там не занижено-не завышено? конфликты? Что-то может на грани и потому то туда падает, то суда?

как монтируют? какой контроль? может быть 10% барака?

Уровни смотрю осциллографом, что-то около 4,5 вольт, но у контроллера пины 5V Tolerant, насколько мне известно. Прямоугольники чёткие, криминала не видно, но как раз при подключении щупа осциллографа на любую линию, не важно, до резисторов 100 Ом или после, всё работает. Кстати, при подключении лог. анализатора такого эффекта нет, может, потому, что обе линии подключены...
Монтаж автоматический, может и брак, понять бы, в чём он, непропаев нет - всё запаяно нормально.


--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Demeny   I2C Slave на STM32F103   Aug 3 2015, 07:20
- - 1113   ваше устройство только с компьютером связано или с...   Aug 3 2015, 07:23
- - Golikov A.   и с подтяжками шин... уровни логические, питание,...   Aug 3 2015, 07:31
- - 1113   посмотрите осциллографом на землю компьютера относ...   Aug 3 2015, 08:00
|- - Demeny   Цитата(1113 @ Aug 3 2015, 11:00) посмотри...   Aug 3 2015, 08:09
- - Golikov A.   Может 3.3 вольт не хватать компьютеру для 1? У как...   Aug 3 2015, 08:09
|- - Demeny   Цитата(Golikov A. @ Aug 3 2015, 11:09) Мо...   Aug 3 2015, 08:21
|- - Timmy   Согласен с iosifk, это могут быть короткие пички н...   Aug 3 2015, 08:25
|- - iosifk   Цитата(Demeny @ Aug 3 2015, 11:21) Это я ...   Aug 3 2015, 08:28
|- - Demeny   Цитата(iosifk @ Aug 3 2015, 11:28) Потому...   Aug 3 2015, 08:40
|- - scifi   Цитата(iosifk @ Aug 3 2015, 11:28) Потому...   Aug 3 2015, 08:51
|- - iosifk   Цитата(scifi @ Aug 3 2015, 11:51) Вообще-...   Aug 3 2015, 09:05
- - iosifk   Цитата(Demeny @ Aug 3 2015, 10:20) Примеч...   Aug 3 2015, 08:13
- - Golikov A.   ЦитатаВ линии стоят последовательные резисторы 100...   Aug 3 2015, 09:04
- - Demeny   Вести с полей. Не веря ни в какие "пички...   Aug 4 2015, 15:47
|- - scifi   По спецификации I2C Fast Mode для Start Condition ...   Aug 4 2015, 17:21
- - Golikov A.   а вы уверены что дело в том что вы сдвинули фронты...   Aug 4 2015, 16:56
- - Demeny   Цитата(Golikov A. @ Aug 4 2015, 19:56) а ...   Aug 4 2015, 17:24
- - scifi   Цитата(Demeny @ Aug 4 2015, 20:24) У меня...   Aug 4 2015, 17:33


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 14:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01362 секунд с 7
ELECTRONIX ©2004-2016