Например TDA7294

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





Текущее время: Вт апр 16, 2024 14:11:36

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


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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: EEPROM AT24C256C не читается несколько байт подряд, почему?
СообщениеДобавлено: Сб янв 19, 2019 01:03:20 
Прорезались зубы

Карма: -3
Рейтинг сообщений: -3
Зарегистрирован: Вт сен 09, 2008 18:17:27
Сообщений: 213
Рейтинг сообщения: 0
EEPROM AT24C256C не читается несколько байт подряд:
записываю в подряд 12 байт и пробую их прочесть, тоже в подряд,
читается только самый первый байт - остальные 11 байт нули!

Если задавать другие адреса чтения, и читать по одному байту, видно что записалось всё правильно,
проблема только с потоковым чтением!

Что может быть не так?

Прилагаю датаграмму с логического анализатора для KingstVIS 3.1.2


Вложения:
2019-01-19_01-57-15.zip [2.78 KiB]
Скачиваний: 167
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: EEPROM AT24C256C не читается несколько байт подряд, поче
СообщениеДобавлено: Сб янв 19, 2019 06:24:42 
Встал на лапы
Аватар пользователя

Карма: 9
Рейтинг сообщений: 17
Зарегистрирован: Вс ноя 01, 2015 00:09:59
Сообщений: 83
Рейтинг сообщения: 0
У вас скорее всего не правильно происходить считывания массива. Считывания одно байта и массива байт, это разные вещи. В даташите есть пример считывания данных по I2C.

_________________
Для связи email: risctronix собака gmail.com


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: EEPROM AT24C256C не читается несколько байт подряд, поче
СообщениеДобавлено: Сб янв 19, 2019 06:48:35 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
DENIS451 писал(а):
Прилагаю датаграмму с логического анализатора для KingstVIS 3.1.2
Лучше бы код показали, чем файл какого-то неизвестного половине пользователям формата.


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: EEPROM AT24C256C не читается несколько байт подряд, поче
СообщениеДобавлено: Сб янв 19, 2019 07:04:34 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
После чтения каждого байта STOP передаёте, небось?

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: EEPROM AT24C256C не читается несколько байт подряд, поче
СообщениеДобавлено: Сб янв 19, 2019 07:26:58 
Друг Кота
Аватар пользователя

Карма: 123
Рейтинг сообщений: 7955
Зарегистрирован: Сб сен 13, 2014 16:27:32
Сообщений: 39199
Откуда: СпиртоГонск созвездия Омега
Рейтинг сообщения: 0
уже не помню на вскидку но кажется 24с02 и 24с256 читают пишут иначе

_________________
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: EEPROM AT24C256C не читается несколько байт подряд, поче
СообщениеДобавлено: Сб янв 19, 2019 09:50:23 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
DENIS451, Выложите Printscreen экрана ЛА. Скорее всего, ошибка в Restart-е после записи адреса стартового адреса чтения.
P.S.
На всякий случай, напомню: У 24C256 страница записи 64 байта. Т.е., если вы, к примеру, захотите записать несколько байт подряд с адреса 63h - будет ошибка (данные, ожидаемые по записи по адресу 64h, окажутся по адресу 0h).
Т.ч, при записи, если вы переходите на следующую страницу, нужно дать Stop, подождать пока она запишет (можно проверять по ACK-у на её адрес), и продолжить запись с начала следующей страницы (Start, Device Adress и т.д.).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: EEPROM AT24C256C не читается несколько байт подряд, поче
СообщениеДобавлено: Сб янв 19, 2019 11:10:14 
Прорезались зубы

Карма: -3
Рейтинг сообщений: -3
Зарегистрирован: Вт сен 09, 2008 18:17:27
Сообщений: 213
Рейтинг сообщения: 0
Выложил скрины ЛА1.png и ЛА2.png

На всякий случай прога: https://yadi.sk/d/DV2zN0L6A3v0hA (она бесплатная, скачал с оф сайта производителя ЛА Kingst LA1010)

Код под STM32F105 нет смысла выкладывать - там софтовый I2C я могу нарисовать любую датаграмму, логический анализатор не самый плохой,
на двух каналах выборка 100мГц заметит любую иголку на которую способна среагировать EEPROM.

Писать и читать пытаюсь с нулевого адреса.

Покупал тут: https://www.chipdip.ru/product/at24c256c-sshl-t

Ещё вопрос, что означает параметр из датащита "Write Cycle Time" равный 5 миллисекунд?


Вложения:
ЛА2.png [51.95 KiB]
Скачиваний: 465
ЛА1.png [62.46 KiB]
Скачиваний: 454
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: EEPROM AT24C256C не читается несколько байт подряд, поче
СообщениеДобавлено: Сб янв 19, 2019 11:42:04 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
DENIS451 писал(а):
...что означает параметр из датащита "Write Cycle Time" равный 5 миллисекунд?
Это время записи страницы из буфера AT24C256C в физическую Flash (стартует после команды Stop). В течении этого времени (это максимальное время), AT24C256C не будет выдавать ACK на свой адрес.
Что касается основного вопроса - посмотрите в файле. Я отметил два "скользких момента" (первое, на что обратил внимание):
1. Обозначил как Err. Здесь "игра на фронтах" может быть воспринята как команда Stop.
2. Обозначил как t=?. Не понял реальное время, но как мне показалось, времена команды Start не соблюдены.
В общем, более тщательно проверьте/исправьте все времена и всё заработает.
/картинка кликабельна/
Изображение
Вложение:
ЛА1_1.gif [49.93 KiB]
Скачиваний: 431

P.S.
По 'Err': Рекомендуется выдерживать время не менее 300nS после спада по SCL.


Последний раз редактировалось Albert_V Сб янв 19, 2019 14:10:50, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: EEPROM AT24C256C не читается несколько байт подряд, поче
СообщениеДобавлено: Сб янв 19, 2019 12:09:09 
Прорезались зубы

Карма: -3
Рейтинг сообщений: -3
Зарегистрирован: Вт сен 09, 2008 18:17:27
Сообщений: 213
Рейтинг сообщения: 0
Спасибо, но я сейчас ухожу, проверить смогу только после 16:00.

Может нарисуете от руки в паинте, как по вашему мнению, должен правильно выглядеть этот участок датаграммы?

Сделал более подробный скрин с этим подозрительным участком: ЛА3.png


Вложения:
ЛА3.png [47.73 KiB]
Скачиваний: 453
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: EEPROM AT24C256C не читается несколько байт подряд, поче
СообщениеДобавлено: Сб янв 19, 2019 13:32:17 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
На этом "переходе", время "единички" у SCL должно быть не менее 2-ух времён "единички" при обмене данными.
Если делаете "нечто", у чего должна быть высокая повторяемость - лучше выжидайте время не менее 1/Fclk_max/2 (для 400kHz это 1.25µS). Не думаю что это время сильно "затормозит" работу вашего изделия...
Вот пример с моего ЛА (SLA5032):
/у меня частота по SCL чуть выше 260kHz/
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: EEPROM AT24C256C не читается несколько байт подряд, поче
СообщениеДобавлено: Сб янв 19, 2019 16:30:29 
Прорезались зубы

Карма: -3
Рейтинг сообщений: -3
Зарегистрирован: Вт сен 09, 2008 18:17:27
Сообщений: 213
Рейтинг сообщения: 0
Сделал тайминги побольше(см. ЛА4.png), ничего не изменилось.

Навсякий случай функция чтения блока (выполняется с задержкой не менее 5мс. после записи,
(закомментированные задержки не помогли)):
Спойлер
Код:
void m_I2C_ReadBlok(char* bf) //чтение тестового блока
{
////////////////////////////////////////////////////////////////////////////////////////
m_I2C_StartCondition ();
m_I2C_SendByte(0b10100000);   //адрес микросхемы + бит режима записи
m_I2C_SendByte(0b00000000);   //старший байт адреса EEPROM
m_I2C_SendByte(0b00000000);   //младший байт адреса EEPROM
_delay_us(2);   
m_I2C_StartCondition ();
m_I2C_SendByte(0b10100001);   //адрес микросхемы + бит режима чтения   
for(unsigned char i=0; i<11; i++)
  {
   //_delay_ms(5);   
   bf[i] = m_I2C_RecvByte(1);//чтение байта EEPROM с ACK от мастера   
   }
//_delay_ms(5);   
bf[11] = m_I2C_RecvByte(0);//чтение последнего байта EEPROM с NACK от мастера
m_I2C_StopCondition();   
///////////////////////////////////////////////////////////////////////////////////////   
}


Вложения:
ЛА4.png [49.93 KiB]
Скачиваний: 425
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: EEPROM AT24C256C не читается несколько байт подряд, поче
СообщениеДобавлено: Сб янв 19, 2019 16:59:02 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
У AT24C256C "керамика" по питанию поставлена?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: EEPROM AT24C256C не читается несколько байт подряд, поче
СообщениеДобавлено: Сб янв 19, 2019 17:39:15 
Прорезались зубы

Карма: -3
Рейтинг сообщений: -3
Зарегистрирован: Вт сен 09, 2008 18:17:27
Сообщений: 213
Рейтинг сообщения: 0
Да.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: EEPROM AT24C256C не читается несколько байт подряд, поче
СообщениеДобавлено: Сб янв 19, 2019 18:09:44 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Разделите проверку на две части.
Запишите AT24C256C на внешнем программаторе и прочтите данные или запишите своей программой и прочтите программатором.
На данный момент, вы не можете быть уверенным что данные реально записываются в EEPROM.
Дело в том что декодеры протокола ПО логических анализаторов не "ругнутся" если где-то есть "игра на фронтах" или некое время по I2C не соответствует стандарту.

Добавлено after 10 minutes 32 seconds:
Re: EEPROM AT24C256C не читается несколько байт подряд, почему?
P.S.
Извиняюсь, предположение из серии "дурдома": После чтения первого байта вы точно сами не "роняете" линию SDA в "ноль"?
Смущает то, что у стёртой/новой AT24C256C по всем адресам должны быть 0FFh...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: EEPROM AT24C256C не читается несколько байт подряд, поче
СообщениеДобавлено: Сб янв 19, 2019 18:25:43 
Прорезались зубы

Карма: -3
Рейтинг сообщений: -3
Зарегистрирован: Вт сен 09, 2008 18:17:27
Сообщений: 213
Рейтинг сообщения: 0
Цитата:
Извиняюсь, предположение из серии "дурдома": После чтения первого байта вы точно сами не "роняете" линию SDA в "ноль"?


Да, это так, спасибо!

Совсем забыл что надо отпустить линию после формирования ACK со стороны мастера, всё заработало!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

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


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

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


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

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


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