USI в Attiny24 - настройки на двужилен режим

USI - Универсалният сериен интерфейс всъщност е хардуер за серийно предаване и приемане на данни. Този интерфейс не е готово решение за конкретен протокол за трансфер на данни, но ви позволява да внедрите по-удобен метод за трансфер на данни, отколкото в случай на напълно софтуерно решение.

Същността на този интерфейс е, че той предлага хардуерно ниво за предаване и получаване на серийна информация, а логиката на протокола вече е присвоена на софтуерната реализация.

Описание на USI регистрите

Този интерфейс съдържа само четири регистъра, които отговарят за неговата работа:

  • USIDR - Регистър на данни
  • USIBR - Регистър за буфериране на данни
  • USISR - Регистър на състоянието на интерфейса
  • USICR - Контролирайте регистъра и настройките на интерфейса

USIDR - Регистър за данни на USI

Данните от този регистър са достъпни директно, докато копие от данните може да бъде намерено в регистъра USIBR . Този регистър се използва едновременно за получаване и предаване на информация.

USIBR - USI буфер за данни

Този регистър е само за четене, за разлика от USIDR. В този регистър се копират данни, които попадат в регистъра USIDR при получаване на информация отвън. Това ви позволява да минимизирате загубата на информация с повишено натоварване на системата за получаване и предаване на информация, както и да дадете време на процесора на микроконтролера да има време да изпълни предишните задачи, с които е зает.

USISR - Регистър на състоянието на USI

Регистърът на състоянието на интерфейса USI съдържа флагове за прекъсване, флагове за състоянието на линията за данни и брояч, който отчита броя на битовете, които трябва да бъдат предадени на линията за данни.

  • Бит 7 - USISIF: Флаг за прекъсване на състоянието на старта - Флаг за дефиниране на стартовото съобщение. Използва се в двупроводен режим. Изчистено чрез писане на един.
  • Бит 6 -USIOIF: Флаг за прекъсване на препълване на брояча - Флаг за прекъсване на препълване на брояч. Този флаг се повдига, когато всички битове се прехвърлят в линията за данни. Изчистено чрез писане на един.
  • Бит 5 - USIPF: Флаг за условие за спиране - Флаг за определяне на условието за спиране, който се използва и в двужилен режим. Интересното е, че този флаг не е флаг за прекъсване. Изчистено чрез писане на един.
  • Бит 4 -USIDC: Сблъсък на изходни данни - Този бит се използва при арбитриране на главното устройство в двупроводен режим.
  • Битове 3: 0 - USICNT3: 0: Counter Value - брояч битове. Броячът приема стойност от 0 до 15 за предаване на 8 бита. Броячът може да бъде увеличен чрез външно въздействие, от таймер или от превключвател на програма, а именно чрез задаване на малко USITC в регистъра USICR . Какво се използва в тази статия.