Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.63 Mб
Скачать

Лабораторна робота №1

Ознайомлення з мікроконтролерами ATMEL сімейства AVR. Підключення світлодіода до мікроконтролера AVR. Написання програми, компілювання прошивки мікроконтролера і її тестування в програмних емуляторах.

Мета роботи:

З’ясувати що таке мікроконтролер і які компоненти можна до нього підключити. Навчитися писати елементарні програми для мікроконтролерів AVR у програмі CodeVision AVR, з’ясувати як підключати світлодіоди до мікроконтролера, й просимулювати роботу мікроконтролера у програмі Proteus.

Кількість годин на виконання — 2

Години на самостійну роботу — 4

Вимоги до лабораторної бази та перелік необхідного програмного забезпечення:

Для проведення лабораторних досліджень необхідна ПЕОМ класу IBM PC з наступною мінімальною конфігурацією:

- процесор – 300 МГц;

- ОЗП – 64 МБ;

- HDD – 10 ГБ;

- Відео карта – 16 МБ.

На комп'ютері має бути встановлена операційна система (ОС) WINDOWS будь якої версії (але бажано ХР, VISTA або WIN7).

Додаткове прикладне програмне забезпечення:

- CodeVision AVR – інтегроване середовище розробки програмного забезпечення для мікроконтролерів сімейства Atmel AVR.

- Proteus – пакет програм для автоматизованого проектування (САПР) електронних схем.

Теоретичні відомості

Вступ, основні поняття

Мікроконтролер (МК) – це мікросхема (чіп, камінь, IC), яка у відповідь на зовнішні електричні сигнали діє у відповідності з:

- Можливостями закладеними виробником;

- Електронікою підключеної до МК;

- Програмою яку в нього завантажить розробник.

Можливість МК працювати за вашою програмою – ось суть МК. Це головна відмінність МК від «звичайних» НЕ програмованих мікросхем.

Мікроконтролери випускають багато виробників: Intel, Motorolla, Microchip, Atmel тощо. Цей курс розрахований на вивчення мікро контролерів AVR, тому що:

- Це сімейство МК від компанії ATMEL (http://atmel.com/) розроблене з урахуванням особливостей і зручності написання програм на мові Сі;

- Це недорогі, широко доступні, надійні, прості, досить швидкі МК (більшість інструкцій виконується за 1 такт, тобто при кварці 10 МГц виконується до 10 млн інструкцій за секунду);

- AVR мають розвинену периферію (вбудовані в один корпус електронні пристрої, модулі та блоки).

Рис. 1. Структурна схема мікроконтролера

Основні параметри AVR.

- Тактова частота до 20 МГц;

- Вбудований програмований RC-генератор, частота 1, 2, 4, 8 МГц;

- Flash-пам’ять програм, програмована в системі, 10 000 циклів перезапису;

- EEPROM-пам’ять даних (100 000 циклів) – вона не «забуває» при вимкненні живлення;

- Внутрішня оперативна пам’ять з часом доступу 1 такт;

- 6 апаратних команд множення (для сімейства mega) ;

- Розвинена система адресації, оптимізована для роботи з С-компіляторами;

- 32 регістри загального призначення (акумулятора);

- Синхронний приймач/передавач (USART) або асинхронний (UART) (у mega64 і mega128 їх по 2);

- Синхронний послідовний порт (SPI);

- Двопровідний інтерфейс TWI, сумісний з інтерфейсом I2C;

- Багатоканальний PWM 8-, 9-, 10-, 16-бітний ШІМ-модулятор;

- 10-бітний АЦП з диференціальними входами;

- Програмований коефіцієнт посилення перед АЦП 1, 10 і 200;

- Вбудоване джерело опорної напруги 2,56 В;

- Аналоговий компаратор;

- Сторожовий таймер - перезавантажує МК при «зависанні»;

- Настроювана схема затримки запуску після подачі живлення;

- Схема стеження за рівнем напруги живлення;

- JTAG-інтерфейс для підключення емулятора (в МК з об'ємом Flash від 16 кбайт);

- Мікроспоживання (менше 100 мкА в активному режимі на частоті 32 кГц);

- Датчик температури (в ATtiny25 ATtiny45 ATtiny85).

Існують МК AVR з вбудованими інтерфейсами USB, CAN і з вбудованим радіо приймачем-передавачем. Є спеціалізовані МК AVR для керування електродвигунами – серія AT90PWMxxxx. Найдетальніша і повна інформація про МК міститься у його технічній документації (Datasheet).

Прості пристрої можна зробити на декількох дискретних елементах (логічних мікросхемах) без програмованого МК. Але, якщо застосувати МК в простому пристрої, то згодом легше буде реалізовувати складніші задачі. Чітке розуміння алгоритму роботи пристрою – основа для успішної розробки пристрою і програми для МК.

Короткий опис ATmega32A

Основні параметри ATmega32A:

Процесор: Ядро

AVR, RISC архітектура

Процесор: F, МГц

від 0 до 16

Пам’ять: Flash, КБайт

32

Пам’ять: оперативна, КБайт

2

Пам’ять: EEPROM, КБайт

1

I/O (макс.), шт

32

Таймери: 8-біт, шт

2

Таймери: 16-біт, шт

1

Таймери: Каналів ШИМ, шт

4

Таймери: RTC

Так

Інтерфейси: UART, шт

1

Інтерфейси: SPI, шт

1

Інтерфейси: I2C, шт

1

Аналогові входи: Разрядів АЦП, біт

10

Аналогові входи: Каналів АЦП, шт

8

Аналогові входи: Швидкодія процесора, kSPS

15

Аналогові входи: Аналоговый компаратор, шт

2

VCC, В

від 2.7 до 5.5

ICC, мА

7.5

TA, °C

від -40 до 85

Корпус

DIP-40 MLF (VQFN) 44 TQFP-44

Рис. 2. Виводи МК ATmega32A в корпусі PDIP та TQFP/MLF

Рис. 3. Корпусні виконання МК ATmega32A (PDIP-40/TQFP-44/MLF-44)

Опис виводів МК ATmega32A:

VCC – вивід підключення джерела живлення.

GND – загальна шина («земля»).

RESET – вхід скидання. Утримання на вході низького рівня протягом двох машинних циклів (якщо працює тактовий генератор) перезапускає мікро контролер.

XTAL1 – вхід інвертуючого підсилювача генератора і вхід зовнішнього тактового сигналу.

XTAL2 – вхід інвертуючого підсилювача генератора.

PORTA(PA7…PA0), PORTB(PB7…PB0), PORTC(PC7…PC0), PORTD(PD7…PD0) – 8-бітні двонаправлені паралельні порти вводу/виводу з вбудованими підтягуючими резисторами (їх можна вмикати/вимикати для кожного біта окремо). Вихідні буфери можуть споживати струм до 20 мА і безпосередньо керувати світлодіодними індикаторами. Якщо виводи використовуються як входи і ззовні встановлюються у низький стан – вони є джерелами струму, якщо увімкнені внутрішні підтягуючі резистори. Порти виконують й інші специфічні функції про які докладно можна прочитати у Datasheet або додатковій літературі.

Виводи PB0, PB1 також є позитивним (AIN0) та негативним (AIN1) входами вбудованого аналогового компаратора.

AVCC – окремий вивід живлення ЦАП (ADC) (аналогове живлення). Не повинно відрізнятися більш ніж на ± 0.3В від VCC. За опорну напругу можна взяти внутрішні 2,56В. Для зменшення шуму до виводу AREF можна підключити конденсатор.

ADC0…ADC7 – порти аналогово-цифрового перетворювача.

AREF – на цей вивід подається напруга максимуму необхідного діапазону вимірюваня напруги на АЦП. Код такої або більшої напруги буде дорівнювати 1023 або 1111111111.

Всі виводи

TOSC1

TOSC2

TDI

TDO

TMS

TCK

SDA

SCL

OC2

ICP

OC1A

OC1B

INT1

INT0

TXD

RXD

SCK

MISO

MOSI

SS

OCO/AIN1

INT2/AIN0

T1

XCK/T0

Пам’ять даних (файл регістрів загального призначення)

Регістровий файл містить 32 8-розрядних регістра загального призначення. Доступ до них здійснюється за один машинний цикл .

Крім регістрових операцій, для роботи з регістровим файлом можуть використовуватися доступні режими адресації, оскільки регістровий файл займає адреси $00…$1F в області даних, звертатися до них можна і як до комірок пам'яті.

Шість з 32 регістрів – R26...R31 – можна використовувати як три 16-розрядних адресних покажчика в адресному просторі даних. Один з трьох адресних покажчиків (регістр Z) можна використовувати для адресації таблиць в пам'яті програм. Ці регістри позначаються як X, Y, Z.

Простір вводу/виводу складається з 64 адрес для периферійних функцій процесора, таких, як управляючі регістри, таймери/лічильники тощо. Доступ до вводу/виводу може здійснюється безпосередньо як до комірок пам'яті, розташованих після реєстрового файлу ($20…$5F).

Всі пристрої вводу/виводу і периферійні пристрої мікроконтролера розташовуються в просторі вводу/виводу.

Регістри вводу/виводу відповідають за конфігурацію мікроконтролера. Так, щоб мікроконтролер виконував ту чи іншу функцію потрібно встановити конкретний біт конкретного регістра вводу/виводу. Повна інформація про ці регістри і про те, що відбувається, якщо встановити якийсь біт регістра наведена в Datasheet.

При розробці мікроконтролерів типу AVR використали так звану Гарвардську архітектуру. Її суть в тому, що пам'ять програм і даних програми розташовується в різних областях пам'яті.

При обробці переривань і зверненні до підпрограм адреса повернення запам’ятовується в стеку. Стек розміщується в оперативній пам'яті даних загального призначення (SRAM), його розмір обмежений тільки розміром доступної пам'яті SRAM і її використанням у програмі.

Пам'ять программ

Використовується для зберігання програми і незмінних даних (констант). Мікроконтролер ATmega32A містить 32 Кб флеш-пам’яті для зберігання програм.

EEPROM пам’ять даних

Мікроконтролер ATmega32A містить 1 Кб незалежної пам’яті, що зтирається електрично (EEPROM). EEPROM організована як окрема область даних, кожен байт якої можна прочитати і при необхідності перезаписати. Крім того, дані в цю пам’ять можна занести за допомогою програматора, на етапі виготовлення і програмування конструкції.

Рис. 3. структура пам’яті мікроконтролерів AVR сімейства Mega

Рис. Організація статичного ОЗП

Рис. Структура регістрового файлу

Табл.

Пространство ввода/вывода Atmega32

Високі та низькі логічні рівні – логічні «1» та «0»

Електричні сигнали це струми і напруги, спричинені їхнім протіканням.

Але, коли ми говоримо про сигнали, що надходять в МК ми розглядаємо їх як деякі напруги, вимірювані щодо ніжок GND МК.

Будь-який електричний сигнал є аналоговим, тобто має певне значення в кожен момент часу і якщо він був 2 вольта а став 4 вольта то він обов'язково приймав усі значення, що лежать між 2-ма та 4-ма вольтами.

ВАЖЛИВО!

У цифровій техніці прийняті деякі правила, за якими можна представити аналоговий сигнал допустимий для подачі на ніжку МК (він повинен бути вище -0.5 вольт і нижче ніж напруга живлення МК збільшена на 0.5 вольта) як 1-бітний цифровий сигнал або як одне з двох значень:

«1» - високий логічний рівень - логічна одиниця

або

«0» - низький логічний рівень - логічний нуль

Ці правила для ніжок МК які можуть бути входами (і крім XTAL1 і RESET) в МК AVR описані в розділі ДШ "Electrical Characteristics" і ілюстровані графіками:

Графік 117 з ДШ на МК ATtiny2313

Показує залежність порогової (Threshold) напруги перемикання з "0" в "1" від напруги живлення МК.

Очень важно правильно понять этот график!

Он означает следующее: Если МК считал напряжение на ножке (левая вертикальная шкала графика) логическим нулем и это напряжение было ниже линии графика, то при достижения напряжением на ножке этой линии графика - МК начинает считать что теперь на ножке присутствует логическая единица - "1"

Значит теперь в регистре PINX порта_Х которому принадлежит эта ножка соответствующий ей бит стал "1" - единицей (а был "0" - нулем)

Это типовое значение ! т.е. наиболее вероятное для вашего МК.

По графику при напряжении питания МК 5 вольт этот порог примерно 2.4 вольт в диапазоне температур от -40 до 85 градусов.

Но есть еще и гарантированное значение напряжения при превышении которого МК будет считать, что на ножке появилось напряжение соответствующее логической единице.

Оно равно 60% от напряжения питания МК - для 5 вольт это будет 3 вольта.

Запомните!

Что бы быть уверенным, что МК AVR (питающийся от 5 вольт) воспримет входной сигнал (входное напряжение) как "1" вы должны позаботится о том что бы это напряжение было не ниже чем 3 вольта!

Уточняйте в разделе ДШ "Electrical Characteristics" для вашего МК!

График 118 из ДШ на МК ATtiny2313 показывает зависимость порогового (Threshold) напряжения переключения из "1" в "0" от напряжения питания МК.

Он означает следующее: Если МК считал напряжение на ножке логической единицей, и оно было выше линии графика, то при снижении напряжения на ножке МК до линии графика - МК начинает считать что теперь на ножке присутствует логический ноль - "0"

Значит теперь в регистре PINX порта_Х которому принадлежит эта ножка соответствующий ей бит стал "0" - нулем - НЛУ (а был "1" - ВЛУ)

Это типовое значение! т.е. наиболее вероятное для вашего МК.

По графику при напряжении питания МК 5 вольт этот порог примерно 2.35 вольта в диапазоне температур от -40 до 85 градусов.

Но опять существует гарантированное значение напряжения ниже которого МК будет считать, что на ножке появилось напряжение соответствующее логическому нулю.

Оно равно 20% от напряжения питания МК - для 5 вольт это будет 1 вольт.

Запоминайте!

Что бы быть уверенным что МК ATtiny2313 (питающийся от 5 вольт) воспримет входной сигнал (входное напряжение) как "0" вы должны позаботится о том что бы это напряжение было не выше 1 вольта!

Напряжение на ножке выше чем 60% напряжения питания МК гарантировано воспринимается им как ВЛУ или "1" - высокий логический уровень

Напряжение на ножке ниже чем 20% напряжения питания МК гарантировано воспринимается им как НЛУ или "0" - низкий логический уровень

Эти пороговые уровни для напряжения питания 5 вольт будут 3 и 1 вольт

Это справедливо для диапазона напряжений питания VCC = 2.7-5.5V

Возникает вопрос - а чем будет считать МК сигнал 2.37 или скажем 2.38 вольта? т.е. как МК интерпретирует напряжение на ножке между рассмотренными выше пороговыми уровнями?

Это зависит от того чему был равен соответствующий этой ножке бит в регистре PIN_X (т.е. от того каким ЛУ считал МК напряжение на ножке) до появления напряжения попадающего между двумя порогами переключения - и по приведенным выше двум правилам - этот бит не может измениться!

Важный вывод - любое изменение напряжения на ножке МК лежащее между двумя пороговыми напряжениями не ведет к изменению того каким логическим уровнем считает МК напряжение на этой ножке в данный момент!

Внимательно прочитайте и поймите, запомните - все входные сигналы с ножек МК поступают на встроенные триггеры Шмитта (аналогичные двум последовательно включенным элементам микросхемы 74HC14) - это устройства имеющие гистерезис (иначе - разность напряжений) по входному напряжению переключения их выходов из "1" в "0" и наоборот.

У нашего микроконтроллера гистерезис очень маленький, наверное поэтому он не приведен в Datasheet (ДШ) на микроконтроллер. Для примера у ATmega16 гистерезис существенный.

По графику 183 в AVR гистерезис составляет примерно 0.57 вольта при VCC 5 вольт.

Гистерезис по входному напряжению позволяет отсечь помеху (существующую во входном сигнале и/или наводку - напряжение создаваемое внешними электромагнитными полями в проводнике подводящем сигнал ко входу приемника - в нашем случае к ножке МК) с размахом до величины гистерезиса и четко распознать преобразовать в логические единицы и нули зашумленный цифровой сигнал.

Размах сигнала, напряжения, тока, другой величины - это разность максимального и минимального значений.

Напряжения на ножках при холостом ходу и с нагрузкой.

Работа МК – «шевелить», «дергать ножками.» Это очень метко сказано.

Нам нужно получить практический результат работы МК - обычно это информационные сигналы поступающие от него в виде определенных напряжений на ножках МК создаваемых в соответствии с программой. т.е. программа работающая в МК буквально "дергает" его ногами в нужные моменты времени.

Для того чтобы правильно подключить внешние электронные компоненты принимающие эти электрические сигналы от МК, важно знать как напряжения на ножках МК зависят от подключенной к ним нагрузки.

Программа может "приказывать" МК AVR выводить либо "1" либо "0" на ножки I/O назначенные выходами.

МК преобразует эти логические уровни в напряжения на ножках открывая соответствующий полевой транзистор - ключ.

Чтобы вывести "1" открывается транзисторный ключ, соединяющий ножку МК с + питания.

Чтобы вывести "0" открывается транзисторный ключ, соединяющий ножку МК с выводом GND МК.

Если к ножке ни чего не подключено то при выводе "1" на ножке будет напряжение почти равное напряжению питания МК - это VCC - по умолчанию считаем +5 вольт.

А при выводе логического "0" - напряжение на ножке будет очень близко к 0 вольт - это потенциал GND.

Однако:

Если к ножке МК подключить что-либо проводящее ток и так "сопротивляющееся" созданию нужных программе выходных сигналов - напряжения на ножках могут уже не достигать потенциалов VCC и GND и значительно!

Это связано с тем, что открытый полевой транзистор имеет некоторое не нулевое сопротивление и соответственно протекание тока через него вызывает падение напряжения.

Значения этого отклонения показывают графики в конце ДШ.

Вот, к примеру, для ATtiny2313

График 108 показывает каким будет напряжение на ножке МК при выводе на нее "0" при подключенной нагрузке "тянущей" эту ножку током (в мА на левой вертикальной оси графика) к источнику положительного напряжения:

примечание: бит в регистре PORTx равен "0" а бит в регистре DDRx установлен т.е. равен "1" - значит ножка сконфигурирована как выход.

Из графика видно, что при втекающем в ножку токе равном 10 мА напряжение на ножке МК будет 0.2 вольт, а при токе 20 мА уже 0.4 вольт

пример:

Вы подключили к ножке МК анодом (где у диода черточка на схеме) светодиод и хотите чтоб через него протекал ток 15 мА.

Как рассчитать токоограничительный резистор включаемый последовательно со светодиодом - от его катода к +5 вольт питания МК?

Вот так:

1. в ДШ на светодиод вы находите (или измеряете на "живом" светодиоде) падение напряжения на нем при токе через него 15 мА - пусть это будет 2 вольта.

2. По графику выше находите что при токе 15 мА на ножке будет примерно 0.3 вольт.

3. Суммируете эти напряжения и вычитаете из напряжения питания МК:

5 - (2 + 0.3) = 2.7 вольт - это напряжение которое должно падать на искомом резисторе при токе 15 мА

4. Чтоб найти номинал этого резистора - по закону Ома нужно разделить падение напряжения на ток его вызывающий: 2.7 / 0.015 = 180 Ом

Выбираем ближайший стандартный номинал резистора - 180 Ом.

Так как линия графика почти прямая до 20 мА - можно вычислить внутреннее сопротивление ключа обеспечивающего вывод низкого напряжения на ножку МК - это примерно 20 Ом. (нужно напряжение разделить на ток: (0,4/20)*1000. см. график 108).

График 105 показывает каким будет напряжение на ножке МК при выводе на нее "1" при подключенной нагрузке "прижимающей" эту ножку током (в мА на левой вертикальной оси графика) к "земле" т.е. к нулю вольт:

примечание: бит в регистре PORTx равен "1" а бит в регистре DDRx установлен т.е. равен "1" - значит ножка сконфигурирована как выход.

По этому графику можно определить что при токе "на землю" в 10 мА на ножке МК будет не 5 вольт а примерно 4.8 вольт - это соответствует подключению резистора 480 Ом от ножки МК на GND ((4,8/10)*1000).

При токе 20 мА напряжение на ножке будет 4.5 вольт примерно - это соответствует подключению к ножке МК резистора 225 Ом ((4,5/10)*1000).

Значит резистор 240 Ом гарантирует не превышение тока через ножку МК более 20мА при замыкании его на VCC или GND.

Пожалуйста хорошо усвойте что означают эти графики - вы будете знать что реально будет на ножках МК когда вы ими "шевелите" - т.е. выводите на них нужные вам сигналы.

Переходные процессы в микроконтроллерах

Ранее было сказано что все сигналы аналоговые и поэтому изменение напряжения на ножках МК не происходит мгновенно Фронт сигнала (переход из "0" в "1") и спад сигнала (переход из "1" в "0") не вертикальные линии, а наклонные !

Наклон этот тем больше чем выше емкость нагрузки подключенной к ножке.

Это связано с тем, что для изменения напряжения на конденсаторе (на емкости) требуется изменение его заряда - а изменение заряда равно произведению протекающего тока на время протекания (точнее интеграл тока по времени), так как все эти величины имеют конкретные конечные значения то и время переключения не равно нулю.

вывод:

Стремитесь к разумному уменьшению емкостей того, что подключено к выходам МК. Если же емкость уменьшить не возможно - например, ножка МК управляет затвором мощного полевого транзистора (затвор это по сути конденсатор) то поставьте между ними резистор хотя бы на 100 Ом.

Если требуется ток превышающий 20 мА

Если вам нужно получить ток превышающий 20 мА Вы можете объединить несколько ножек МК вместе - лучше через токо-уравнивающие резисторы 20-33 Ом

А можно применить какие либо внешние буферные микросхемы с более высоким выходным током, например счетверенный Операционный Усилитель (ОУ) AD8534 обеспечивает выходной ток до 250 мА

Підключення основної обв’язки

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

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

Живлення можна отримувати і від ліній портів. Наприклад, порт LPT видає на свої лінії напругу 5В. Цього якраз достатньо. Можна підключити живлення і через USB. Але в такому випадку потрібно не перевищити потужність споживання, щоб не спалити порт.

Незалежно від джерела живлення якнайближче до виводів живлення мікроконтролера слід під’єднати керамічний (ще краще - танталовий) конденсатор ємністю 0,01...0,1мкФ – для гасіння завад по лінії живлення. Щоб схема з МК почала працювати достатньо підключити всі виводи VCC на «+» живлення, а всі виводи GND на «-» живлення.

Підключення лінії RESET (скидання мікроконтролера)

При встановленні «0» на ніжці Reset МК, зупиняється виконання програми, вміст регістрів МК стає початковим (див. таблицю регістрів в кінці Datasheet – в основному всі біти нулі) а всі виходи стають високоомними входами (кажуть: Z-стан).

Після появи на цій ніжці «1» і наявності живлення МК – виконання програми розпочнеться з початку, як після включення живлення МК (докладно див. в Datasheet в розділі «Resetting the AVR»). Ніжку Reset можна ні куди не підключати завдяки внутрішньому підтягуючому резистору (що подає струм від джерела більш високої напруги) на живлення МК.

Однак, залишати Reset в повітрі – не бажано. Ліпше його «заземлити» конденсатором 0,1мкФ. А ще краще додатково підключити до Reset діод типу 4148 рискою до «+» живлення МК і паралельно діоду резистор на 5…12 кОм.

Рис. Проста схема лінії скидання

Рис. Схема підключення супервайзера живлення

Живлення аналогової частини МК

Живлення аналогової частини МК, АЦП (входи ADC_x) ніжка AVCC – її потрібно з’єднати з виводом VCC живлення МК, навіть якщо не буде використовуватись АЦП.

Опорна напруга АЦП МК

Опорна напруга для АЦП (входи ADC_x) ніжка AREF – напруга на ній повинна бути від 2 вольт до напруги живлення МК. Напруга на входах АЦП, що дорівнює чи перевищує AREF буде оцифровуватися в код 1023. Бажано заземляти цю ніжку конденсатором на 0,1мкФ. Можна використовувати й внутрішнє джерело опорної напруги на 2,56 вольт.

Тактування процесора МК

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

Рис. Підключення кварцового резонатора до мікроконтроллера

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

Виводи XTAL1 і XTAL2 є входом і виходом інвертуючого підсилювача, на якому можна зібрати генератор тактових імпульсів. Можна використовувати як кварцові, так і керамічні резонатори. Схема потребує додаткових два конденсатори ємністю від 22 до 33 пФ, щоб полегшити запуск тактового генератора. Якщо потрібно використовувати зовнішній тактовий сигнал, він подається на вивід XTAL1, а ніжка XTAL2 при цьому залишається непідключеною.

В мікроконтролері передбачена можливість тактування від внутрішнього тактового генератора. У цьому випадку ніжки XTAL1 і XTAL2 не підключають (залишають «в повітрі»). Всі ці режими тактування налаштовують за допомогою програмування спеціальних фьюз-бітів, які докладніше описані в наступних лабораторних роботах.

Керування світлодіодами або оптронами

Управління світлодіодами – найпростіше, що може зустрітися при виготовленні схем на мікроконтролерах. Світлодіоди споживають досить маленький струм – залежно від типу світлодіода цей струм може становити від 3 до 20 мА. Робоча напруга світлодіодів складає приблизно 1,5…4В.

Оскільки струм, який мікроконтролери сімейства AVR можуть віддавати на вихідні лінії, може досягати 20 мА, можна керувати світлодіодом просто підключивши його до вихідних ліній порту послідовно з обмежуючим струм резистором. Другий вивід цієї ланки слід під’єднати до позитивної лінії живлення (VCC).

Для того, щоб світлодіод засвітився, потрібно сформувати на ніжці мікроконтролера напругу низького рівня «0». Простіше: щоб засвітити світло діод, треба записати у вихідний порт значення «0», щоб погасити – записати «1».

Рис. Підключення світло діода до мікроконтролра

Є інший спосіб підключити світлодіод – в зворотній полярності до порту в порівнянні з варіантом запропонованим вище. Другий вивід через струмообмежувальний резистор підключається до лінії GND.

У цьому випадку, для того, щоб світлодіод став світитися, потрібно сформувати на ніжці МК напругу високого рівня «1». Простіше: щоб засвітити світло діод – записуємо у вихідний порт значення «1», щоб погасити – записуємо «0».

Рис. Підключення світло діода до мікроконтролра

Таким же чином можна під'єднати і більшу кількість світлодіодів – хоч всі порти вводу/виводу.

Однак варто пам’ятати, що хоч кожен вихід мікроконтролера може керувати навантаженням до 20 мА, загальний споживаний струм від всіх ліній портів вводу/виводу не повинен перевищити певного значення.

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

Аналогічно можна керувати оптронами, адже по-суті, це розміщені в одному корпусі навпроти один одного світлодіод і фоточутливий елемент – фоторезистор, фототранзистор, і т.д. Наприклад, використовуючи оптопару з вбудованим фотосімістором можна управляти високовольтним навантаженням. При цьому досягаються такі важливі цілі, як гальванічна розв’язка високовольтних ланцюгів і схеми управління, відсутність іскрового проміжку.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]