Страница 1 из 2

EEPROM 24LC04B

Добавлено: Ср дек 04, 2024 19:39:14
Trioni
Доброго дня. Начал изучать i2c и на отладке установлена EEPROM 24LC04B.
Столкнулся с тем что не получаю от неё бит ACK.
По скольку работаю в первый раз то не могу понять не исправна же сама микросхема/отладка или я выставил не верные адреса/тайминги


даташит: https://static.chipdip.ru/lib/938/DOC011938526.pdf
Картинка с анализатора:
Изображение

(отладка AX309, SPARTAN6, выходы вроде выставил корректно: SDA P12, SCL N12)

Re: EEPROM 24LC04B

Добавлено: Ср дек 04, 2024 22:43:09
BOB51
Или ошибка в программе...
:wink:

Re: EEPROM 24LC04B

Добавлено: Ср дек 04, 2024 22:52:35
Martian
Да, но это было бы лучше видно осциллографом, если имеется ввиду, что у мастера пин остался выходом с высоким уровнем.

Re: EEPROM 24LC04B

Добавлено: Чт дек 05, 2024 04:32:27
Trioni
[uquote="BOB51",url="/forum/viewtopic.php?p=4656473#p4656473"]Или ошибка в программе...
:wink:[/uquote]
А что может не так быть?
По симуляции выход уходит в 'z' , да и как я понял slave же может всё равно просто на землю уронить линию, даже если мастер оставит высокий уровень.

Осцилогоафа нету проверить.
Делал на ардуинке i2c сканер и получал примерно такую же картину, из за чего сейчас в ступоре, ведь по моей логике всё должно было работать...

Re: EEPROM 24LC04B

Добавлено: Чт дек 05, 2024 05:58:08
shonty
Trioni писал(а):А что может не так быть?
Всё что угодно. Мы даже не знаем, что у вас "так"))
Trioni писал(а):ведь по моей логике всё должно было работать..
логика тут ни при чём.
Вы лучше последовательность ваших действий опишите, начиная с первого и до того как ожидаете ACK.
Trioni писал(а):или я выставил не верные адреса/тайминги
И про это расскажите. Какую скорость задаёте?

Re: EEPROM 24LC04B

Добавлено: Чт дек 05, 2024 06:43:37
Martian
[uquote="Trioni",url="/forum/viewtopic.php?p=4656528#p4656528"]да и как я понял slave же может всё равно просто на землю уронить линию, даже если мастер оставит высокий уровень.[/uquote] Каким образом? Сопротивление верхнего ключа master против сопротивления нижнего ключа slave. Что будет посередине? Будет хрень, интерпретация которой логическим анализатором непредсказуема.
Trioni писал(а):По симуляции выход уходит в 'z'
так это симуляция или реальное устройство?

Re: EEPROM 24LC04B

Добавлено: Чт дек 05, 2024 07:32:51
Trioni
[uquote="Martian",url="/forum/viewtopic.php?p=4656548#p4656548"][uquote="Trioni",url="/forum/viewtopic.php?p=4656528#p4656528"]да и как я понял slave же может всё равно просто на землю уронить линию, даже если мастер оставит высокий уровень.[/uquote] Каким образом? Сопротивление верхнего ключа master против сопротивления нижнего ключа slave. Что будет посередине? Будет хрень, интерпретация которой логическим анализатором непредсказуема.
Trioni писал(а):По симуляции выход уходит в 'z'
так это симуляция или реальное устройство?[/uquote]

1) Думал будет просто 'кз' через подтягивающий резистор и транзистор slave => линия просто лежит в нуле

2) устройство.

(Код и симуляцию скину после работы уже только. Не думал что дойдёт)

Re: EEPROM 24LC04B

Добавлено: Чт дек 05, 2024 11:11:56
shonty
Trioni писал(а):(Код и симуляцию скину после работы уже только. Не думал что дойдёт)
Код вторичен. Это всего навсего реализация алгоритма.

А вы словами не можете выразить, что вы делаете и в какой последовательности.
Trioni писал(а):Делал на ардуинке i2c сканер и получал примерно такую же картину, из за чего сейчас в ступоре,
Возможно по этому результат и стабилен :dont_know:

Re: EEPROM 24LC04B

Добавлено: Пт дек 06, 2024 00:36:50
jcxz
[uquote="Trioni",url="/forum/viewtopic.php?p=4656377#p4656377"]Картинка с анализатора:
Изображение[/uquote]Какое-то странно длинное старт-условие.... :shock:
Хотя конечно криминала здесь нет.

Разрешение картинки такое, что понять по ней что-либо трудно. Например - не происходят ли фронты по SDA и SCL одновременно? Это может восприниматься ведомым как стоп-условие и тогда он конечно не станет выставлять ACK. Внутри ведомого фронт по SDA может чуть запоздать, и это будет выглядеть для него как СТОП.

Re: EEPROM 24LC04B

Добавлено: Пт дек 06, 2024 14:39:36
Trioni
[uquote="jcxz",url="/forum/viewtopic.php?p=4657002#p4657002"]Какое-то странно длинное старт-условие.... :shock:
Хотя конечно криминала здесь нет.[/uquote]

Игрался просто с разными таймингами, в том числе давая больше времени на старт.

[uquote="jcxz",url="/forum/viewtopic.php?p=4657002#p4657002"]Разрешение картинки такое, что понять по ней что-либо трудно. Например - не происходят ли фронты по SDA и SCL одновременно? Это может восприниматься ведомым как стоп-условие и тогда он конечно не станет выставлять ACK. Внутри ведомого фронт по SDA может чуть запоздать, и это будет выглядеть для него как СТОП.[/uquote]
Скрин симуляции, вроде наложений нет, один такт scl разбивал на 4 мини-тактка
Изображение

Re: EEPROM 24LC04B

Добавлено: Пт дек 06, 2024 16:39:10
Martian
Не понимаю. То устройство, то опять симуляция... Вы уж определитесь, где не работает.

Re: EEPROM 24LC04B

Добавлено: Пт дек 06, 2024 17:13:01
Trioni
Изначально же сказал: на устройстве не получаю бит ACK.

Симуляцию скинул просто вместо сотен строчек кода, ясное дело там никакого ответного сигнала не будет.

Re: EEPROM 24LC04B

Добавлено: Пт дек 06, 2024 17:23:01
veso74
Читаете или пишете в EEPROM? Какая частота SCL? Программной реализацией I2C или аппаратной? Являются ли выводы SDA и SCL открытым стоком? Есть подтягивающие резисторы? Куда они включены и какое значение? Фото экспериментальной установки? Хотя бы фрагмент реализации I2C?

Напр. данные ниже взяты из лог. анализатора. Детали комуникации видны, а также распознавание функций в I2C (к PCF8574). В вашем случае что есть что, только догадываемся и предполагаем.

Изображение,
Изображение

Re: EEPROM 24LC04B

Добавлено: Пт дек 06, 2024 18:18:55
Martian
[uquote="Trioni",url="/forum/viewtopic.php?p=4657245#p4657245"]Изначально же сказал: на устройстве не получаю бит ACK.
Симуляцию скинул просто вместо сотен строчек кода, ясное дело там никакого ответного сигнала не будет.[/uquote] Ясно. Ну, шлите дальше красивые картинки.

Re: EEPROM 24LC04B

Добавлено: Пт дек 06, 2024 22:22:12
jcxz
[uquote="Trioni",url="/forum/viewtopic.php?p=4657178#p4657178"]Скрин симуляции, вроде наложений нет, один такт scl разбивал на 4 мини-тактка
Изображение[/uquote]Не понял - а какое отношение имеет эта картинка к скриншоту осциллографа из первого поста? Там совершенно ясно видны совершенно другие временные соотношения.
К тому-же - даже по этой картинке - разве не видите странностей? Между рисками "1 мкс" и "19 мкс" попадает примерно ~8.5 периодов SCLK.
Т.е. = 8.5/18e-6 = ~472 кГц. При том что по даташиту 24LC04B умеет максимум 400 кГц.
Не многовато вы хотите от 24LC04B? На такую осц. она имеет полное право отвечать NACK.

Добавлено after 6 minutes 29 seconds:
[uquote="Trioni",url="/forum/viewtopic.php?p=4657245#p4657245"]Симуляцию скинул просто вместо сотен строчек кода, ясное дело там никакого ответного сигнала не будет.[/uquote]Да уж.... с логикой явно серьёзные проблемы.... :dont_know:

Вы когда придёте к врачу лечить какую-то болячку, например - перелом, тоже скажете: "Доктор, давайте не будем делать рентген перелома, я вам просто нарисую как я думаю выглядит кость, а вы по моему рисунку и лечите". :)))

Re: EEPROM 24LC04B

Добавлено: Сб дек 07, 2024 10:44:20
Trioni
Ну наверно можно завершать. Нормальных ответов я так и не получу всё равно.
А скидывать код на 300+ строк вызовет лишь очередной виток вопросов о вечном, а если скину краткие выдержки то вопросы что "код не весь".

Про тайминги отвечал ещё в первом посте. Где на картинке видно "T = 10uS", скрин симуляции был прилеплен что бы показать итоговое значение кода (например что sda уходит в Z-стейт) (далее уже самостоятельно не раз менял тайминги проверяя на 100 и 400кГц - отсюда и разности между картинкой и симуляцией)

Re: EEPROM 24LC04B

Добавлено: Сб дек 07, 2024 11:11:02
jcxz
[uquote="Trioni",url="/forum/viewtopic.php?p=4657520#p4657520"]Ну наверно можно завершать. Нормальных ответов я так и не получу всё равно.[/uquote]Чтобы получить "нормальный ответ", нужно сначала задать "нормальный вопрос".
Чего вы до сих пор так и не сделали. И даже как видно - не стремитесь это сделать. :dont_know:
Причём тут некий "код на 300+ строк", которым вы всё пугаете - вообще не понятно.

Re: EEPROM 24LC04B

Добавлено: Сб дек 07, 2024 14:58:11
shonty
Trioni писал(а):А скидывать код на 300+ строк вызовет лишь очередной виток вопросов о вечном, а если скину краткие выдержки то вопросы что "код не весь".
Ну если стартовое_условие+адрес+проверка_состояния это 300+ строк, тогда лучше не нужно скидывать))

Но код всегда вторичен) даже третичен, если не четверичен или пятеричен))

Re: EEPROM 24LC04B

Добавлено: Сб дек 07, 2024 21:38:03
Trioni
Всем спасибо. Разобрался сам - неисправна микросхема EEPROM похоже(или её адрес).
Смог достать дисплей на i2c и он вполне отзывается.

Re: EEPROM 24LC04B

Добавлено: Сб дек 07, 2024 21:43:01
Martian
Увы, но это не указывает на неисправность EEPROM