Например TDA7294

Форум РадиоКот • Просмотр темы - EEPROM 24C01A Трабл с чтением нескольких байт
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт мар 28, 2024 12:31:50

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: EEPROM 24C01A Трабл с чтением нескольких байт
СообщениеДобавлено: Пн апр 02, 2018 10:37:34 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
Доброго времени суток! Разбираюсь с EERPOMкой 24C01A. Запись происходит нормально как по одному байту, так и целой страницей (8 байт). А вот с чтением какая-то ерунда: считываю с конкретного адреса один байт - всё работает, как и должно. Начинаю читать несколько байт - считывается только первый байт по заданному адресу, остальные 0xFF или 0x00. Следом проверяю одиночным чтением со всех этих адресов - данные на месте и нет там никаких 0xFF и 0x00. Пробовал читать пакеты длиной кратно странице - эффект тот же: считывается только первый байт по заданному адресу, остальные 0xFF или 0x00. Где я свернул не туда?
Логи прикладываю:
Изображение


Вложения:
2018-04-02_13-32-09.png [77.08 KiB]
Скачиваний: 152
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: EEPROM 24C01A Трабл с чтением нескольких байт
СообщениеДобавлено: Пн апр 02, 2018 11:38:11 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 1368
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7212
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
После первого чтения надо ACK делать, а не NAK, imho. NAK только при приёме последнего байта, чтобы сказать, что больше не нужно.

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: EEPROM 24C01A Трабл с чтением нескольких байт
СообщениеДобавлено: Пн апр 02, 2018 12:03:53 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
Проглядел этот момент, исправил - не решило ситуацию.

Добавлено after 19 minutes 47 seconds:
uldemir, спасибо за правильное направление! Пересмотрел логи, выправил функцию Аска, заработало.
Было:
Код:
void I2C_Ack(){
   SDA_LOW;
   uDelay(2);
   SCL_HI;
   uDelay(4);
   SCL_LOW;
   uDelay(2);
}


Стало:
Код:
void I2C_Ack(){
   SDA_LOW;
   uDelay(2);
   SCL_HI;
   uDelay(4);
   SCL_LOW;
   uDelay(2);
   SDA_HI;
}


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y