Микропроцессоры и микроконтроллеры

 
 
 
«A program that has not been tested does not work.»
Bjarne Stroustrup
Русский | Українська


Микропроцессоры и микроконтроллеры :: RISC-мікроконтролери сімейства AVR :: Порти вводу-виводу

Порти вводу-виводу

Кожен порт мікроконтролерів складається з певного числа висновків, через які мікроконтроллер може здійснювати прийом і передачу цифрових або аналогових сигналів.

rn

Вихідні буфер всіх портів, маючи симетричні навантажувальні характеристики, забезпечують високу навантажувальні здатність при будь-якому рівні сигналу. Навантажувальні здатності достатньо для безпосереднього управління світлодіодними індикаторами.

rn

Вхідні буфер всіх висновків побудовані за схемою тригери Шміт. Для всіх входів є можливість підключення внутрішнього підтягує резистора між входом і шиною живлення VCC.

rn

Звернення до портів здійснюється через регістри вводу-виводу. Під кожен порт в адресний простір вводу-виводу зарезервовано по три адреси, за якими розміщені наступні регістри: регістр даних порту PORTx, реєстр напрямки даних DDRx і регістр висновків порту PINx. Оскільки з допомогою регістрів PINx здійснюється доступ до фізичних значень сигналів на висновках порту, вони доступні тільки для читання, тоді як інші два регистра доступні як для читання, так і для запису.

rn

Порядковий номер виводу порту відповідає порядковому номеру розряду регістрів цього порту.

rn

Розряд DDxn регістру DDx визначає напрямок передачі даних через контакт вводу-виводу. Якщо цей розряд встановлений у «1», то n-й вивід порту є виходом, якщо ж скинутий в «0» - входом.

rn

Розряд PORTxn регістру PORTx виконує подвійну функцію. Якщо висновок функціонує як вихід, цей розряд визначає стан виведення порту. Якщо розряд встановлений у «1» на виведенні встановлюється напруга високого рівня. Якщо розряд скинутий в «0» на виведенні встановлюється напруга низького рівня.

rn

Якщо висновок функціонує як вхід, розряд PORTxn визначає стан внутрішнього підтягує резистора для даного виводу. При встановленні розряду PORTxn в «1» підтягує резистор підключається між виведенням мікроконтролера і шиною живлення.

rn

Управління підтягує резистором в моделях сімейства Mega здійснюється на двох рівнях. Загальне управління (для всіх висновків портів) здійснюється розрядом PUD (2-й розряд регістра спеціальних функцій SFIOR).

rn

Якщо розряд PUD скинутий в «0», стан підтягує резисторів буде визначатися станом розрядів PORTxn для кожного входу порту. Якщо ж розряд PUD встановлений у «1», підтягує резистори відключаються від всіх висновків мікроконтролера.

rn

Всі можливі сполучення станів керуючих розрядів і відповідно конфігурації висновків портів зведені в табл. 26.2.

rn

Таблиця 26.2.

rn

Конфігурації висновків портів

rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn
rn

DDxn

rn
rn

PORTxn

rn
rn

PUD *

rn

(в SFIOR)

rn
rn

Функція

rn

виводу

rn
rn

резистор

rn
rn

Примітки

rn
rn

0

rn
rn

0

rn
rn

Х

rn
rn

Вхід

rn
rn

Вимкнений

rn
rn

Третє стан (Hi-Z)

rn
rn

0

rn
rn

1

rn
rn

0

rn
rn

Вхід

rn
rn

Підключений

rn
rn

При підключенні навантаження між виведенням і загальним проводом, висновок є джерелом струму

rn
rn

0

rn
rn

1

rn
rn

1

rn
rn

Вхід

rn
rn

Вимкнений

rn
rn

Третє стан (Hi-Z)

rn
rn

1

rn
rn

0

rn
rn

Х

rn
rn

Вихід

rn
rn

Вимкнений

rn
rn

Висновок встановлений в «0»

rn
rn

1

rn
rn

1

rn
rn

Х

rn
rn

Вихід

rn
rn

Вимкнений

rn
rn

Висновок встановлений у «1»

rn
rn

Стан виводу мікроконтролера (незалежно від установок розряду DDxn) може бути отримано шляхом читання розряду PINxn регістру PINx.

rn

Слід зазначити, що переважна більшість контактів вводу-виводу всіх мікроконтролерів мають додаткові функції і можуть використовуватися різними периферійними пристроями мікроконтролерів. При цьому можливі дві ситуації. В одних випадках користувач повинен самостійно задавати конфігурацію виводу, а в інших - висновок конфігурує автоматично при включенні відповідного периферійного пристрою.