| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > шина i2c и AVR |
| Автор: UniBomb 14.2.2007, 09:44 |
| В общем никак не могу понять что и как работает. В книжке которая у меня есть очень плохо описана работа с модулем TWI. В часности там непонятно описаны функциональности режимов работы - какие то флаги надо постоянно менять, какие то коды надо постоянно смотреть, причём что когда конкретно делать непонятно. Если кто работал с айтуси, подскажите что и как и если есть исходники мастера и слейва (желательно на си) то выкладывайте |
| Автор: Metal_Heart 14.2.2007, 14:44 |
| глянь сюда: http://www.gaw.ru/html.cgi/txt/interface/iic/index.htm я реализовывал этот интерфейс, ничего сложного там нет, он очень прост и логичен |
| Автор: UniBomb 14.2.2007, 20:26 |
| 2 Metal_Heart При наличии толковой литературы - согласен)) Кода таковая отсутсвует, это сделать несколько сложнее. За сцылку спасибо, гдяну дома)) |
| Автор: Metal_Heart 15.2.2007, 11:22 |
| я реализовывал этот интерфейс именно по этой ссылке |
| Автор: UniBomb 24.2.2007, 14:28 |
| Спустя 9 дней я опять вернулся к работе. А айтуси вродь как разобрался, но остался один вопрос. Когда мастер получает данные от слейва, то слейв при передаче последнего байта должен получить NACK от мастера, после чего перейти в ккаое-либо состояние (адресованное, неадресованное и т.д.). Так вот, откуда мастер узнает, что байт последний и надо сгенерить NACK? |
| Автор: TROFI 27.2.2007, 08:40 |
| Мастерь слейву генерирует квитирование ACK(при приеме каждого байта от слейва), для этого надо установить бит TWEA (бит разрешения выдачи подтверждения). Последний принятый байт не квитируется, для этого надо не устанавливать (сбросить) бит TWEA. NACK - это не квитировать. |
| Автор: UniBomb 28.2.2007, 22:05 |
| TROFI, Да это понятно. Непонятно то, что откуда мастер узнает, что приннимаемый байт последний??? Или необходимо пересылать количество байт? |
| Автор: TROFI 9.3.2007, 14:44 |
| Для того чтобы-мастер понимал, что принимаемый байт последний, служит конкретный протокол (программная реализация), для конкретной микросхемы он свой. Он может иметь фиксированную длину принимаемых данных по конкретному запросу. Или например в первых байтах указывается длина передаваемых байтов. |
| Автор: UniBomb 12.3.2007, 00:20 |
| ясно)) тема айтуси раскрыта)) |