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

 
 
> STM32F103 + 24LC256, I2C модуль в реальной среде
OVladimir
сообщение Jan 21 2009, 21:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 10-01-07
Из: Вильнюс
Пользователь №: 24 290



Здравствуйте

Есть готовое изделие, один из элементов которого является ЕЕПРОМ 24LC256 производителя МАЙКРОЧИП с которым общается STM32F103 через I2C. Изделие питается от другого изделия и обменивается информацией с ним через 4х проводную нестандартную магистраль (GND, +12V, Data, CLK). На столе, вне зависимости от длины магистрали пишет и читает ЕЕПРОМ хорошо, но в реальных условиях (магистраль проложена в помещении и отчётливо наблюдаются (~300 mV) наводки 50Hz на жилах питания +12) работа с ЕЕПРОМ (в основном чтение) проходит с множеством ошибок, в остальных задачах всё в порядке. Напряжение 3V3 стабильное.
Может кто-нибудь сможет определить в какую сторону копать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sonycman
сообщение Jan 22 2009, 13:15
Сообщение #2


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Недавно ковырялся с I2C тут у себя, макетка с проводниками длинной около 20 см, подтягивающие резисторы номиналом ~2.5к, питание 3.3 вольт.
При этом был весьма пологий нарастающий фронт, и частота вместо 400 около 370 кГц.

Интересно, в интерфейсе заложен механизм автоматического снижения частоты от качества сигнала?
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 22 2009, 13:49
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(sonycman @ Jan 22 2009, 18:15) *
Интересно, в интерфейсе заложен механизм автоматического снижения частоты от качества сигнала?
Нет. В спецификации I2C только нормируется максимальная емкость линий шины и времена нарастания/спада сигналов при максимальной частоте тактирования (100кГц или 400кГц или 3,4МГц).
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 22 2009, 14:06
Сообщение #4


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(rezident @ Jan 22 2009, 17:49) *
Нет. В спецификации I2C только нормируется максимальная емкость линий шины и времена нарастания/спада сигналов при максимальной частоте тактирования (100кГц или 400кГц или 3,4МГц).

Ну вот в моём случае время нарастания сигнала SCL превышало 300 нс (на всём участке от 0 до 3.3 вольт).
Это могло способствовать снижению частоты?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 22 2009, 21:38
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(sonycman @ Jan 22 2009, 16:06) *
Это могло способствовать снижению частоты?
Если мастер грамотный - то могло. Мастер отпускает SCL и какое-то время считывает с нее ноль. Он воспринимает это как попытку слейва попридержать CLK.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
cebotor
сообщение Jan 22 2009, 22:10
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 6-04-07
Из: Бронницы
Пользователь №: 26 809



Цитата(Сергей Борщ @ Jan 23 2009, 00:38) *
Если мастер грамотный - то могло. Мастер отпускает SCL и какое-то время считывает с нее ноль. Он воспринимает это как попытку слейва попридержать CLK.

проверено придерживая вручную - останавливается передача корректно возобновляясь потом именно на этом камне - это значит что мастер здесь грамотный так ?


--------------------
если еррата пуста - это не хорошо а плохо
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 22 2009, 22:15
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(cebotor @ Jan 23 2009, 03:10) *
проверено придерживая вручную - останавливается передача корректно возобновляясь потом именно на этом камне - это значит что мастер здесь грамотный так ?
Это всего лишь соответствие спецификации I2C. Шина I2C полностью статическая, т.е. минимальная частота тактирования допускается вплоть до 0Гц.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 23 2009, 14:30
Сообщение #8


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(rezident @ Jan 23 2009, 02:15) *
Это всего лишь соответствие спецификации I2C. Шина I2C полностью статическая, т.е. минимальная частота тактирования допускается вплоть до 0Гц.

Таким образом "тормозить" CLK может не только слэйв, а ещё и слишком медленное нарастание фронта?
Так как в моём случае слэйв высокоскоростной (AT24C02B) и не должен удлиннять CLK.

Возможно, и щупы осциллографа своей ёмкостью влияют на снижение частоты...

Уменьшение номиналов подтягивающих резисторов (с 4к7 до 3к3) немного прибавило в скорости.
А по спецификации для моих условий допускаются пуллапы сопротивлением вплоть до 1к.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 23 2009, 16:21
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(sonycman @ Jan 23 2009, 19:30) *
Так как в моём случае слэйв высокоскоростной (AT24C02B) и не должен удлиннять CLK.
EEPROM вообще не имеет возможности "удлинять" длительность нуля SCL, т.к. SCL у нее это чистый вход!
Цитата(sonycman @ Jan 23 2009, 19:30) *
Возможно, и щупы осциллографа своей ёмкостью влияют на снижение частоты...
Для наблюдения таких сигналов (цифровых с высокой скоростью изменения) щуп осциллографа должен быть с согласованным делителем.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- OVladimir   STM32F103 + 24LC256   Jan 21 2009, 21:17
- - sgrig   Для начала ГОСТ Р 51522—99 (МЭК 61326-1—97) и Дж.Б...   Jan 22 2009, 09:51
- - Сергей Борщ   Подтяжки на I2C есть? И если есть, какого номинала...   Jan 22 2009, 12:17
- - cebotor   Цитата(rezident @ Jan 23 2009, 01:15) Это...   Jan 23 2009, 12:22
|- - Сергей Борщ   Цитата(cebotor @ Jan 23 2009, 14:22) Это ...   Jan 23 2009, 12:40
|- - rezident   Цитата(cebotor @ Jan 23 2009, 17:22) Это ...   Jan 23 2009, 12:55
|- - cebotor   Цитата(rezident @ Jan 23 2009, 15:55) Сер...   Jan 23 2009, 13:32
- - sonycman   Цитата(rezident @ Jan 23 2009, 20:21) EEP...   Jan 23 2009, 16:55


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 09:49
Рейтинг@Mail.ru


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