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

 
 
 
Reply to this topicStart new topic
> Нужна помощь с I2C SAM7S256, Чтение данных из еепром
jhoo
сообщение Nov 24 2005, 08:25
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 22
Регистрация: 19-04-05
Пользователь №: 4 288



Не получается организовать random read из внешней еепром.
После отправки фрейма на запись адреса памяти еепром и получения ACK
не могу добиться отправки стартового условия+адрес микросхемы и далее
последовательного чтения. Стартовое условие+адрес микросхемы отправляется только после стопового условия, но это условие не должно быть по протоколу


Кто уже работал с i2c подскажите что еще нужно сделать.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 5 2005, 21:00
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



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


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

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

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

Если интересует исходники буквально сегодняшнего исследования I2C на LPC2xxx - могу выложить сюда. Работа по прерываниям, временных прокладок нет, обработка всех нештатных ситуаций,
последовательная и страничная запись/чтение.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
jhoo
сообщение Dec 6 2005, 07:19
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 22
Регистрация: 19-04-05
Пользователь №: 4 288



Собственно проблема заключалась в отправке "повторного старта" после фазы записи адреса данных в микросхеме.
Цитата
2. Собственно фаза чтения. На фазе чтения адрес НЕ ПЕРЕДАЕТСЯ.

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

В итоге понял что можно обойтись без повторного старта, а с помощью обычного. Т.е. с помощью двух независимых пакетов - "запись адреса данных" и "чтение данных".
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 6 2005, 08:46
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



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

Именно так дело и обстоит.
Только правильнее назвать первый "запись данных с адресом". После чего идет "чтение данных"
по текущему адресу. Читать "обычно" можно блоками до границы 32K.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th June 2025 - 12:08
Рейтинг@Mail.ru


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