Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нужна помощь с I2C SAM7S256
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
jhoo
Не получается организовать random read из внешней еепром.
После отправки фрейма на запись адреса памяти еепром и получения ACK
не могу добиться отправки стартового условия+адрес микросхемы и далее
последовательного чтения. Стартовое условие+адрес микросхемы отправляется только после стопового условия, но это условие не должно быть по протоколу


Кто уже работал с i2c подскажите что еще нужно сделать.
zltigo
Цитата(jhoo @ Nov 24 2005, 10:25) *
Не получается организовать random read из внешней еепром.
После отправки фрейма на запись адреса памяти еепром и получения ACK
не могу добиться отправки стартового условия+адрес микросхемы и далее
последовательного чтения. Стартовое условие+адрес микросхемы отправляется только после стопового условия, но это условие не должно быть по протоколу


Не ясно описана проблема :-(
- Не получается считать _сразу_ после записи? Тогда нужно посылать "стартовое условие"
многократно, пока флешка не запишется дожидаясь ACK

- Не получается просто считать? Так чтение состоит из ДВУХ фаз
1. Завершенная "стоповым условием" сразу после передачи данных являющимися
адресом фаза записи.
2. Собственно фаза чтения. На фазе чтения адрес НЕ ПЕРЕДАЕТСЯ.

В принципе максимально подробно все это описано даташите на 24AA515. В остальных попадавшихся мне на глаза немколько скомканнее.

Если интересует исходники буквально сегодняшнего исследования I2C на LPC2xxx - могу выложить сюда. Работа по прерываниям, временных прокладок нет, обработка всех нештатных ситуаций,
последовательная и страничная запись/чтение.
jhoo
Собственно проблема заключалась в отправке "повторного старта" после фазы записи адреса данных в микросхеме.
Цитата
2. Собственно фаза чтения. На фазе чтения адрес НЕ ПЕРЕДАЕТСЯ.

Здесь я имел в виду адрес микросхемы, а не адрес данных.

В итоге понял что можно обойтись без повторного старта, а с помощью обычного. Т.е. с помощью двух независимых пакетов - "запись адреса данных" и "чтение данных".
zltigo
Цитата(jhoo @ Dec 6 2005, 09:19) *
Т.е. с помощью двух независимых пакетов - "запись адреса данных" и "чтение данных".

Именно так дело и обстоит.
Только правильнее назвать первый "запись данных с адресом". После чего идет "чтение данных"
по текущему адресу. Читать "обычно" можно блоками до границы 32K.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.