|
at24cxxx eeprom - i2c проблема при первом запросе |
|
|
|
Oct 26 2007, 20:41
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
Привет всем!
вот скатилась на меня беда, подкинули мне проблему. В общем, есть уже запущенный в производство прибор. Вот тут его составляющие:
Cyclone, Nios 2 (i2c мастер); hwclock (i2c), ad converter(i2c) и at24c512 (i2c). Для выпуске была разработана тестовая платформа, которую программил коллега. Тесты в общем элементарные - программируется сам прибор и проверяется вся периферия. Из десяти приборов 8-9 at24с512 еепромов выпадают при первой попытке их запрограммировать (нету ака) - при повторном запуске всё работает. Первый баг я уже нарыл - при залитие софта в cyclone не производился ресет системы - i2с отдыхал. Теперь имеем из 10 новых один вылетает при первой попытке. Что за беда?? i2c 400khz, подтянут 10k, wp деактивируется, адресса в порядке - может здесь что-то?? Думал может еепром soft reset нужен, но с ресетом вывалился в обратную статистику. Занимаюсь этой бедой один день, может чего-то ещё не доглядел. Подскажите пожалуйста куда обратить внимание!
Спасибо!
З.Ы. ещё сам не дебагил, по этому про аск верю коллеге на слово - он в низкоуровневым программировании и в железе бум бум. Он писал аппликацию с использованием готовых функций типа: write_i2, read_i2c c return аcк no ack.
Сообщение отредактировал andron86 - Oct 26 2007, 20:58
|
|
|
|
|
 |
Ответов
|
Oct 26 2007, 21:45
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
Цитата(rezident @ Oct 26 2007, 23:17)  Во-первых, уменьшите pull-up-ы на шинах SCL и SDA до 1-2кОм. 10кОм для шины 400кГц может быть многовато. Посмотрите осциллографом нарастающие фронты и сравните их длительность с требованиями стандарта The I2C bus specification. Да, про это я сразу же и подумал, но тот кто это проектировал сразу же в ступор обратился с криком «ведь потом всё работает» Цитата(rezident @ Oct 26 2007, 23:17)  Во-вторых, что за soft reset? Да с даташеет от без из сходности Цитата MEMORY RESET: After an interruption in protocol, power loss or system reset, any twowire part can be reset by following these steps: (a) Clock up to 9 cycles, (b ) look for SDA high in each cycle while SCL is high and then (c ) create a start condition as SDA is high. Цитата(rezident @ Oct 26 2007, 23:17)  После включения устройства рекомендуется "поКлокать" шиной SCL, не содавая START или STOP условий. Не менее 10 тактов. wow!!! вот это идея !!! Спасибо rezident Цитата(rezident @ Oct 26 2007, 23:17)  В-третьих, откуда ваш коллега брал "аппликацию с использованием готовых функций"? Источник проверенный? Или с какого-нибудь опен-сорсного ресурса скачано?   Другой коллега писал что-то типа драйвера, но он не на месте, а мне в понедельник в командировку по этому вопросу - вот беда
|
|
|
|
|
Oct 26 2007, 21:49
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(andron86 @ Oct 27 2007, 03:45)  wow!!! вот это идея !!! Дык у вас в даташите под пунктом а) то же самое написано Цитата (a) Clock up to 9 cycles Только там " до 9" предлагается, а я рекомендую всегда именно 10 клоков делать.
|
|
|
|
|
Oct 26 2007, 21:54
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
Цитата(rezident @ Oct 26 2007, 23:49)  Дык у вас в даташите под пунктом а) то же самое написано Только там " до 9" предлагается, а я рекомендую всегда именно 10 клоков делать. А клокать нужно обезательно с рабочей частотой или без разницы.
|
|
|
|
|
Oct 26 2007, 22:17
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
Цитата(andron86 @ Oct 26 2007, 23:54)  А клокать нужно обезательно с рабочей частотой или без разницы. Я спрашиваю это потому, что там такая ситуация. Коллега программирует через Labview, на железо имеет доступ в виде write read :-( . То есть я ему объесняю "можешь пин low/high посадить" - тот - "да" - я ему типа - "зделай такую секуенц" - он делает (щас умру с со смеху  ) У меня другие проекты, поэтому не хотелось бы в глубь лезть!  Ну вы представляете себе какие там задержки!!!!
Сообщение отредактировал andron86 - Oct 26 2007, 22:23
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|