|
STR91x I2C - как послать NASK |
|
|
|
May 7 2007, 17:28
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 27-03-07
Пользователь №: 26 533

|
Подключаю к STR912 DS1631 (термодатчик). В соответсвии с даташитом, при получении байтов, после получения последнего байта надо передавать NASK вместо ASK. Как бы это провернуть? А то DS1631 не получив NASK подвисает  . И его приходится сбрасывать (вручную) для продолжения работы.
Сообщение отредактировал vromanov - May 7 2007, 17:29
|
|
|
|
|
 |
Ответов
|
May 7 2007, 21:41
|
Участник

Группа: Новичок
Сообщений: 70
Регистрация: 27-03-07
Пользователь №: 26 533

|
Что вы говорите..... Берем первый попавшийся пример с сайта филипса и читаем ;* acknowledge bit. If NACK is received, the NO_ACK bit is * ;* set. If arbitration is lost or an error occurs during * ;* I2C_TRX_BYTE the function is exit with the I2C_ERR bit * ;* set. * .... MOV I2DAT,#80H ;send NACK Т.е. и филипс использует сокрашение NACK и его (NAСK) можно "передать" или "принять". Что еще придумаем?
|
|
|
|
|
May 7 2007, 22:09
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(vromanov @ May 8 2007, 00:41)  Берем первый попавшийся пример с сайта филипса и читаем А зачем "первый попавшийся"? Есть вполне официальные документы, а не какие-то комментарии из двух слов к неким исходникам в АN писанные какими-то программистами. В спецификации I2C и в базирующихся на ней документах на контроллеры Philips понятия Negative ACK (NAK/NACK) отсутствует. В документации на STR912, естественно, отсутствуют тоже. Есть Acknowledge и Non-Acknowledge. Собственно Ваши проблемы и начались с того, что Вы захотели "Послать неподтверждение", вместо того, что бы "Не посылать подтверждение". Что совсем не одно и тоже и поскольку "Послать неподтверждение" принципиально не возможно на I2C, то этого действия Вы в документации на контроллер и не нашли. А я соответственно совсем не понял вопрос, о чем и написал в первом-же своем посте. Цитата Что еще придумаем?  Это Вы сами c собой разговариваете?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 8 2007, 07:05
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Он нашел, потому так и спросил. В STR91x это приблизительно так и выглядит. Надо явно установить бит посылки подтверждений и явно этот бит сбросить перед приемом последнего байта. Но только фокус в том, что сбросить его надо еще когда начинаем принимать предпоследний байт. Доку на STR91x пишут какие-то чурки из Туниса, так что удивляться не приходится. Цитата(zltigo @ May 8 2007, 01:39)  "Послать неподтверждение" принципиально не возможно на I2C, то этого действия Вы в документации на контроллер и не нашли.
|
|
|
|
Сообщений в этой теме
vromanov STR91x I2C - как послать NASK May 7 2007, 17:28 zltigo Цитата(vromanov @ May 7 2007, 20:28) Подк... May 7 2007, 18:00 vromanov Что сказал - понял. Просто именно такая терминолог... May 7 2007, 18:05 zltigo Цитата(vromanov @ May 7 2007, 21:05) Что ... May 7 2007, 18:09 vromanov Не понимаю, при чем тут байт 06?
STR912 автоматиче... May 7 2007, 18:18 IgorKossak Цитата(vromanov @ May 7 2007, 21:18) Не п... May 7 2007, 19:14  zltigo Цитата(IgorKossak @ May 7 2007, 22:14) Оч... May 7 2007, 20:52 vromanov Насколько я понял из ироничного ответа zltigo, бай... May 7 2007, 20:03 zltigo Цитата(vromanov @ May 7 2007, 23:03) Наск... May 7 2007, 20:19 vromanov ЭЭЭЭээээ
Вы там буковок в теме "I2C" не ... May 7 2007, 20:33 vromanov Ах вот вы к чему придрались! )
К сожалению, с... May 7 2007, 21:02 zltigo Цитата(vromanov @ May 8 2007, 00:02) NACK... May 7 2007, 21:15 vromanov Также я его нашел в примерах кода на этом сайте, н... May 8 2007, 08:00 zltigo Цитата(vromanov @ May 8 2007, 11:00) Такж... May 8 2007, 08:38 vromanov Я все-таки хотел получить совет о том как что-то с... May 8 2007, 08:57 zltigo Цитата(vromanov @ May 8 2007, 11:57) Те, ... May 8 2007, 09:43
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|