Порти, порти і ще раз порти. Без їх детального вивчення в микроконтроллерной техніці не обійтися. Порти в 8-бітних МК містять по 8 ліній (висновків, розрядів, бітів). Але це не догма. У різних сімействах МК порти можуть логічно об’єднуватися в групи по 4, 16 або 32 лінії.

Розрізняють дві системи нумерації портів – цифрову і буквену.

Цифрова нумерація бере початок від прабатька MCS-51 і містить наступні елементи: букву «Р» (англ. «Port»), потім цифру номера порту 0 … 3, розділову точку, цифру номера поточної лінії 0 … 7.

Приклад. «Р3.4» – п’ята лінія четвертого за рахунком порту. Цифра «3» оманлива, як травневий сніг. По ній можна судити про справжній кількості портів в МК. До Приміром, 20-вивідна мікросхема Atmel АТ89С4051 фізично має всього лише два порти, але для сумісності програмного забезпечення з MCS-51 один з портів називається Р1 (а не РО), а інший РЗ (а не Р1).

Різновиди цифровий нумерації:

• відсутня розділова крапка між цифрами (Р25, РЗЗ);

• додавання до літери «Р» однієї або декількох інших букв (ВР10, GPI024);

• цифра номера порту більше, ніж 3 (Р9.1, Р5.5);

• номер поточної лінії більше, ніж 7 (Р0.31, Р2.14).

Буквена нумерація з’явилася пізніше цифровий. В її основі лежить здорова ідея заміни цифри порту порядкової буквою латинського алфавіту. Нова система позначень містить наступні елементи: букву «Р», номер порту «A. .. Z», номер поточної лінії 0 … 7.

Приклад. «РА2» – третя за рахунком лінія порту «А». Чому «третя»? Тому що програмісти починають рахунок не з одиниці, як звичайні люди, а з нуля.

Різновиди буквеної нумерації:

• заміна літери «Р» іншою буквою (RA2);

• додавання до літери «Р» однієї або декількох інших букв (GPIOA2, РТВЗ);

• номер поточної лінії більше, ніж 7 (РА25, PF15).

Порт для зручності розуміння можна представити у вигляді морської гавані (Мал. 2.24). У неї заходять кораблі (вводяться електричні сигнали), і звідти вони відправляються в плавання (виходять електричні сигнали). Лінії порту – це окремі судноплавні канали або, по-морському, фарватери, обмежені бакенами (буями). Напрямок руху в каналі в будь-який момент часу може бути змінене на протилежне. Деякі канали мають особливий статус. Наприклад, дві лінії портів РС5, РС6 на Рис. 2.24 фізично відсутні або ж вони заховані всередині і доступні на читання тільки для ЦПУ, як в MCS-51.

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

Класифікація портів

За типом сигналів розрізняють:

• цифрові порти, що використовують на вході і на виході дискретні логічні рівні ВИСОКИЙ / НИЗЬКИЙ;

• аналогові порти, що використовують плавно весь діапазон вхідних / вихідних напруг О. .. Ксс. У рідкісних випадках, наприклад, у мікроконвертерах Analog Devices, допускаються двохполярні вхідні аналогові сигнали;

• змішані порти, які в процесі роботи можуть оперативно змінити режим і перейти з «цифри» на «аналог», і навпаки.

Змішаний варіант сам по собі унікальний, адже поєднання цифрових і аналогових функцій під дахом одного висновку – це воістину мікроконтролерних «ноу-хау». У мікропроцесорах серії i8080 такого ще не було.

Незважаючи на формальне перевагу змішаних портів, тим не менше, якщо корпус МК великий, то аналогові висновки намагаються фізично відокремити від цифрової частини і підвести до них «своє» харчування і «землю». Даний прийом зустрічається в 32-бітних МК, що дозволяє зменшити перехресні перешкоди.

По напрямку надіс сигналу розрізняють:

• вхідні порти, призначені лише для введення інформації;

• вихідні порти, призначені тільки для виводу інформації;

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

• порти з перемикається альтернативної функцією, наприклад, цифровий порт, суміщений з АЦП, з входом таймера, з UART, ШІМ і т.д.

Монофункціональні порти першого і другого типів зараз зустрічаються вкрай рідко. Надто вже марнотратно таке «панство» для малорозмірних МК. Чисті двонаправлені порти третього типу теж втрачають свої позиції. В даний час найпоширенішими є порти четвертого типу. Більше того, спостерігається чітка тенденція до збільшення числа альтернативних функцій, «навішених» на одну лінію.

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

Приклад напису: GP4/T1G/OSC2/CLKOUT. Саме так в даташіте на мікросхему Microchip PIC12F629 вказуються три додаткові функції для однієї цифрової лінії порту GP4.

Модною тенденцією останнього часу стало динамічне розподіл альтернативних функцій портів. Мається на увазі, що кожного висновку мікросхеми може бути оперативно призначена своя функція. Наприклад, нульовий канал АЦП на вибір можна підключити або до лінії РАВ, або до лінії РА5 і т.д. У даташітах наводяться перевідні таблиці режимів, які перемикаються регістрами з області SFR. Так зроблено, наприклад, в М До сімейства Atmel ATXmega.

Життя показує, що в реальних програмах лінії портів найчастіше виконують якусь одну задачу, наприклад, цифровий логічний вихід, генератор сигналів ШИМ, вхід АЦП, вихід ЦАП. Режими роботи задаються на початку програми при ініціалізації регістрів і надалі не змінюються.

Швидке перемикання властивостей висновків МК зустрічається рідко, адже для цього потрібні певні програмні навички та нетрадиційні схемні рішення. Отже, на перший план виходить вміння розбиратися в тонкощах підключення одиночних ліній вхідних і вихідних портів першого та другого типів. З’ясувавши їх роботу, надалі буде неважко перейти до аналізу змішаних портів третього і четвертого типів.

Отже, розгляду підлягають: цифрові входи, аналогові входи, цифрові виходи, аналогові виходи, двонаправлені входи / виходи.

Цифрові входи

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

серіям мікросхем 74НС, 74АС, К561. «Приблизно», тому, що є різниця в електричних характеристиках продукції різних фірм, що виготовляють МК.

На відміну від мікросхем звичайної логіки, на вході МК знаходиться підтягаючий резистор RUP і програмно керований ключ 5 | N (Рис. 2.25). Якщо ключ розімкнений, то вхідний опір М К дуже велике. У деяких родинах резистор присутній постійно або ж він «притягується» до загального проводу через окремий ключ (Мал. 2.26, а … г).

Логічний елемент DDI, що на Рис. 2.25, виконується за технологією КМОП і має характеристику тригера Шмітта (КМОП-Ш, Рис. 2.27). Це підвищує завадостійкість. Тій же меті служить лінія затримки А1, яка відсікає короткі імпульсні перешкоди.

Резистори RuР, /? DOwn> як і в П ° Д ~ системі скидання, виготовляються на основі інтегральних польових транзисторів, тому продзвонити їх омметром не можна. Великий технологічний розкид визначає широкі допуски, аж до ± 50% від номіналу, наприклад, 30 … 100 кОм.

Рідко, але зустрічаються МК з індивідуальною настройкою опору вхідних резисторів. Наприклад, для Texas Instruments MSP430xl 1х (вер

сія з MaskROM) забезпечується вибір 10 градацій опорів в діапазоні 2.1 … 506 кОм шляхом пережигания плавких перемичок в заводських умовах.

Резистори мають англомовні назви: «pull-up» («тягнути вгору»), «pulldown» («тягнути вниз»). Якщо для комутації резисторів застосовується ключ («switch»), то використовуються схожі терміни «switched pull-up», «switched pulldown». Чому вгору і вниз? Тому що на електричних схемах прийнято малювати загальний провід внизу, а виведення живлення вгорі.

Діоди VD1, VD2защітние, антистатичні. Вони присутні в МК так само, як і в звичайних мікросхемах КМОП-логіки. При вхідній напрузі вище рівня Vcc відкривається діод VD1. При зменшенні вхідної напруги нижче рівня GND відкривається діод VD2.

Наскільки великими в абсолютних числах можуть бути скачки напруги? Для більшості М К по даташітам допускається не більше +0.3 / -0.3 В, як наприклад, в Microchip PIC12/16/18/24. Зустрічається підвищена стійкість входів до перенапряжениям +0.5 / -0.5 В (Atmel AYR, Analog Devices Blackfin). Бувають

несиметричні рівні +0.5 / -0.3 В (Maxim / Dallas DS89C430) або +0.5 / -1.0 В (Atmel AT90S).

У даташітах можна знайти параметр «Input / Output clamp current» або «DC injection current». Для МК фірми Microchip його значення становить +20 / -20 мА, що добре узгоджується з рекомендаціями міжнародної асоціації JEDEC для мікросхем КМОП-логіки (Мал. 2.28). Що ж означає цей параметр? Име

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

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

але допускає тривале протікання струму через захисні діоди +2 / -2 мА, а в MC9S08 фірми Freescale Semiconductor зазначений сумарний струм через всі захисні діоди не більше 5 мА. Рекордні струми гарантуються в сімействі STR71 фірми STMicroelectronics: +5 / -5 мА довгостроково для одного діода, але не більше 25 мА сумарно по всіх диодам.

Схемні різновиди цифрових входів показані на Рис. 2.29, а … в. Скорочення ТТЛ-КМОП означає логічний елемент, виконаний за технологією КМОП, але має вхідні рівні, сумісні з ТТЛ (+0.4 / +2.4 В). Примі-

ром може служити серія мікросхем 74НСТ (ТТЛ-КМОП), яка відрізняється за вхідним характеристикам від аналогічної серії 74НС (КМОП, КМОП-LU).

Елементи ТТЛ-КМОП, показані на Рис. 2.29, а, зустрічаються в сімействі Microchip PIC 16, причому упереміж з КМОП. З одного строни це добре, тому що можна напряму підключати до входів МК мікросхеми ТТЛ-логіки, але з іншого боку доставляє клопоти, оскільки треба запам’ятовувати, який висновок мікросхеми якою характеристикою володіє – ТТЛ або КМОП. Надалі фірма Microchip відмовилася від спеціалізації і в своїх нових родинах PIC18/24 зробила їх однаковими КМОП-Ш. На фірмі STMicroelectronics пішли по іншому шляху і ввели в сімейство STR71 програмно перемикаються входи. Хочеш, на вибір, КМОП-Ш або ТТЛ-КМОП.

Схема, показана на Рис. 2.29, б, відноситься до класу багатофункціональних цифрових портів. Таке зустрічається, наприклад, в Microchip PIC16F684 і виділяється дробом у позначенні виводу – RA5/T1CKI. Вхідний сигнал розділяється на два потоки: цифровий вхід з логічним елементом DDI (ТТЛ-КМОП) і вхід таймера переривання з логічним елементом DD2 (КМОП-Ш). Обидва елементи мають різні пороги спрацьовування по напрузі, тому може виникнути курйозний випадок, коли МК в режимі звичайного цифрового входу працює нормально, а при обслуговуванні запитів переривання INT дає збої.

Схема, показана на Рис. 2.29, в, теж є багатофункціональною, але в правій і лівій частинах стоять однакові логічні елементи. Альтернативними каналами можуть бути UART і SPI, синхронні і асинхронні входи обробки переривань. Паралельне включення двох елементів DDI, DD2 не впливає на сумарну вхідний опір МК, дуже вже воно велике у польових транзисторів. Цифрові канали також можуть розділятися не біля входу, а після спільного буферного елемента, тобто вхід елемента DD2 з’єднується з виходом DDL

Важливий практичний нюанс, загальний для всіх вхідних цифрових схем. Якщо лінії портів налаштовані як входи без внутрішніх «pull-up» резисторів і до них нічого ззовні не підключається, то споживаний МК струм збільшується мало не на чверть. Парадоксу тут немає, просто «ширяють у повітрі» високоомні КМОП-входи знаходяться в нестійкому стані (чи то «нуль», чи то «одиниця») і будь-яка зовнішня наводка призводить до «коливання». Це змушує хаотично працювати логічні елементи всередині МК, що призводить до збільшення динамічних втрат і підвищенню енергоспоживання. Рекомендація – всі невживані в схемі входи треба зовні або зсередини навантажувати на резистори опором 10 … 100 кОм або ж переводити лінії в режим цифрових виходів.

Підведення підсумків. Базовою для ідеалізованого МК пропонується вибрати схему, наведену на Рис. 2.25. Входи з альтернативними цифровими функціями будуть заміщатися схемою, зображеною на Рис. 2.29, в, яка містить однотипні елементи КМОН-Ш.

Аналогові входи

Аналоговий режим відрізняється від цифрового, в першу чергу, рівнями подаються на вхід сигналів. Для цифрового режиму – це стандартні двійкові перепади напруги НИЗЬКИЙ / ВИСОКИЙ. Для аналогового режиму допускаються сигнали будь-якої форми в діапазоні 0 … Ксс.

Ізольовані аналогові входи в М К зустрічаються рідко. З метою економії місця їх поєднують з цифровими лініями і використовують як альтернативну функцію порту. В умовному зображенні МК такі висновки легко ідентифікуються по абревіатурі, що починається з першої букви латинського алфавіту: «AN», «ADC4», «AIN» і т.д. Приклад – лінія RA0/AN0 в мікросхемі Microchip PIC16F628A або PC1/ADC1/PCINT9 в мікросхемі Atmel ATmegal68.

Аналогові входи МК ототожнюються з аналоговим компаратором і АЦП.

Принцип роботи аналогового компаратора (Мал. 2.30) полягає в порівнянні між собою сигналів на позитивному («+», AIN0) і негативному («-», AIN1) входах. Якщо на «позитивному» вході напруга стане хоча б на кілька мілівольт більше, ніж на «негативному», то вихідний сигнал компаратора DA1 стане ВИСОКИМ, і навпаки. Результат порівняння поміщається в один з регістрів з області SFR. У деяких МК сигнал AIN фізично виводиться назовні, що показано на схемі пунктиром. Програмно керований перемикач S1 служить для подачі на вхід компаратора сигналу від внутрішнього джерела опорної напруги (ДОН) або від зовнішнього виводу AIN0. У деяких родинах М К перемикач S1 багатопозиційний і забезпечує не два, а кілька додаткових варіантів комутації.

Діоди VD1 … VD4 і логічні елементи DDI, DD2 відносяться до цифрового порту (нікуди від них не дінешся!), Але вони мають дуже високий опір і на точність роботи компаратора не впливають. Важливо тільки простежити, щоб цифрові «pull-up» резистори були програмно відключені, інакше постраждають свідчення абсолютних рівнів сигналів.

Головне достоїнство аналогового компаратора полягає в високій швидкодії, інакше його вже давно б замінили вузлом АЦП. Тільки час покаже, чи втримається аналоговий компаратор перед технологічними досягненнями і чи залишиться він в майбутніх моделях МК.

Принцип роботи багатоканального АЦП в МК полягає у вимірюванні абсолютного рівня вхідного сигналу методом послідовних наближень (частіше) або дельта-сигма-перетворенням (рідше). Основним параметром АЦП

вважається розрядність. Зазвичай вона становить 8 … 12 бітів при максимальній частоті вибірок 0.1 … 2 МГц. Для довідки, 8-бітний АЦП забезпечує точність вимірювання вхідних напруг близько 0.4%, а 10-бітний АЦП – близько 0.1%, чого цілком достатньо для аматорських конструкцій.

На Рис. 2.31 як приклад показана структурна схема модуля АЦП, застосовуваного в МК Atmel ATmegal6-l6PU [2-8]. З незначними змінами її можна поширити і на всі інші AYR-контролери.

Перетворення «аналог-цифра» здійснюється у 10-бітному АЦП послідовного наближення. Для його нормальної роботи потрібні три сигнали: вхідними V] N, тактовий Fmn, зразковий ^REF.

Сигнал Уш надходить від мультиплексора, комутуючого вісім аналогових каналів з ліній Ра0 … РА7 і два тестових напруги 0 і +1.22 В. Вибір джерел сигналу здійснюється програмним способом через регістр ADMUX. Цей та інші задіяні регістри входять в область SFR.

Сигнал Faцп виходить з тактового сигналу FCLK шляхом ділення на коефіцієнт 2 … 128, програмно задається регістром ADCSRA. Усередині блоку АЦП частота FAцп ділиться ще раз на 13 або 14 залежно від одноразового або безперервного режиму вимірювань. Це і буде істинним значенням частоти дискретизації сигналу F ^. Для довідки, друге розподіл проводиться тому, що використовується АЦП послідовного наближення, а йому для обчислення результату необхідні 13 або 14 машинних тактів.

Приклад. Нехай Fclk = 8 МГц, коефіцієнт ділення встановлений 16, отже, Faцп = 500 кГц, F ^ = 38.5 кГц (13 тактів) або F ^ = 35.7 кГц (14 тактів).

Сигнал ^ REF може надходити з трьох напрямків: від вхідних лінії AREF, від внутрішнього ІОН +2.56 В, від джерела живлення AYCC. Перемикання напрямків здійснюється електронним ключем, який управляється регістром ADMUX. Висновок AREF має безпосередній електричний зв’язок з модулем АЦП, тому, для зменшення наведень, його зазвичай шунтируют керамічним

конденсатором ємністю 0.1 мкФ. Температурна стабільність ІОН в Atmel ATmegal6 залишає бажати кращого, тому для підвищення інструментальної точності рекомендується використовувати зовнішню мікросхему ІОН з нормованими параметрами і вихідною напругою не більше Усс.

Результат кожного вимірювання поміщається в регістри ADCH (старші 2 біта) і ADCL (молодші 8 бітів). Разом у двох регістрах утворюється число в діапазоні 0 … 1023. Ціна одного розподілу – ^ REF/1024. Це справедливо для «чистого» режиму 10 біт. У ATmegal6 мається ще один режим, умовно званий 8/10 біт. У ньому вимір проводиться з точністю 10 бітів, але индицируются всього лише 8 старших бітів, тобто діапазон становить 0 … 255, ціна одного розподілу VREF/256.

При роботі АЦП треба на початку програми відключати вхідні «pull-up» резистори, оскільки лінії ADC0 … ADC7 за сумісництвом служать ще і цифровими входами Ра0 … РА7. На структурній схемою Рис. 2.31 для простоти не показані захисні діоди на лініях ADC0 … ADC7, хоча реально вони існують. Діоди обмежують зверху і знизу вимірювана напруга Уш. Все, що виходить за межі 0 … КСС, не обробляється і прирівнюється знизу до AGND, а зверху до Vcc.

Цифрові виходи

Основна функція цифрових виходів в МК полягає у формуванні низьких і високих логічних рівнів. Вихідний ланцюг у цифровому режимі можна представити КМОП-елементом, який має «закритий» або «відкритий» вихід зі стандартною або підвищеною навантажувальною здатністю. Прототипи подібних елементів широко представлені в серіях мікросхем 74НС, 74AC, КР1561, ICP1554.

Розрізняють чотири основні варіанти організації виходів в МК:

• двотактний каскад з вихідними рівнями, близькими до Vcc і GND (Мал. 2.32, а, б). Скорочена назва «push-pull». Зустрічається практично у всіх мікроконтролерних сімействах;

• логічний елемент із «істинно» відкритим стоком або на сленгу з «відкритим колектором» (Мал. 2.33, а, б). Скорочена назва «open drain» або «true open drain». Зустрічається в сімействах Microchip PIC12/16, STMicroelectronics STR71xF, в МК з ядром MCS-51;

• логічний елемент із квазіоткритим стоком (Рис. 2.34, а, б). Скорочена назва «false open drain» через присутність обмежувального діода VD1. Зустрічається в МК з двонаправленими портами;

• логічний елемент з відкритим стоком, доповнений внутрішнім навантажувальним резистором /? Ир (Мал. 2.35 а, б). Скорочена назва «квазідвунаправленние», зустрічається в МК з ядром MCS-51.

Для полегшення розуміння фізики процесів, у функціональні схеми вводяться еквівалентні перемикачі 5оіт. Вони заміщають реальні електронні ключі, виконані на польових транзисторах. У верхньому положенні перемикача 5оітформіруется ВИСОКИЙ, а в нижньому – НИЗЬКИЙ логічний рівень. У тих схемах, де перемикач 50іт є двополюсників, його розімкнутий стан еквівалентно «Виходу в обриві» (Мал. 2.33, а, Рис. 2.34, а) або виходу з високоомним «pull-up» резистором /? Ир (Мал. 2.35, а).

Таблиця 2.6. Класифікація вихідних КМОП-каскадів в МК

Тйп виходу

Позначення

1н [мА]

Підключене навантаження

Слабкий

   «Week»

   1…8

Малопотужні транзисторні ключі, світлодіоди без обмежувальних резисторів, КМОП-логіка

Стандартний

   «Standard»

   20…25

Будь транзисторні ключі, світлодіоди з обмежувальними резисторами, логічні елементи

Потужний

   «Power»

   100…200

Реле, невеликі двигуни, лампи, нагрівачі

Управляються перемикачі 5оіт записом «нуля» або «одиниці» в один з бітів регістра з області SFR. Наприклад, в лінійках мікросхем Atmel AVR і Microchip PIC регістри називаються PORTx, де «х» – порядкова буква латинського алфавіту номера порту МК.

Діоди VD1, VD2 – це антистатичні діоди, аналогічні тим, які розглядалися раніше в схемах організації цифрових входів на Рис. 2.25, Рис. 2.26, а … р. Вони є частиною конструкції мікросхеми і нікуди не зникають при зміні напрямку з входу на вихід. Це своєрідна «плата» за двунаправленность цифрових портів.

Резистор RUP для «квазідвунаправленние» виходу має в статичному стані таке ж велике опір, як і його «тезко», застосовуваний на Рис. 2.26, а. Основне відмінність полягає в тому, що на етапі переходу з НИЗЬКОГО рівня в ВИСОКИЙ опір даного резистора на короткий час стає дуже малим, формуючи тим самим крутий наростаючий фронт сигналу. Ця особливість є фірмовою міткою всіх МК, сумісних з ядром MCS-51 [2-9].

Низькоомні резистори й R0L являють собою опору відкритих каналів відповідно /?-МОП і я-МОП транзисторів вихідного каскаду. У числовому виразі це одиниці-десятки ом в Залежно від технології виготовлення та навантажувальної здатності потоку (Табл. 2.6).

Таблиця 2.6. Класифікація вихідних КМОП-каскадів в МК

У двотактних схемах («push-pull») струмова навантаження при низьких і високих рівнях може бути різною. «Заковика» полягає в потужності розсіювання транзисторів, що входять в комплементарну пару вихідного каскаду. Наприклад, у сімействі Atmel AT90S верхній за схемою транзистор «слабкий», струм навантаження / | Н = 1.5 … 3 мА, а нижній – «стандартний», струм навантаження / 0L = 10 … 20 мА.

Буває, що у всіх портах обидва вихідних транзистора «слабкі» (Philips LPC2104) або обидва «стандартні» (Atmel AVR, Microchip PIC). А ось всіх ліній з «потужними» каскадами в одній мікросхемі не буває. Вони застосовуються, як правило, в 16 – і 32-бітових МК, але в одиничній кількості, і служать корисним доповненням до вже наявних виходів.

Найбільш толерантним до типів вихідних каскадів виявилося сімейство Atmel AT91S, в якому мирно уживаються всі три градації, перераховані в Табл. 2.6.

Найбільш затребувані і ходові – це симетричні вихідні каскади «Standard» з приблизно однаковою навантажувальною здатністю при низького і високого рівня. Для розробника така ситуація дуже зручна, оскільки не треба болісно довго згадувати, на яку шину (до харчування або до «масі») допускається приєднувати навантаження. Саме цей варіант і пропонується вибрати в якості основного для цифрових виходів ідеалізованого МК.

На Рис. 2.36, а, б показані усереднені вольт-амперні характеристики (ВАХ) вихідного транзисторного каскаду «Standard».

Щоб порівнювати між собою графіки, наведені в даташітах для конкретних типів МК, слід чітко орієнтуватися в термінології:

• /, н = 20 … 25 мА, / 0L = 20 … 25 мА – це максимальні струми навантаження через резистори R] H, Rql, при яких ще гарантуються вихідні логічні КМОП-рівні від 0 до (0.1 … 0.2) Усс і від (0.6 … 0.8) Усс до Усс;

• ‘max = 35 … 45 мА – це граничний струм навантаження на одну лінію порту, тривале перевищення якого може привести (хоча і не обов’язково) до відмови МК;

• / кз = 100 … 150 мА – це струм короткого замикання лінії порту на загальний провід або на шину живлення. Якщо не зняти замикання протягом перших 10 … 15 с, то температурний перегрів транзисторів вихідного каскаду з великою часткою імовірності призведе до фатальних наслідків.

Аналогові виходи

Вважається, що «істинно» аналогові виходи є лише в каналі ЦАП (англ. DAC – Digital-to-Analog Converter), оскільки широтно-імпульсний модулятор, за допомогою якого теж отримують аналогові сигнали, теоретично відноситься до класу цифрових

пристроїв.

Лінії ЦАП при найменшій можливості намагаються фізично видаляти від цифрових портів для зменшення перехресних перешкод. Їх виконують у вигляді автономних вузлів з відокремленою групою висновків. І тільки при браку ліній портів виробляють поєднання функцій, як, наприклад, в Atmel ATXmega.

На Рис. 2.37 показана структурна схема 12-бітного ЦАП, применяе

мого в мікроконвертор сімейства ADuC812 фірми Analog Devices. Вихідний сигнал DAC0 має характерні сходинки напруг і формується за класичною схемою на комутованої матриці резисторів «R-2R». Резистори тут справжні, продзвонюють, причому досить високої точності.

Цифровий код, відповідний вихідному напрузі, записується в регістри з області SFR. Для адресації 12 біт потрібні два 8-розрядних регістра. Блок перемикачів містить електронні ключі, які електрично з’єднують висновки резисторів «2R» із загальним проводом або з ІОН. У якості останнього може на вибір використовуватися або внутрішнє джерело, або зовнішній еталон.

Підсилювач DA1 служить буфером, що знижує вихідний опір і зменшує вплив навантаження на точність рівнів ЦАП. Іноді ставлять підсилювач з програмованим коефіцієнтом передачі, що дозволяє оперативно масштабувати вихідна напруга. Задача згладжування форми вихідного сигналу вирішується зовнішніми /? С-фільтрами або активними ФНЧ. Чим вище розрядність ЦАП (зазвичай 8 … 14 біт), тим простіше пристрій вихідного фільтра.

Для виготовлення мікроконтролерного ЦАП потрібно гібридна технологія, що дозволяє об’єднати на одній кремнієвій пластині цифрові і аналогові вузли, зокрема, логічні елементи і прецизійні резистори. Якщо наявність ЦАП надмірно підвищує вартість мікросхеми, то в якості альтернативи можна використовувати звичайний МК з каналом ШІМ і зовнішнім фільтром. Цей метод добре відпрацьований як на апаратному, так і на програмному рівні.

Слабкою подобою вузла ЦАП також можна вважати внутрішній програмно керований ІОН, наявний, наприклад, в Microchip PIC16F628A. Якщо налаштувати лінію VREF в режим виходу та програмно змінювати опорна напруга згідно його градаціях, то результуючий сигнал буде мати чіткі сходинки, як в ЦАП. Недолік такого рішення полягає в малій кількості самих сходинок і низької точності абсолютних значень напруги.

В ідеалізованому М К окремий модуль ЦАП поки «не смотрится», оскільки на нинішньому етапі розвитку він, швидше, заморська дивина, ніж реальна річ.

Двонаправлені порти вводу / виводу

МК, як і будь-яке інше поважає себе електронний пристрій, не може відразу працювати і на введення, і на висновок. Тільки послідовно в часі, спочатку введення, потім висновок, чи навпаки. Однак оперативно перемикати режими «Вхід / Вихід» МК може, ніж широко користуються програмісти.

Електрична схема суміщеного порту введення / виводу показана на Рис. 2.38. Вона виходить як суперпозиція схем, зображених на Рис. 2.25 і Рис. 2.32. а.

Таблиця 2.7. Управління режимами в AYR-й Р1С-контролерах

Функція, виконувана двонаправленим портом МК

Ядро Atmel AVR

Ядр’ Microchip PIC 16/18

   PORTx (S0UT)

   DDRx (S1N)

   PORTx (SOUT)

   TRISx (SIN)

Виході ВИСОКИМ рівнем

   1

   1

   1

   0

Виході НИЗЬКИМ рівнем

   0

   1

   0

   0

Вхід без «pull-up» резистора /? Ір

   0

   0

   0

   1

Вході «pull-up» резистором Rul,

   1

   0

   1

   1

Перемикач £ ВІТ має дві взаємопов’язані групи контактів. Він відповідає за комутацію низького і високого рівнів, а також за підключення і відключення резистора /? Ір. Перемикач 5, N вибирає режим введення (верхнє за схемою положення) або режим виведення даних (нижнє за схемою становище).

Перемикач S] N діє незалежно від ^ 0іт-Оба перемикача управляються двома програмно-доступними регістрами з області SFR. У різних сімействах МК вони мають різні назви (Табл. 2.7). Тут регістр PORTx еквівалентний перемикачу S0l} T, а регістри DDRx, TRISx – перемикачу S] N. Зміна бітів в регістрах викликає відповідне замикання контактів.

Таблиця 2.7. Управління режимами в AYR-й Р1С-контролерах

Якщо порівнювати AVR-і PIC-контролери, то помітна велика різниця в поєднаннях бітів, перемикаючих напрям «Вхід / Вихід» і рівні «ВИСОКИЙ / НИЗЬКИЙ». Стандартизація, на жаль, відсутня, що слід враховувати при переході від одного сімейства МК до іншого.

Наявність суміщених портів введення / виводу є великою гідністю МК, тому дозволяє конструювати гнучкі за функціональними можливостями вироби. Зрідка зустрічаються МК, у яких частина висновків жорстко налаштована тільки на прийом або тільки на передачу інформації, наприклад, Zilog Z86L33, але їх меншість.

Ідеалізований М К повинен мати усереднені характеристики, тому базової для нього пропонується схема, наведена на Рис. 2.38. Програмної настройкою керуючих регістрів контролер може перебудуватися в режими, аналогічні Рис. 2.32, а, Рис. 2.34, а, Рис. 2.35, а. В останньому випадку НИЗЬКИЙ рівень формується «нульовим» напругою на виході, а ВИСОКИЙ – перекладом МК в режим входу з «pull-up» резистором.

Важливе зауваження. При початковому включенні живлення або подачі сигналу скидання всі лінії портів звичайного МК незалежно від бажання програміста переходять в «обірване» високоімпедансное Z-стан, що еквівалентно режиму входу без «pull-up» резистора (Мал. 2.34, а). Виняток з правила становлять МК, сумісні з MCS-51, у яких при скиданні резистор не відключається (Мал. 2.35, а).

Наразі треба враховувати при розробці реальних схем. Зокрема, якщо навантаженням вихідний лінії М До служить транзисторний ключ, то, щоб його база або затвор при скиданні не «висіли в повітрі », в AVR-й Р1С-контролерах ставлять додаткові зовнішні резистори опором 10 … 100 кОм на загальний провід або на ланцюг живлення. Для МК з ядром MCS-51 цього робити не треба через постійне присутності на виході внутрішнього резистора RVP.

Джерело:
Рюмік С.М. 1000 і одна мікроконтролерних схема. (Випуск 1)