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

 
 
 
Reply to this topicStart new topic
> AT24C32 на 100кГц не работает, хотя должна..
AntonioB
сообщение Jan 15 2010, 17:43
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 2-12-08
Пользователь №: 42 159



Здравствуйте уважаемые форумчане!))

Такая ситуация, на шине i2c висят ds1307 и at24c32, из-за ds1307 скорость пришлось убавить до 100кГц и после этого at24c32 отказывается работать, а именно не отвечает на запросы. В описании на нее написано, что вроде как 100 - 400 кГц должна, но в реальности только на 400кГц работает.
Вопрос: это так на самом деле, либо я что-то не так делаю?))
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 15 2010, 22:20
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(AntonioB @ Jan 15 2010, 19:43) *
Вопрос: это так на самом деле, либо я что-то не так делаю?))

Видать что-то не так делаете. И на 100 и на 10 и на 5kHz она работает.
Go to the top of the page
 
+Quote Post
AntonioB
сообщение Jan 16 2010, 11:09
Сообщение #3





Группа: Участник
Сообщений: 11
Регистрация: 2-12-08
Пользователь №: 42 159



совсем тогда ничего не понимаю, i2c аппаратный (TWI atmega8) подтягивающие резисторы 4,7кОм, с ds1307 все работает четко, а при посыле at24c32 SLA+W (сетевой адрес + флаг записи) в TWSR возвращается код 0x20, т.е. не был принят ответ ACK. Адрес верный 10100000b, контакт везде нормальный, пробовал на нескольких пзу(at24c256 и at24c04) у всех нет ответа после SLA+W, в другом устройстве они все работают четко, но на 400кГц, чудеса какие-то((

Сообщение отредактировал AntonioB - Jan 16 2010, 11:16
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 16 2010, 12:05
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(AntonioB @ Jan 16 2010, 14:09) *
...в другом устройстве они все работают четко, но на 400кГц, чудеса какие-то((

А в этом устройстве они работают на 400кГц? И осциллографом, конечно, стоит посмотреть на происходящее на линиях.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jan 16 2010, 12:07
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(AntonioB @ Jan 16 2010, 14:09) *
совсем тогда ничего не понимаю, i2c аппаратный (TWI atmega8) подтягивающие резисторы 4,7кОм, с ds1307 все работает четко, а при посыле at24c32 SLA+W (сетевой адрес + флаг записи) в TWSR возвращается код 0x20, т.е. не был принят ответ ACK. Адрес верный 10100000b, контакт везде нормальный, пробовал на нескольких пзу(at24c256 и at24c04) у всех нет ответа после SLA+W, в другом устройстве они все работают четко, но на 400кГц, чудеса какие-то((

Так . Вы работаете скажем первоначально с DS в конце работы с ней Вы формируете STOP и ждёте когда сброситься бит STO reg TWCR - сообщающий что шина свободна или формируете NACK если читали DS , затем формируете START , получаете правильный 08 формируете SLAddr и тут затык?

Сообщение отредактировал ILYAUL - Jan 16 2010, 12:08


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
AntonioB
сообщение Jan 16 2010, 13:31
Сообщение #6





Группа: Участник
Сообщений: 11
Регистрация: 2-12-08
Пользователь №: 42 159



да, именно так, работаю с DS (чтение/запись) затем формирую STOP, жду пока сбросится бит TWSTO рег TWCR, затем формирую СТАРТ, получаю 0x08, отправляю SLA+W для AT24c32 и после этого получаю в TWSR код 0x20 - SLA+W передан, но ACK не принят. вот как-то так. Кроме того убирал все, что связано с DS, т.е. при запуске сразу обращался к AT24, но результат тот же. Создается впечатление, что twi не ловит ack от пзу.

ЗЫ: к сожалению осциллографом поглядеть не могу из-за отстутствия такового)
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jan 16 2010, 13:57
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(AntonioB @ Jan 16 2010, 16:31) *
да, именно так, работаю с DS (чтение/запись) затем формирую STOP, жду пока сбросится бит TWSTO рег TWCR, затем формирую СТАРТ, получаю 0x08, отправляю SLA+W для AT24c32 и после этого получаю в TWSR код 0x20 - SLA+W передан, но ACK не принят. вот как-то так. Кроме того убирал все, что связано с DS, т.е. при запуске сразу обращался к AT24, но результат тот же. Создается впечатление, что twi не ловит ack от пзу.

ЗЫ: к сожалению осциллографом поглядеть не могу из-за отстутствия такового)

И A0,A1,A2 точно припаяны к земле и соединены с ней ? Да и откл. DS и посмотрите на START 08 от AT24 прийдёт.

Сообщение отредактировал ILYAUL - Jan 16 2010, 13:59


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
AntonioB
сообщение Jan 16 2010, 13:59
Сообщение #8





Группа: Участник
Сообщений: 11
Регистрация: 2-12-08
Пользователь №: 42 159



да, может стоит поиграться с подтягивающими резисторами?

Сообщение отредактировал AntonioB - Jan 16 2010, 14:01
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jan 16 2010, 14:05
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(AntonioB @ Jan 16 2010, 16:59) *
да, может стоит поиграться с подтягивающими резисторами?

Если на START при откл DS прийдёт 08 резисторы в норме.

Сообщение отредактировал ILYAUL - Jan 16 2010, 14:05


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
AntonioB
сообщение Jan 16 2010, 15:48
Сообщение #10





Группа: Участник
Сообщений: 11
Регистрация: 2-12-08
Пользователь №: 42 159



все, заработало наконец-то)) причина до обидности банальна, у панельки под AT24 контакт у SDA промятый внутрь сильно был, поэтому то был сигнал, то не было, зависело от степени нажатия на микросхему. панелька б/у была, теперь всегда новые буду покупать))

спасибо всем за участие, ILYAUL в особенности!))

тему можно закрывать

Сообщение отредактировал AntonioB - Jan 16 2010, 15:48
Go to the top of the page
 
+Quote Post

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

 


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


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