roboforum.ru

Технический форум по робототехнике.


TWI и Clock-Stretching

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

TWI и Clock-Stretching

Сообщение T-Xen » 07 фев 2012, 10:25

Добрый день всем! :)
Встала проблема растяжения синхронизирующего импульса на ATmega. В доках говорится, что когда slave не успевает обработать запрос, то он может выставить на линии SCL ноль, тем самым, попросив мастера подождать.
Подскажите, пожалуйста, как это на практике сделать в аппаратном TWI?
Требуется чтобы slave производил опрос каналов своего АЦП и эти данные выдавал мастеру при его запросе. Но прерывания от АЦП сбивают передачу данных. :roll:
T-Xen
 
Сообщения: 1
Зарегистрирован: 07 фев 2012, 10:13

Re: TWI и Clock-Stretching

Сообщение boez » 07 фев 2012, 11:28

Правильный ответ: реорганизуй прерывания так, чтобы не сбивали :) Наверняка у тебя там просто слишком много кода в прерываниях.
А вообще - в даташите написано, что clock stretch делается путем задержки сброса бита TWINT. Т.е. автоматически - пришло прерывание, клок упал вниз и будет там лежать до тех пор, пока ты не запишешь 1 в TWINT, сбросив его.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24