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 . Какво се използва в тази статия.