|
|
  |
AT24C32 на 100кГц не работает, хотя должна.. |
|
|
|
Jan 15 2010, 17:43
|
Группа: Участник
Сообщений: 11
Регистрация: 2-12-08
Пользователь №: 42 159

|
Здравствуйте уважаемые форумчане!))
Такая ситуация, на шине i2c висят ds1307 и at24c32, из-за ds1307 скорость пришлось убавить до 100кГц и после этого at24c32 отказывается работать, а именно не отвечает на запросы. В описании на нее написано, что вроде как 100 - 400 кГц должна, но в реальности только на 400кГц работает. Вопрос: это так на самом деле, либо я что-то не так делаю?))
|
|
|
|
|
Jan 16 2010, 11:09
|
Группа: Участник
Сообщений: 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
|
|
|
|
|
Jan 16 2010, 12:07
|

Профессионал
    
Группа: Свой
Сообщений: 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
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Jan 16 2010, 13:31
|
Группа: Участник
Сообщений: 11
Регистрация: 2-12-08
Пользователь №: 42 159

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

Профессионал
    
Группа: Свой
Сообщений: 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
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Jan 16 2010, 13:59
|
Группа: Участник
Сообщений: 11
Регистрация: 2-12-08
Пользователь №: 42 159

|
да, может стоит поиграться с подтягивающими резисторами?
Сообщение отредактировал AntonioB - Jan 16 2010, 14:01
|
|
|
|
|
Jan 16 2010, 15:48
|
Группа: Участник
Сообщений: 11
Регистрация: 2-12-08
Пользователь №: 42 159

|
все, заработало наконец-то)) причина до обидности банальна, у панельки под AT24 контакт у SDA промятый внутрь сильно был, поэтому то был сигнал, то не было, зависело от степени нажатия на микросхему. панелька б/у была, теперь всегда новые буду покупать))
спасибо всем за участие, ILYAUL в особенности!))
тему можно закрывать
Сообщение отредактировал AntonioB - Jan 16 2010, 15:48
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|