|
STM32F103 + 24LC256, I2C модуль в реальной среде |
|
|
|
Jan 21 2009, 21:17
|
Участник

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

|
Здравствуйте
Есть готовое изделие, один из элементов которого является ЕЕПРОМ 24LC256 производителя МАЙКРОЧИП с которым общается STM32F103 через I2C. Изделие питается от другого изделия и обменивается информацией с ним через 4х проводную нестандартную магистраль (GND, +12V, Data, CLK). На столе, вне зависимости от длины магистрали пишет и читает ЕЕПРОМ хорошо, но в реальных условиях (магистраль проложена в помещении и отчётливо наблюдаются (~300 mV) наводки 50Hz на жилах питания +12) работа с ЕЕПРОМ (в основном чтение) проходит с множеством ошибок, в остальных задачах всё в порядке. Напряжение 3V3 стабильное. Может кто-нибудь сможет определить в какую сторону копать?
|
|
|
|
|
 |
Ответов
|
Jan 22 2009, 22:10
|

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

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

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

|
Цитата(rezident @ Jan 23 2009, 01:15)  Это всего лишь соответствие спецификации I2C. Шина I2C полностью статическая, т.е. минимальная частота тактирования допускается вплоть до 0Гц. вопрос в том что тактирует мастер а тактовую приостанавливает слэйв(тормозит фронт CLK на нуле ), и мастер должен не слепо долбить дальше а остановиться, пока на реальном проводе не возникнет единица. так что толковый мастер будет тактировать и тактироваться одновременно (ИМХО) . Это есть в спецификации ? или это просто толковая реализация мастера ?
--------------------
если еррата пуста - это не хорошо а плохо
|
|
|
|
|
Jan 23 2009, 12:40
|

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

|
Цитата(cebotor @ Jan 23 2009, 14:22)  Это есть в спецификации ? Да, есть. Раздел 8.1 Synchronization Цитата However, the LOW to HIGH transition of this clock may not change the state of the SCL line if another clock is still within its LOW period. The SCL line will therefore be held LOW by the device with the longest LOW period. Devices with shorter LOW periods enter a HIGH wait-state during this time. When all devices concerned have counted off their LOW period, the clock line will be released and go HIGH. There will then be no difference between the device clocks and the state of the SCL line, and all the devices will start counting their HIGH periods. The first device to complete its HIGH period will again pull the SCL line LOW. In this way, a synchronized SCL clock is generated with its LOW period determined by the device with the longest clock LOW period, and its HIGH period determined by the one with the shortest clock HIGH period.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
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       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, 02:15) Это... Jan 23 2009, 14:30       rezident Цитата(sonycman @ Jan 23 2009, 19:30) Так... Jan 23 2009, 16:21        sonycman Цитата(rezident @ Jan 23 2009, 20:21) EEP... Jan 23 2009, 16:55
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|