attiny2313 Usi

Обсуждаем цифровые устройства...
Закрыто
Аватара пользователя
РомаAVR
Родился
Сообщения: 6
Зарегистрирован: Пт июл 09, 2010 15:57:23

attiny2313 Usi

Сообщение РомаAVR »

У меня есть мик attiny2313 помогите потключить к max522(ЦАП) , просто в MAX522 интерфейс передачи данных Spi а в Attiny2313
usi если хто-нибуть работал с Usi напишите(Зарание спасибо)
Реклама
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: attiny2313 Usi

Сообщение DX168B »

Это почти одно и то же USI - Universal Serial Interface, SPI - Serial Programming Interface.
USI может работать в двухпроводном режиме(TWM, TWI) и в трехпроводном(SPI)
Всё есть в даташите на МК, даже примеры кода для SPI для ведущего и ведомого устройств.
Обработчик для ведущего SPI:

Код: Выделить всё

SPITransfer:
      out       USIDR,      r16
      ldi       r16,        (1<<USIOIF)
      out       USISR,      r16
      ldi       r17,        (1<<USIWM0)|(1<<USICS1)|(1<<USICLK)|(1<<USITC)
SPITransfer_loop:
      out       USICR,      r17
      in        r16,        USISR
      sbrs      r16,        USIOIF
      rjmp      SPITransfer_loop
      in        r16,        USIDR
      ret
И для ведомого:

Код: Выделить всё

init:                                    ;Инициализация. Ставим где-то в начале программы.
ldi r16,(1<<USIWM0)|(1<<USICS1)
out USICR,r16
...
SlaveSPITransfer:
      out       USIDR,       r16
      ldi       r16,         (1<<USIOIF)
      out       USISR,       r16
SlaveSPITransfer_loop:
      in        r16,         USISR
      sbrs      r16,         USIOIF
      rjmp      SlaveSPITransfer_loop
      in        r16,         USIDR
      ret
В даташите всё описано.
Дело в том, что регистр USIDR общий как для приема данных,
так и для передачи. При сеансе обмена, данные принимаются и отправляются одновременно.
Отправляемый байт выталкивается из регистра USIDR принимаемым байтом. В конце сеанса
в этом регистре (USIDR) находится принятый байт. Выводы DI - приём данных,
DO - передача данных, SCK - тактирование обмена данными, такты генерирует ведущее устройство. Стартовых и стоповых битов нет.
Есть и прерывания - как использовать, тоже есть в даташите.
I am DX168B and this is my favourite forum on internet!
Реклама
Аватара пользователя
РомаAVR
Родился
Сообщения: 6
Зарегистрирован: Пт июл 09, 2010 15:57:23

Re: attiny2313 Usi

Сообщение РомаAVR »

DX168B Спасибо понял!!!
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Re: attiny2313 Usi

Сообщение Aheir »

Тема открыта не в том разделе. Вопрос рассматиривался в "Микроконтроллерах". Используйте "Поиск" перед открытием тем. Замечание. Закрыто.
Оптимизм х (Опыт + Знания) = const
Реклама
Эиком - электронные компоненты и радиодетали
Закрыто

Вернуться в «Цифровая техника»