jhoo 0 24 ноября, 2005 Опубликовано 24 ноября, 2005 · Жалоба Не получается организовать random read из внешней еепром. После отправки фрейма на запись адреса памяти еепром и получения ACK не могу добиться отправки стартового условия+адрес микросхемы и далее последовательного чтения. Стартовое условие+адрес микросхемы отправляется только после стопового условия, но это условие не должно быть по протоколу Кто уже работал с i2c подскажите что еще нужно сделать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 0 5 декабря, 2005 Опубликовано 5 декабря, 2005 · Жалоба Не получается организовать random read из внешней еепром. После отправки фрейма на запись адреса памяти еепром и получения ACK не могу добиться отправки стартового условия+адрес микросхемы и далее последовательного чтения. Стартовое условие+адрес микросхемы отправляется только после стопового условия, но это условие не должно быть по протоколу Не ясно описана проблема :-( - Не получается считать _сразу_ после записи? Тогда нужно посылать "стартовое условие" многократно, пока флешка не запишется дожидаясь ACK - Не получается просто считать? Так чтение состоит из ДВУХ фаз 1. Завершенная "стоповым условием" сразу после передачи данных являющимися адресом фаза записи. 2. Собственно фаза чтения. На фазе чтения адрес НЕ ПЕРЕДАЕТСЯ. В принципе максимально подробно все это описано даташите на 24AA515. В остальных попадавшихся мне на глаза немколько скомканнее. Если интересует исходники буквально сегодняшнего исследования I2C на LPC2xxx - могу выложить сюда. Работа по прерываниям, временных прокладок нет, обработка всех нештатных ситуаций, последовательная и страничная запись/чтение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jhoo 0 6 декабря, 2005 Опубликовано 6 декабря, 2005 · Жалоба Собственно проблема заключалась в отправке "повторного старта" после фазы записи адреса данных в микросхеме. 2. Собственно фаза чтения. На фазе чтения адрес НЕ ПЕРЕДАЕТСЯ. Здесь я имел в виду адрес микросхемы, а не адрес данных. В итоге понял что можно обойтись без повторного старта, а с помощью обычного. Т.е. с помощью двух независимых пакетов - "запись адреса данных" и "чтение данных". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 0 6 декабря, 2005 Опубликовано 6 декабря, 2005 · Жалоба Т.е. с помощью двух независимых пакетов - "запись адреса данных" и "чтение данных". Именно так дело и обстоит. Только правильнее назвать первый "запись данных с адресом". После чего идет "чтение данных" по текущему адресу. Читать "обычно" можно блоками до границы 32K. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться