Site Loader

Содержание

Сделаем простой AVR микроконтроллер

Меня часто спрашивают: «Чем отличается микроконтроллер от ПЛИС?» Ну что тут можно ответить? Это как бы разные вещи… Микропроцессор последовательно выполняет команды, описанные в его программе. Работа ПЛИС в конечном счете определяется принципиальной электрической схемой, реализованной внутри чипа. Архитектура микроконтроллера, то есть тип процессора, количество портов ввода вывода, интерфейсы, определяется производителем. Микросхема микроконтроллера изготовлена на заводе и изменить ее нельзя. Можно только написать программу, которую он будет исполнять. ПЛИС — это свобода для творчества. Архитектура реализуемого устройства может быть почти любая, лишь бы поместилась вся логика в чип. В ПЛИС можно, например, попробовать реализовать даже и микроконтроллер! Попробуем?

Один из самых распространенных микроконтроллеров — это 8-ми разрядные RISС процессоры семейства AVR компании Atmel. В этой статье я расскажу как реализовать «почти» совместимый с AVR микроконтроллер внутри нашей ПЛИС на плате

Марсоход.

Прежде, чем начинать делать свою реализацию микроконтроллера, конечно, следует изучить внутренности контроллера AVR. Нужно как минимум знать систему команд микропроцессора AVR. На нашем сайте можно скачать его описание:

Система команд микроконтроллера AVR ( 703303 bytes )

Мы не будем ставить себе целью полностью повторить поведение чипа Atmel, мы хотим сделать наш микропроцессор лишь частично совместимым. Полностью повторить можно, но нужна ПЛИС гораздо большего объема. У нас на плате Марсоход стоит CPLD EPM240T100C5, значит у нас есть всего-навсего 240 триггеров и логических элементов.

Кроме триггеров и логики в нашей ПЛИС имеется последовательная флеш память UFM объемом 512 слов по 16 бит. В этой флеш памяти мы будем хранить программу микроконтроллера.  Удобно, что слова, хранимые во флеш, имеют разрядность 16. Все команды процессора AVR также шестнадцатиразрядные. Кое-что про UFM мы уже писали на нашем сайте. У нас был проект для ПЛИС платы

Марсоход, который выполнял чтение из UFM памяти.

«Оперативной памяти» в нашей ПЛИС нет. Ну значит не будет памяти у нашего микроконтроллера, жаль но это нас не остановит.

У микроконтроллера AVR имеется 32 восьмиразрядных регистра общего назначения. Нижняя группа регистров r0-r15 может быть использована только в командах с операндами-регистрами. Верхняя группа регистров r16-r31 может использоваться в командах и с непосредственными операндами. Поскольку места внутри нашего чипа на плате

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

Мы реализуем только 7 регистров: r16-r22:

  • Первые 4 регистра r16…r19 — это просто регистры.
  • Регистр r20 — это тоже обычный регистр, только его биты мы подключим к 8-ми светодиодам платы
    Марсоход
    .
  • Регистр r21 — это тоже обычный регистр, но его биты мы подключим к выводам управления шаговых двигателей на плате Марсоход.
  • Регистр r22 — только для чтения. К нему подключены входы от 4-х кнопочек платы Марсоход.

Схема нашего микроконтроллера создана в среде Altera QuartusII и выглядит вот так (нажмите на картинку, чтобы увеличить):


Наш микроконтроллер работает по простому алгоритму:

  1. Считывает из флеш памяти UFM очередную команду.
  2. Декодирует команду и выбирает для нее нужные операнды из регистров или непосредственно из кода команды.
  3. Выполняет команду в арифметико-логическом устройстве.
  4. Запоминает результат исполнения команды в регистре приемнике, определяемом командой.
  5. Переходит к исполнению следующей команды.

У нас сейчас нет цели сделать высокопроизводительный микроконтроллер, мы не будем делать конвейерную обработку данных. Это объясняется тем, что команды из флеш памяти чипа мы можем считывать только в последовательном формате, то есть на чтение одной команды нужно как минимум 16 тактов.

Быстрее здесь сделать нельзя (да нам и не нужно сейчас).

Ход выполнения программы может изменяться в зависимости от результата исполнения команд. Специальные команды переходов позволяют переходить к нужной операции в нужных условиях.

Перечислим команды микроконтроллера AVR, которые мы собираемся реализовать:


ADD  0000 11rd dddd rrrr
SUB  0001 10rd dddd rrrr

AND  0010 00rd dddd rrrr
EOR  0010 01rd dddd rrrr
OR   0010 10rd dddd rrrr
MOV  0010 11rd dddd rrrr

CP   0001 01rd dddd rrrr
LSR  1001 010d dddd 0110

SUBI 0101 KKKK dddd KKKK
ANDI 0111 KKKK dddd KKKK
ORI  0110 KKKK dddd KKKK
CPI  0011 KKKK dddd KKKK

LDI  1110 KKKK dddd KKKK

BREQ 1111 00kk kkkk k001
BRNE 1111 01kk kkkk k001
BRCS 1111 00kk kkkk k000
BRCC 1111 01kk kkkk k000


Слева написаны названия команд, а справа — их бинарное представление (кодирование). Так буква «r» обозначает регистр источник, буква «d» — регистр приемник, «K» — это непосредственно операнд.

Конечно — это только малая часть от «настоящей системы команд», но уже и эти команды позволять писать вполне работающие программы.
У нас будет упрощенное АЛУ (Арифметико-Логическое Устройство). Оно реализует только некоторые, наиболее употребительные команды, а так же всего 2 флага для условных переходов: «Z» и «C».

Флаг «Z» устанавливается, если результат АЛУ это ноль. Если результат из АЛУ не нулевой, то флаг «Z» сбрасывается. Флаг «C» устанавливается при возникновении переноса в арифметических операциях ADD и SUB/SUBI или сравнения CP/CPI. Флаги влияют на исполнение команд условных переходов: флаг «Z» влияет на BREQ, BRNE, а флаг «C» влияет на BRCS, BRCC.

Вообще всеь проект мы уже реализовали и его можно взять здесь:

Ядро микропроцессора Atmel AVR ( 109584 bytes )

.
Исходный текст нашего ядра AVR написан на языке Verilog и его можно посмотреть здесь.

Теперь посмотрим, как мы сможем написать программу для нашего микроконтроллера? Для написания программы на языке ассемблер воспользуемся средой разработки компании Atmel AVRStudio4.

Эту среду разработки можно скачать прямо с сайта компании Атмел (после регистрации), вот здесь. Или поищите в яндексе — наверняка найдете в свободном доступе.


Создаем проект в AVRStudio4 и пишем простую программу. Программа будет моргать светодиодом на плате Марсоход и опрашивать состояние нажатых кнопочек. Если нажать одну кнопочку, то моргающий светодиод «побежит» в одну сторону, а если нажать другую кнопочку, то светодиод «побежит» в другую сторону. Вот исходный текст на ассемблере для нашего примера:


.include «1200def.inc»
.device AT90S1200

.cseg
.org 0

start:

;initial one bit in register
ldi    r16,$80

rd_port:

;read port (key status)
mov    r17,r22
cpi r17,$0f
;go and blink one LED if no key pressed
breq do_xor

cpi r17,$0e
;go and right shift LEDs if key[0] pressed
breq do_rshift

cpi r17,$0d
;go and left shift LEDs if key[1] pressed
breq do_lshift

;jump to read keys
or    r16,r16
brne rd_port

do_rshift:
cpi r16,1
breq set80
lsr    r16
mov    r20,r16

brne pause
set80:    
ldi    r16,$80
mov    r20,r16
or    r16,r16
brne pause

do_lshift:
cpi r16,$80
breq set1
lsl    r16
mov    r20,r16
brne pause
set1:    
ldi    r16,$01
mov    r20,r16
or    r16,r16
brne pause

do_xor:
eor    r20,r16

pause:
ldi    r18,$10
cycle2:
ldi r19,$FF
cycle1:
or    r19,r19
or    r19,r19
subi r19,1
brne cycle1
subi r18,1
brne cycle2

or    r16,r16    
brne rd_port


Видите? Чтение состояния кнопочек — это чтение из регистра r22.

Изменение состояния светодиодов — это запись в регистр r20.
Настройте AVRStudio так, что бы выходной формат был «Generic». Это в свойствах проекта, «Assembler Options», настройка «Hex Output Format».
После компиляции программы получается вот такой текстовый файл с кодами программы:


000000:e800
000001:2f16
000002:301f
000003:f0c1
000004:301e
000005:f021
000006:301d
000007:f059
000008:2b00
000009:f7b9
00000a:3001
00000b:f019
00000c:9506
00000d:2f40
00000e:f471
00000f:e800
000010:2f40
000011:2b00
000012:f451
000013:3800
000014:f019
000015:0f00
000016:2f40
000017:f429
000018:e001
000019:2f40

00001a:2b00
00001b:f409
00001c:2740
00001d:e120
00001e:ef3f
00001f:2b33
000020:2b33
000021:5031
000022:f7e1
000023:5021
000024:f7c9
000025:2b00
000026:f6d1


Этот файл нам почти подходит для QuartusII. В нашем проекте для ПЛИС есть файл avr_prog. mif (Memory Initialization File), куда мы и вставляем полученный из AVRStudio код (только нужно добавить точку с запятой в конце каждой строки). Таким образом, после компиляции QuartusII эти коды попадут во флеш  UFM нашей ПЛИС.

Теперь можно компилировать и пробовать наш проект в плате Марсоход. Вот видеоролик, демонстрирующий работоспособность нашего процессора:

Все работает так как и задумывалось!
Обратите внимание, что после компиляции, весь проект занимает только 205 логических элемента из 240 имеющихся в нашей ПЛИС. Это значит, что наш микроконтроллер можно и дальше усложнять или добавить какую-то новую логику. Так что проект может быть полезен для создания Ваших устройств.

 

Микроконтроллеры AVR в Украине. Цены на микроконтроллеры AVR на Prom.ua

Конструктор DDS генератор v2.0 на микроконтроллере AVR, собери сам

На складе в г. Киев

Доставка по Украине

614.55 — 704.65 грн

от 2 продавцов

829 грн

704.65 грн

Купить

Оптовичек — Одесса

Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера (3-е издание)

Под заказ

Доставка по Украине

390 — 396 грн

от 2 продавцов

396 грн

Купить

Конструктор DDS генератор v2. 0 на микроконтроллере AVR, собери сам

На складе в г. Киев

Доставка по Украине

847 грн

635.25 грн

Купить

MyTorg

USB ISP AVR внутрисхемный программатор для AVR микроконтроллеров фирмы ATMEL USB ASP

Доставка по Украине

378 грн

Купить

Интернет-магазин «Smart-company»

Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера (3-е издание)

Доставка по Украине

520 — 660 грн

от 2 продавцов

520 грн

Купить

Книжный Дом Instagram @domknig.prom.ua

ATmega8A-AU Microchip TQFP-32 8-bit FLASH 8kB 16MHz AVR микроконтроллер

Доставка из г. Днепр

от 116.20 грн

Купить

ТОВ СIБАРIС ГРУП

ATmega32A-AU Microchip TQFP-44 8-bit FLASH 32kB 16MHz AVR микроконтроллер

Доставка из г. Днепр

от 138.13 грн

Купить

ТОВ СIБАРIС ГРУП

ATmega64A-AU Microchip TQFP-64 8-bit FLASH 64kB 16MHz AVR микроконтроллер

Под заказ

Доставка по Украине

от 265. 29 грн

Купить

ТОВ СIБАРIС ГРУП

ATmega48PA-AU Microchip TQFP-32 8-bit FLASH 4kB SRAM 512B EEPROM 256B 20MHz AVR микроконтроллер

Доставка из г. Днепр

от 126.34 грн

Купить

ТОВ СIБАРIС ГРУП

ATtiny88-AU Microchip TQFP-32 8-bit FLASH 8kB SRAM 512B EEPROM 64B 16MHz AVR микроконтроллер

Доставка из г. Днепр

от 102.61 грн

Купить

ТОВ СIБАРIС ГРУП

Программатор микроконтроллеров AVR USBasp

На складе

Доставка по Украине

139.10 грн

Купить

Магазин «Солдер»

USB AVRISP XPII программатор AVR ISP PDI, клон Atmel mkII, STK500

На складе

Доставка по Украине

990 грн

Купить

KRONS интернет- магазин

AT90S8515-8PC 8-розрядний AVR® мікроконтролер (Atmel)

Доставка по Украине

120.40 грн

Купить

CAR-LED. Радіокомпоненти.та LED освітлення.

AT90S8515-16PU 8-розрядний AVR® мікроконтролер (Atmel)

Доставка по Украине

146. 20 грн

Купить

CAR-LED. Радіокомпоненти.та LED освітлення.

Микроконтроллер ATmega16A-PU 8 Бит, AVR, 16МГц, 16КБ Flash [DIP40]

Доставка из г. Днепр

по 302.8 грн

от 2 продавцов

302.80 грн

Купить

Radio Store

Смотрите также

Микроконтроллер AVR ATMEGA644V-10PU (Atmel)

Доставка по Украине

360 грн

Купить

Квазар-Мікро. Компоненти і системи

Микроконтроллер AVR AT90S4414-8PC (Atmel)

Доставка по Украине

60 грн

Купить

Квазар-Мікро. Компоненти і системи

Микроконтроллер AVR ATMEGA128-16AU (Atmel)

Доставка по Украине

480 грн

Купить

Квазар-Мікро. Компоненти і системи

USB программатор Ch441A FLASH EEPROM

На складе в г. Умань

Доставка по Украине

122 грн

Купить

Интернет-магазин «FreeBuy.in.ua»

Программатор AVR USBASP ATMEGA8A 3.3/5В

На складе в г. Умань

Доставка по Украине

136 грн

Купить

Интернет-магазин «FreeBuy. in.ua»

Занимательно о микроконтроллерах

Доставка по Украине

545 грн

Купить

Діоген

Микроконтроллер R5F100FEA. Renesas R5F100. LQFP44

Заканчивается

Доставка по Украине

500 грн

Купить

Механик

Адаптер ZIF панель для PICkit

На складе

Доставка по Украине

90.20 грн

Купить

Магазин «Солдер»

Переходник для программатора AVRasp 10pin<->6pin

На складе

Доставка по Украине

20.50 грн

Купить

Магазин «Солдер»

USB программатор K150 ICSP для PIC-контроллеров 5 В

Доставка по Украине

518 грн

507 грн

Купить

ІНТЕРНЕТ-МАГАЗИН «ЗАКУПИСЬ»

Микропроцессоры NXP серии i.MX 8: Multicore Arm, Cortex-A72, Cortex-A53, Cortex-A35, Cortex-M4, Cortex-M7

Под заказ

Доставка по Украине

от 1 105 грн

Купить

ООО «Симметрон-Украина»

Новый Микроконтроллер R5F100FEA. оригинальный R5F100. LQFP44

Заканчивается

Доставка по Украине

500 грн

Купить

Механик

USB программатор Ch441A FLASH EEPROM

На складе в г. Умань

Доставка по Украине

118 грн

Купить

Интернет-магазин «FreeBuy.in.ua»

Мікроконтролер ATmega328

Доставка по Украине

231 грн

Купить

«DiyLab» — інтернет-магазин електронних модулів та компонентів

Обзор микроконтроллеров семейства AVR компании Atmel

32-разрядные микроконтроллеры

Богатый набор функций и лучшая производительность в своём классе микроконтроллеров Atmel AVR обеспечиваются наличием встроенных блоков цифровой обработки сигналов с фиксированной запятой (DSP), портом SRAM, контроллером прямого DMA, продуманной архитектурой, построенной на проверенных и инновационных решениях Atmel. 

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

1. Серия L.
Архитектура МК разрабатывалась для портативных устройств.
На первом месте в списке достоинств находится низкое энергопотребление, составляющее 165 мкА/МГц в активном режиме, 600 нА и 9 нА при включенных и отключенных часах реального времени, на втором — производительность.

Для взаимодействия с пользователем в микросхеме встроен CAT-контроллер на 17 аппаратных каналов. Безопасное хранение программ во флэш-памяти обеспечивается технологией FlashVault.

  • Семейство AT32UC3L с ёмкостью флэш-памяти 16-256 кб, 48 выводов. Встроенная поддержка технологии picoPower. Модуль безопасного доступа (SAU) обеспечивает повышенную безопасность и целостность программы и данных. Рабочая частота 50 МГц, интерфейсы SPI – 5, I2C – 2, UART – 4. Встроенных АЦП до 8, выходов ШИМ до 35, напряжение выводов 1,62-3,6 В. Отладка по интерфейсам JTAG или aWire.
  • Семейство ATUC..L3U – ATUC..L4U. Низкое энергопотребление, благодаря технологии picoPower. Вcтроенный полноскоростной USB приёмопередатчик. Разнообразные интерфейсы: SPI – 1, I2C – 2, UART – 4, LIN – 4, SSC – 1. Имеются АЦП и ЦАП. До 6 встроенных плюс сторожевой таймер. Напряжение выводов 1,62-3,6 В. Отладка по интерфейсам JTAG или aWire.

 Маркировка микросхем Atmel

2. Серия С.
Основное назначение микроконтроллеров AT32UC3C – высокопроизводительные автомобильные системы.
Отдельно выделим микроконтроллеры AT32UC3C0512CAU c возможностью загрузки лицензированного ПО от Atmel для аудиосистем. Наличие интерфейса Ethernet, производительность и богатые коммуникационные возможности делают этот МК отличным решением для создания концентратора датчиков Интернета Вещей (IoT).

К ключевым особенностям устройства относятся:

  • Разнообразные интерфейсы: SPI, I2C, UART, CAN, LIN, SSC, Ethernet.
  • Рабочая частота 66 МГц.
  • Встроенный модуль USB + OTG.
  • Блок FPU для операций с плавающей запятой и технология безопасного хранения кода FlashVault.
  • 12-разрядные быстродействующие ЦАП и АЦП, до 20 каналов ШИМ.
  • Уровни напряжений выводов 3,0 – 5,5 В.
  • 32-кГц RTC, 6 таймеров, сторожевой таймер.
  • Отладка по JTAG.

3. Серия D.
Микроконтроллеры ATUC..D3-ATUC..D4 для начинающих конструкторов. Просты в освоении, мощные и функциональные. В МК реализована технология SleepWalking, позволяющая подключенным устройствам выводить микроконтроллер из спящего режима.

Технические характеристики:

  • Рабочая частота 48 МГц.
  • Встроенный модуль USB.
  • CAT-контроллер для устройств сенсорного ввода на 25 каналов.
  • Интерфейсы: SPI, I2C, UART.
  • 10-разрядные АЦП, до 7 каналов ШИМ.
  • Уровни напряжений выводов 3,0, 3,6 В.
  • 32-кГц часы реального времени, 3 таймера, сторожевой таймер.
  • Отладка по JTAG и aWire.

4. Микроконтроллеры A0, A1, A3, A4
Ориентированы для применения в устройствах и системах, выполняющих операции по обработке больших массивов данных. Производитель наделил микроконтроллеры большой пропускной способностью и высокоскоростными портами, работающими в режиме USB как хоста или периферийного устройства.
Микроконтроллеры А0, А1 имеют встроенный интерфейс Ethernet, встроенную поддержка SD-карт памяти, высокую производительность. 

5. Серия B.
Рабочая частота 60 МГц, вкупе с высокой пропускной способностью и производительностью, встроенным модулем USB с OTG и низким энергопотреблением делают микроконтроллеры незаменимыми при:

  • конструировании устройств хранения данных с USB интерфейсом;
  • портативных устройств;
  • несложных промышленных систем управления.

 С чего начать изучение FPGA Altera?


Семейство MegaAVR Atmel


Если кратко характеризовать всё многообразие этого семейства микросхем Atmel, то можно отметить, что это 8-битные микроконтроллеры, различие между которыми в следующих характеристиках:

  1. Объём флэш-памяти от 4 до 128 кб.
  2. Выводов от 20 до 100.
  3. Встроенный CAN-контроллер.
  4. Встроенный LIN-контроллер.
  5. Специальные функции для управления электродвигателями, LCD-дисплеями, USB-интерфейсами.

Быстродействие более 20 млн операций в секунду позволяет загружать и выполнять программы большого объёма. Специальные исполнения микросхем picoPower от Atmel позволяют конструировать микроконтроллеры с низким энергопотреблением, а внутрисхемная отладка и обновление программного кода в режиме исполнения, делают тестирование приложений простым, быстрым и удобным.

Рассмотрим наиболее интересные устройства семейства MEGA AVR


1. Микроконтроллеры со встроенным CAN-контроллером AT90CAN128, AT90CAN32, AT90CAN64.
Как видно из обозначения, различия в микросхемах в объёме флэш-памяти – 128, 32 и 64 кб, каждая имеет по 64 вывода.

Основные технические характеристики:

  • Частота 16 МГц.
  • Пинов ввода-вывода 53.
  • Внешних прерываний до 8.
  • Интерфейсы SPI – 1, I2C – 1, UART – 2, CAN – 1.
  • 8 10-битных АЦП, ЦАП отсутствует.
  • Напряжение выводов 2,7..5,5 В.
  • Отладочный интерфейс JTAG.
  • Температура эксплуатации -40..85 °С.

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

 Жизненный цикл импортных электронных компонентов

2. Для бортовых систем автомобиля, работающих с протоколами CAN и LIN предназначены микроконтроллеры ATMega16M1, ATMega32M1, ATMEga64M1. Микроконтроллеры имеют объём встроенной флэш-памяти 16..64 кб и 32 пина, повышенную производительность.

Краткие характеристики устройств:

  • Частота 16 МГц.
  • Пинов ввода-вывода 27.
  • Внешних прерываний до 27.
  • Интерфейсы SPI – 1, UART – 1, CAN – 1, LIN – 1.
  • 11 10-битных АЦП, 1 10-битный ЦАП.
  • ШИМ каналов до 10.
  • Напряжение выводов 2,7..5,5 В.
  • Отладочный интерфейс debugWIRE.
  • Температура эксплуатации -40..85 °С.

С помощью микроконтроллера возможно подключение к проектируемому устройству электронных подсистем автомобиля с низкой ответственностью по протоколу LIN.

3. Архитектура микросхем AT90PWM Lighting оптимизирована для управления электродвигателями и системами освещения за счёт наличия двух 12-битных высокоскоростных контроллеров и гибких таймеров с режимами сравнения.
Ёмкость флэш-памяти МК 8-16 кб, количество пинов 20-32.

Характеристики:

  • Частота до 16 МГц.
  • Интерфейсы UART, SPI.
  • 8 10-битных АЦП, 1 10-битный ЦАП.
  • До 7 выходов ШИМ.
  • Отладочный интерфейс debugWIRE.
  • Температура эксплуатации -40..105 °С.

4.Микроконтроллеры AT90USB отличает разнообразие встроенных интерфейсов: SPI – 2, I2C – 1, UART – 1.
Однако серия не зря названа USB. В МК встроен USB приёмопередатчик, работающий на полной скорости.

5. Достаточно большое подсемейство ATMega169, ATMega329 и ATMega649 с LCD-контроллером, имеющим встроенный регулятор контрастности.




Заявка на поставку импортных микросхем

Мы специализируется на поставках импортных микросхем для производства приборов связи и навигационного оборудования для авиа- и судостроения. Получить подробную информацию о поставляемых брендах и условиях сотрудничества можно тут: https://import.el-ra.ru

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

Если вы заинтересованы в работы с нами, то заполните форму по ссылке: www.el-ra.ru/zayavka

Звоните: +7(495) 374-61-00
Пишите: [email protected]

Биты конфигурации и биты блокировки памяти микроконтроллеров AVR

Биты блокировки памяти (Lock Bits)

Исторически сложилось так, что даже самые первые модели микроконтроллеров имели программируемые ячейки защиты информации. Микроконтроллеры AVR так же имеют такую защиту. Это специальные ячейки, построенные по принципу Flash-памяти (то есть, энергонезависимой памяти с электрическим стиранием информации). Каждый микроконтроллер имеет как минимум две защитные ячейки LB1 и LB2. Запись и чтение этих ячеек возможна только в режиме программирования. При записи нуля в LB1 блокируется запись данных во Flash и EEPROM память. Одновременно блокируется возможность изменять конфигурационные ячейки. Если записать ноль еще и в LB2, то блокируется и возможность чтения всех данных. После этого прочитать содержимое вашей программы становится невозможным. Для повторного использования микроконтроллера нужно выполнить команду «Стирание микросхемы». При этом вся информация, записанная в микросхему теряется, зато способность чтения и модификации восcтанавливается. В микроконтроллерах семейства Mega имеются дополнительные ячейки защиты BLB02, BLB01, BLB12, BLB11. Они служат для ограничения доступа к различным областям памяти программ. Подробнее об этом смотрите в описании конкретной микросхемы.

Кроме ячеек защиты памяти микросхемы имеют, так называемые, конфигурационные ячейки. Дело в том, что все контроллеры AVR имеют множество режимов работы. Некоторые из режимов невозможно переключить программным путем, используя внутренние регистры управления. Например, в некоторых моделях микроконтроллеров синхронизация может осуществляться как от внутреннего генератора с внешним резонатором, так и от автономного внутреннего генератора, не требующего внешних цепей. В таких микросхемах два освободившихся контакта, используемые обычно для подключения внешнего кварцевого (керамического) резонатора можно использовать как дополнительные линии порта ввода/вывода. Кроме того, почти все микросхемы AVR не требуют обязательного наличия внешнего сигнала сброса. Поэтому и этот, третий контакт так же можно переключить в режим, когда он будет выполнять роль дополнительной линии порта ввода/вывода. Естественно, что выбор этих режимов должен производиться еще до подключения микросхемы к схеме налаживаемого устройства. Для переключения режимов фирма Atmel ввела в свои микроконтроллеры новый настроечный элемент: программируемые переключатели режимов. Эти переключатели выполнены в виде специальных ячеек, которые, в совокупности с ячейками защиты, являются еще одним видом перепрограммируемой энергонезависимой памяти. Все конфигурационные ячейки объединяются в байты. Различные микросхемы AVR имеют от одного до трех байтов конфигурационных ячеек. Каждый конфигурационный переключатель предназначен для того, что бы изменять какой либо один параметр или режим работы микроконтроллера. В документации каждый такой переключатель имеет свое определенное имя. Некоторые биты конфигурационных ячеек объединены в группы. Например, группа из четырех битов CKSEL 3…0 позволяет выбирать режимы синхронизации. Разные модели микроконтроллеров имеют различные наборы конфигурационных ячеек. По терминологии фирмы Atmel конфигурационные ячейки называются Fuse Bits. Поэтому для удобства и краткости эти ячейки часто называют «Фьюзами», или Fuse-ячейками.

Запись и чтение ячеек защиты и конфигурационных ячеек возможна только при помощи программатора в режиме программирования. Все незапрограммированные fuse -ячейки и ячейки защиты содержат единицу. При программировании в ячейку записывается ноль. Некоторые ячейки программируются еще на заводе (заводская предустановка). Состояние всех конфигурационных ячеек для каждой конкретной микросхемы смотрите в документации на эту микросхему.

Еще одна группа ячеек – это ячейки идентификации. Любой микроконтроллер имеет три ячейки идентификации. Эти ячейки доступны только для чтения и содержат информацию о производителе и модели микроконтроллера.

Кварцевый генератор

XTAL1 и XTAL2 – вход и выход, соответственно, инвертирующего усилителя, который может быть настроен для использования в качестве встроенного генератора. Для задания частоты может использоваться либо кварцевый либо керамический резонатор. Конфигурационный бит CKOPT выбирает один из двух режимов усилителя генератора. Если CKOPT запрограммирован, то амплитуда колебаний выходного сигнала генератора будет ограничена уровнями питания. Данный режим рекомендуется использовать при высоком уровне окружающих шумов или при использовании выхода XTAL2 в качестве источника синхронизации внешней схемы. Данный режим характеризуется широким частотным диапазоном. Если CKOPT – незапрограммирован, то амплитуда выходных колебаний генератора снижается. Использование данного режима позволяет существенно снизить потребляемую мощность, но при этом ограничен частотный диапазон и нельзя XTAL2 использовать для внешней синхронизации.

При использовании резонаторов максимальная частота равна 8 МГц, если CKOPT – незапрограммирован, и 16 МГц, если CKOPT— запрограммирован. C1 и C2 должны быть всегда равны независимо от использования кварцевого или керамического резонатора. Оптимальное значение емкостей конденсаторов зависит от используемого кварцевого или керамического резонатора, от значения паразитной емкости и от окружающего уровня электромагнитного шума. Рекомендации по выбору номиналов конденсаторов приведены в таблице 8. Для керамических резонаторов необходимо использовать конденсаторы с номиналом, рекомендуемым производителем.

RSTDISBL

RSTDISBL — fuse бит, отключающий сигнал внешнего сброса от вывода микроконтроллера и подключающий к нему схему порта ввода-вывода. Этот бит имеется только в тех МК, у которых вывод аппаратного сброса RESET совмещен с одинм из портов ввода-вывода. Ошибочная установка этого fuse бита может отключить RESET и вы не сможете больше прошивать по ISP. Не устанавливайте этот бит, если намерены продолжать работать с МК при помощи последовательных программаторов. «Оживить» МК с установленным RSTDISBL можно только параллельным программатором и не для всех МК.

Режимы синхронизации и задержки запуска

CKSEL (Select Clock source)

FUSE переключатели CKSEL – в основном определяют режимы работы тактового генератора. Тактовый генератор вырабатывает импульсы для синхронизации работы всех узлов микроконтроллера. Внутренний тактовый генератор AVR может запускаться от нескольких источников опорной частоты (внешний генератор, внешний кварцевый резонатор, внутренняя или внешняя RC-цепочка). Минимальная допустимая частота ничем не ограничена (вплоть до пошагового режима). Максимальная рабочая частота определяется конкретным типом микроконтроллера и указывается Atmel в его характеристиках, хотя практически любой AVR-микроконтроллер с заявленной рабочей частотой, например, в 10 МГц при комнатной температуре легко может быть «разогнан» до 12 МГц и выше.

Если вам не важна точность выдержки тактовой частоты, если для вашего устройства не критично, если тактовая частота будет «плавать» в небольших пределах, то выбирайте режим в котором в качестве частотозадающей цепи используется внутренняя или внешняя RC цепочка. Это дешевле кварца. Особенно, если использовать внутреннюю RC цепь. Внешняя цепочка используется если в режимах работы отсутствует нужная вам тактовая частота.

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

SUT (Select start-up time)

Основное назначение переключателей SUT – определение задержки после старта. Если ваш блок питания обеспечивает качественное питание, то задержку можно выбрать самую маленькую. Качественное питание – это питание, которое очень быстро достигает рабочих значений после включения. Чаще всего так оно и есть. Задержка включения предусмотрена для тех случаев, когда питание не качественное. В любом случае переходные процессы на выходе источника питания должны полностью заканчиваться к моменту окончания выбранной вами задержки включения микроконтроллера.

Защита от стирания EEPROM

EESAVE

FUSE переключатель EESAVE предназначен для облегчения процесса отладки программ. Он влияет на процесс стирания памяти. По умолчанию бит запрограммирован.(равен 0). И поэтому когда от программатора на микроконтроллер поступает команда «Стереть кристалл», стираются сразу и FLASH память (память программ) и EEPROM (энергонезависимая память данных). Это удобно в процессе производства неких партий одинаковых устройств на микроконтроллере. Можно сразу стереть всю память и прошить и программу и данные.

В процессе отладки же обычно программист меняет и перепрошивает программу. А данные в EEPROM редко нужно менять. В большинстве случаев эти данные вообще записывает сам микроконтроллер в процессе работы разрабатываемой вами программы, а не с помощью программатора. Однако, прежде, чем записать новую версию программы, память программ нужно стереть. Если не менять значение FUSE переключателя EESAVE, то при стирании программной памяти так же сотрется и EEPROM. В результате его тоже придется каждый раз заново записывать. Это занимает лишнее время и расходует ресурс памяти (количество циклов записи/стирания ограничено). Поэтому программист просто устанавливает значение бита EESAVE в единицу (делает незапрограммированным). Теперь при получении команды «Стереть кристалл» микроконтроллер стирает только FLASH а содержимое EEPROM оставляет без изменений.

Система контроля питания.

Большинство микроконтроллеров AVR имеет встроенную систему контроля питания. Так называемый BOD (Brown-out Detection). Назначение этой системы — повышение стабильности и надежности работы микропроцессорных систем при понижении напряжения питания. Эта система осуществляет постоянное сравнение напряжения питания с неким пороговым уровнем. Уровень порога срабатывания схемы BOD можно устанавливать при помощи fuse-переключателей BODLEVEL. Если напряжение снизится ниже порога, система контроля питания автоматически вырабатывает внутренний сигнал сброса, который останавливает выполнение программы. После того, как напряжение питания повысится, сигнал сброса еще действует некоторое время (TTOUT) и не позволяет процессору работать по программе. Любое новое снижение напряжения ниже порога запускает отсчет задержки сначала. Если напряжение питания восстановит свое нормальное значение и в течение всего периода задержки больше не упадет ниже контрольного уровня, сигнал сброса заканчивается и микроконтроллер начинает выполнение программы. Причем программа выполняется с самого начала. То есть, с того места, с которого она начинает работу при начальном сбросе. Для того что бы микроконтроллер мог учесть в своей работы сам факт сбоя по напряжению питания, многие модели AVR имеют специальный регистр, в котором хранится код источника сигнала сброса.

BODLEVEL

Значение периода задержки TTOUT фиксировано. Его можно посмотреть в документации на конкретный контроллер. Порог срабатывания системы BOD обычно не один. Для переключения нескольких вариантов порога служат FUSE переключатели BODLEVEL. Обычно это несколько битов (BODLEVEL1, BODLEVEL2 …). Режим работы определяется различным сочетанием их значений.

BODEN

Если вам не нужен контроль напряжения, вы можете ее выключить. В некоторых моделях выключение BOD – это один из режимов, определяемый фьюзами BODLEVEL. В других же моделях для включения и отключения BOD имеется специальный фьюз, который называется BODEN. Если имеется BODEN и его значение равно нулю (он запрограммирован), система работает. Если значение BODEN равно единице, то BOD отключен, и состояние фьюзов BODLEVEL не на что не влияет.

Рекомендации по выбору режимов

Если после прочтения всего вышесказанного вы так и не решили, какой же режим выбрать именно вам, тогда смело отключайте систему контроля напряжения. В процессе опробывания, отладки и доводки программы система BOD только может помешать и ввести в заблуждение. И только если сама жизнь (по результатам эксплуатации или по просьбе заказчика) потребует от вас включение такой защиты, начинайте экспериментировать.

Гистерезис

Как уже было сказано выше, в систему BOD заложено несколько вариантов уровня срабатывания. Нужный вам уровень вы выбираете при помощи фьюзов BODLEVEL. Однако, если бы система срабатывала по этому одному уровню, это могло бы привести к многократному перезапуску программы в случае, если напряжение питания «гуляет» вблизи порога срабатывания. Поэтому в системе защиты введен гистерезис. И существует такой параметр, как величина гистерезиса. В документации фирмы Atmel эта величина называется VHYST. Для получения эффекта гистерезиса в системе BOD вводится два порога срабатывания. Порог включения и порог выключения. Разница между этими порогами как раз равна VHYST. Если выбранное вами пороговое напряжение равно VBOT, то порог включения и порог выключения соответственно будут равны:

VBOT+ = VBOT + VHYST/2
VBOT- = VBOT — VHYST/2

Система BOD срабатывает в момент, когда напряжение питания упадет ниже VBOT- . В этот момент вырабатывается сигнал внутреннего сброса и выполнение программ приостанавливается. Когда напряжение питания повысится и станет выше порога VBOT+ , начинается отсчет специального таймера. По окончании этой выдержки (tTOUT) внутренний сброс заканчивается и процессор возобновляет выполнение программы. На рисунке ниже показан весь процесс работы BOD.

Секция загрузчика.

FUSE переключатели BOOTSZ, BOOTRST и SELFPRGEN

Эти два вида FUSE переключателей предназначены для выбора режимов работы так называемой секции загрузчика. Секция загрузчика появилась после того, как в микроконтроллеры была введена функция самопрограммирования. Самопрограммирование — это возможность микроконтроллера самому «перешивать» свою собственную программу. Это очень удобно в тех системах, в которые сами, без участия сервисных служб и специальных программаторов могут сами обновлять свою программу, получая ее автоматически из внешних каналов. Например, современные мобильные телефоны могут получать и автоматически устанавливать новые версии прошивок прямо через телефонного оператора или по USB или через Блютуз (Bluetooth) из интернета. Используя современные процессоры вы сами можете создать подобную систему.

SELFPRGEN

В некоторых моделях микроконтроллеров для включения режима самопрограммирования используется FUSE переключатель SELFPRGEN.

В процессе самопрограммирования возможен следующий конфликт: Если программа сама себя переписывает, то в процессе работы она должна будет стереть саму себя! Ведь процесс записи FLASH памяти всегда начинается со стирания. Технология многоразового стираемого ПЗУ такова, что стирать нужно сразу все ячейки. Именно по этому память приходится делить на две части: область основной программы и область загрузчика. Основная программа располагается в своей области. Она выполняет все основные функции. Когда же наступает необходимость перезаписать основную программу, она передает управление в область загрузчика. Программа, загруженная в эту область автоматически стирает область основной программы, получает любым из способов (через один из последовательных каналов или через любой из портов) побайтно коды новой версии и прошивает это все на место старой.

BOOTSZ

Многие модели микроконтроллеров AVR имеют возможность выбирать размер области загрузчика из нескольких вариантов. Этим обеспечивается определенная гибкость для разработчика. Размер области загрузки определяется при помощи группы фьюзов BOOTSZ (BOOTSZ1, BOOTSZ2…).

BOOTRST

В некоторых случаях нужно что бы после сброса микроконтроллер начинал выполнение программы не с нулевого адреса, как это установлено по умолчанию, а с начала области загрузчика. Для того, что бы включить данный режим используется фьюз BOOTRST. Если этот бит прошить (сделать равным нулю) то вектор начального сброса изменится и после сброса контроллер начнет выполнение программы с начала области загрузки.

В этом случае программа загрузчика обычно делается таким образом, что она сама проверяет необходимость перезаписи основной программы. Например, запросив у внешнего источника наличие новой версии. Если перезапись не требуется, загрузчик передает управление основной программе. Именно так устроен микроконтроллерный комплект проекта Ардуино. Этот интересный проект как раз использует режим самопрограммирования. Предназначен он для начинающих констукторов. Авторы проекта даже утверждают, что используя Ардуино любой желающий, даже очень далекий от микроконтроллерной техники, не знакомый с паяльником и измерительными приборами может создать и использовать свое собственное микроконтроллерное устройство. Для этого он просто покупает один из вариантов модуля Ардуино, подключает его непосредственно к любому компьютеру. При этом не нужно никаких программаторов. Модуль подключается либо через последовательный (COM) порт, либо USB. Небольшая бесплатная программа, которую легко скачать с сайта проекта поможет создать простую программу и прошить ее в микроконтроллер. А помогает в этом программа-загрузчик заранее прошитая в модуль Ардуино при его производстве. Она принимает разработанную вами программу из компьютера по последовательному порту или через USB и записывает в область основной программы. А затем запускает вновь записанную программу.

Сторожевой таймер.

Сторожевой таймер (по английски WatchDog — сторожевая собака) позволяет повысить устойчивость микроконтроллера против сбоев и зависаний программы. Эта идея не нова. Когда то подобные устройства собирали в виде внешней схемы и подключали к микроконтроллеру. Микроконтроллеры AVR имеют в своем составе встроенный сторожевой таймер. Когда таймер включен, он постоянно отсчитывает специальную задержку перезапуска. Ваша программа должна быть периодически сбрасывать таймер. Для этого в системе команд микроконтроллера имеется специальная команда. Вы просто включаете в основной цикл эту команду с таким расчетом, что бы она сбрасывала сторожевой таймер как можно чаще, что бы таймер не успел досчитать до конца. Если же программа по какой либо причине зависнет, она перестанет сбрасывать сторожевой таймер, он досчитает до конца свою задержку. По окончании задержки таймер вырабатывает сигнал сброса. В результате работа программы возобновляется, причем с самого начала.

WDTON

По умолчанию этот таймер отключен. Для включения сторожевого таймера служит FUSE переключатель WDTON. Так же, как и в случае схемы контроля напряжения питания, не рекомендую включать сторожевой таймер, если ваша программа еще не опробована и не до конца отлажена. Включайте его только когда он действительно необходим. Например, если ваше устройство часто зависает из за помех или по другим причинам.

Интерфейс JTAG

JTAG (произносится «джей-таг»; сокращение от англ. Joint Test Action Group) — специализированный аппаратный интерфейс, разработанный для тестирования собранных печатных плат. Из-за широкой функциональности JTAG стал использоваться для отладки и программирования. На данный момент JTAG-интерфейс применяется при периферийном сканировании (тестироване печатных плат с установленными на них процессорами на наличие в цепях коротких замыканий, непропаек, западаний на 0 или 1). Управление JTAG-интерфейсом описывается в т. н. BSDL-файле, который предоставляется разработчиком каждой конкретной микросхемы. В большинстве случаев эти файлы находятся на сайте производителя микросхемы.

Порт тестирования (TAP — Test Access Port) представляет собой четыре или пять выделенных выводов микросхемы: ТСК, TMS, TDI, TDO. Иногда еще TRST.

Функциональное назначение этих линий:

TDI (test data input — вход тестовых данных) — вход последовательных данных периферийного сканирования. Команды и данные вводятся в микросхему с этого вывода по переднему фронту сигнала TCK;

TDO (test data output — выход тестовых данных) — выход последовательных данных. Команды и данные выводятся из микросхемы с этого вывода по заднему фронту сигнала TCK;

TCK (test clock — тестовое тактирование) — тактирует работу встроенного автомата управления периферийным сканированием. Максимальная частота сканирования периферийных ячеек зависит от используемой аппаратной части и на данный момент ограничена 25…40 МГц[источник?];

TMS (test mode select — выбор режима тестирования) — обеспечивает переход схемы в(из) режим(а) тестирования и переключение между разными режимами тестирования.
В некоторых случаях к перечисленным сигналам добавляется сигнал TRST для инициализации порта тестирования, что необязательно, так как инициализация возможна путем подачи определённой последовательности сигналов на вход TMS.

Работа средств обеспечения интерфейса JTAG подчиняется сигналам автомата управления, встроенного в микросхему. Состояния автомата определяются сигналами TDI и TMS порта тестирования. Определённое сочетание сигналов TMS и TCK обеспечивает ввод команды для автомата и её исполнение

Если на плате установлено несколько устройств, поддерживающих JTAG, они могут быть объединены в общую цепочку. Уникальной особенностью JTAG является возможность программирования не только самого микроконтроллера (или ПЛИС), но и подключённой к его выводам микросхемы флэш-памяти. Причём существует два способа программирования флэш-памяти с использованием JTAG: через загрузчик с последующим обменом данными через память процессора, либо через прямое управление выводами микросхемы.

JTAGEN

Для включения интерфейса JTAG используется FUSE переключатель JTAGEN. Запрограммированный бит JTAGEN включает канал, незапрограммированный отключает. По умолчанию канал включен. Но это не означает, что используемые под этот канал выводы микроконтроллера нельзя использовать по их основному предназначению. Канал активизируется в нужный момент программно.

Рекомендации по применению

Используйте этот интерфейс в том случае, если вам ставится такая задача. Возможно вам заказали некое устройство, которое должно управлять чем то именно по этому интерфейсу. Возможно так же, что ваш программатор работает по интерфейсу JTAG. Есть такие программаторы. Но предпочтительнее применять стандартный программатор, работающий по родному для фирмы Atmel каналу SPI.

Внутрисхемная отладка через JTAG

Еще одно применение JTAG интерфейса — это внутрисхемная отладка (на ряду с родным для Atmel внутрисхемным отладчиком debugWire). В режиме отладки через JTAG адаптер микроконтроллер подключается напрямую к среде программирвания и отладки, например к AVR Studio. После чего микроконтроллер полностью подчиняется AVR Studio и полностью работает под ее управлением. Становится доступным пошаговое выполнение кода, просмотр и изменение всех регистров, работа со всей периферией и все это в реальном микроконтроллере, а не в его программной эмуляции. Можно ставить точки останова (breakpoints) на разные события. К сожалению в AVR микроконтроллерах JTAG доступен далеко не везде, как правило контроллеры с числом ног меньше 40 и обьемом памяти меньше 16КБ интерфейса JTAG не имеют. Там, правда, часто есть debugWire.

Внутрисхемный отладчик debugWIRE

Встроенная система отладки debugWIRE использует двунаправленный однопроводный интерфейс для того, чтобы управлять процессом выполнения программы, выполнять отдельные команды центрального процессора и программировать все виды энергонезависимой памяти.

DWEN

Если FUSE-переключатель разрешения работы системы debug WIRE (DWEN) запрограммирован (т. е. равен нулю), а биты блокировки микросхемы LB1 и LB2 не запрограммированы, включается система отладки debugWIRE.

Вывод RESET в этом режиме представляет собой двунаправленную открытую шину ввода—вывода (с открытым стоком) с подключенным внутренним резистором нагрузки. Эта шина становится шлюзом для обмена информации между отлаживаемой микросхемой и схемой сопряжения с компьютером (эмулятором). Посредством этого интерфейса работа микросхемы берется под контроль отладочной следы, например AVR Studio. Среда автоматически запускает программу на выполнение, в момент остановки программы получает значение всех его регистров. Система поддерживает автоматическую простановку точек останова.

OCDEN

В некоторых моделях AVR система отладки включается при помощи FUSE переключателя OCDEN. Это общий переключатель, включающий режим отладки как по debugWIRE, так и по JTAG.

Точки останова программы

Режим debugWIRE поддерживает программные точки останова, которые формируются при помощи специальной команды BREAK, входящей в систему команд AVR. При создании точки останова в среде программирования AVR Studio в программный код, предназначенной для отладки программы автоматически в нужном месте вписывается команда BREAK. Затем измененная программа, содержащая в нужных местах команды BREAK, помещается в программную память микроконтроллера (перепрошивается). При этом команда, заменяемая на BREAK, сохраняется в памяти компьютера.Контроллер начинает выполнять программу и приостанавливается в том месте, где стоит BREAK. По команде BREAK микроконтроллер останавливается и посылает в AVR Studio сигнал подтверждения останова. Получив эту команду AVR Studio считывает значение всех регистров и отображает из в привычном нам виде.

Когда вы запускаете прерванную программу на дальнейшее выполнение, сначала выполняется сохраненная команда (интерфейс debugWIRE дает такую возможность), а затем уже продолжается выполнение команд из программной памяти микроконтроллера. Вы можете также создать точки останова вручную, помещая команду BREAK в любом месте вашей программы.

Особенностью данной технологии является то, что память программ должна перепрограммироваться каждый раз, когда изменяется размещение точек останова. Среда AVR Studio делает это автоматически посредством debugWIRE-интерфейса. Использование программных точек останова уменьшает возможное количество циклов записи/стирания для программной памяти микроконтроллера. Поэтому при отладке программ подобным способом нужно постоянно следить, чтобы отладчик не израсходовал все ресурсы вашей микросхемы.

Ограничения режима debugWIRE

Вывод микросхемы, обеспечивающий режим debugWIRE (dW), физически объединен с входом внешнего сброса (RESET). Поэтому при использовании режима debugWIRE невозможна если вам необходим внешний сброс.

Система debugWIRE позволяет программе в процессе отладки точно выполнять все функции ввода—вывода и соблюдать все временные соотношения. То есть скорость выполнения программы в режиме отладки не отличается от скорости в реальном режиме работы. Но в тот момент, когда центральный процессор остановлен, необходимо соблюдать осторожность при обращении через отладчик (AVR Studio) к различным регистрам ввода—вывода, чтобы не нарушить работу системы. Подробное описание всех правил работы с регистрами в режиме debugWIRE можно найти в специальной документации по этому режиму. Ее можно найти на сайте фирмы Atmel.

Если fuse-переключатель DWEN запрограммирован (режим debugWIRE включен), то некоторые тактовые сигналы микроконтроллера не отключаются даже в спящих режимах, что увеличивает потребляемую мощность. Поэтому, когда режим debugWire вам больше не нужен, не забывайте перевести в исходное состояние FUSE — переключатель DWEN.

Рекомендации по применению

Уверяю вас, что внутрисхемная отладка как при помощи debugWIRE, так и при помощи JTAG интерфейсов нужна только профессиональным разработчикам при разработке и доводке промышленных образцов, управляющих сложными высокотехнологичными системами. Начинающие и самодеятельные разработцики вполне обойдутся отладчиками с программной эмуляцией. Поэтому этот режим рекомендую не включать. Поэтому оставляйте DWEN (OCDEN) в незапрограммированном состоянии.

Среди любителей микроконтроллерной техники бытует мнение, что при неправильном программировании можно микросхему «убить». То есть повредить безвозвратно. Такое убеждение связано с программированием некоторых конфигурационных (Fuse) переключателей. А точнее с программированием переключателей CKSEL, определяющих режимы работы тактового генератора.

Заводская установка выбрана таким образом, что новая микросхема работает в режиме внутренней синхронизации. Если вы используете последовательное программирование, то вам достаточно лишь подать питание на микросхему и подключить ее к программатору по последовательному каналу. Однако помните: при отсутствии синхросигнала программирование микросхемы в последовательном режиме невозможно! Если в процессе программирования конфигурационных ячеек вы, случайно либо намеренно измените состояние ячеек CKSEL3…0, вы переведете микросхему в один из режимов, требующих либо наличия внешнего кварцевого (пьезо) резонатора, либо внешней RC-цепочки, либо внешнего тактового генератора. При этом, если требуемые внешние цепи отсутствуют, тактовые колебания сорвутся и дальнейшее программирование микросхемы и изменение состояния конфигурационных ячеек станет невозможным. Но не волнуйтесь! Микросхема не вышла из строя. Если микросхема перестала отзываться на команды программатора, вам придется вспомнить, какое значение вы записали в переключатели CKSEL3…0 в последнем сеансе изменения конфигурационных ячеек. Обычно бывает так: Вы забыли вообще установить их значение и нажали кнопку » Write». В этом случае все «птички» отсутствовали и во все четыре ячейки CKSEL3…0 были записаны единицы. Это соответствует внешнему кварцевому резонатору. Подключите к выводам XTAL0 и XTAL1 кварцевый резонатор и согласующие конденсаторы в соответствии с технической документацией. После этого управляемость микросхемой восстановится. Если вы записали в ячейки CKSEL3…0 другие значения, то вам придется подключить либо внешнюю RC-цепочку, либо внешний генератор. В зависимости от того, в какой режим вы случайно перевели вашу микросхему.

Второй вариант, когда микросхема кажется «убитой» — программирование назначения вывода «Reset». В некоторых микросхемах, таких, как ATmega8, ATmega325, ATmega645, ATmega329 и некоторых других функция вывода RESET может быть изменена. Для изменения функции вывода Reset используется Fuse-переключатель RSTDISBL. Если запрограммировать этот бит (сделать равным нулю) вывод Reset превращается в еще одну дополнительную линию порта ввода/вывода. Но одновременно микросхема теряет способность последовательного программирования. Это связано с тем, что в режиме последовательного программирования активно учувствует сигнал Reset (низкий уровень на этом входе не только приводит к системному сбросу, но и переводит микросхему в режим программирования). Когда же вывод становится входом порта, то такой режим невозможен, так как иначе от внешнего нулевого сигнала микросхема постоянно будет переходить в режим программирования. В таком случае микросхему можно запрограммировать лишь в параллельном режиме. Если ваш программатор работает только в последовательном режиме, то случайно прошив Fuse-переключатель RSTDISBL вы потеряете связь с микросхемой и после этого такую микросхему вернуть в обычный режим можно только при помощи программатора работающего в параллельном режиме. Кстати, если программатор имеет панельку, куда вы должны вставить микросхему для программирования, то это еще не значит, что он работает в параллельном режиме. Поддерживаемые режимы работы программатора можно узнать из его документации.

Источник: «Самоучитель разработчика устройств на микроконтроллерах AVR»

Понравилась статья? Поделиться с друзьями:

Микроконтроллеры

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

 

В тоже время микроконтроллер считается полной автономной системой.В нём есть всё: вычислительное устройство, тактовый генератор, ОЗУ, ПЗУ, таймер, цап, а также линии ввода и вывода. По сути это микрокомпьютер, который может выполнять самые простейшие задачи.


Существует шесть компаний занимающихся данной отраслью микроэлектроники: Atmel Corporation, Microchip Technology Inc, STMicroelectronics, Texas Instruments, NXP и Freescale.


Две основные из них, занимающихся продажами микроконтроллеров на свободный рынок:
Microchip Technology Inc. — США, созданная в 1987 году, выпускающая 8 битные, 16 битные и 32-битные микроконтроллеры, семейства PIC. Модели: PIC12C508, PIC14000, PIC16C432, PIC17C42…
Atmel Corporation – США. Эта компания создана в 1984 году, выпускает 8 бит, 16 бит и 32 микроконтроллеры, семейства ARM,RISC архитектуры. Первая выпущенная модель была в 1993 году на базе ядра Intel 8051. Модели: ATtiny11, ATtiny2313, AT90S2313, ATmega8, ATmega16, ATmega32, ATmega48 и т.д.


Именно на МК этих производителей, сейчас радиолюбители собирают, различные простые и сложные автоматизированные устройства.


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


Из электроники, достаточно закона ома и хотя бы умения отличать диод от резистора. Ну, если вы конечно ещё разбираетесь: в полупроводниках, в электронных компонентах, читаете принципиальные схемы, и даже собирали какие то радиоустройства — то собрать проблем, не составит.


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

Можно использовать и готовые написанные программы. Благо в интернете их полно.


Для осуществления такого простого проекта понадобятся:
Первое — собрать программатор. Он нужен для согласования микроконтроллера с компьютером (ПК), для того чтобы выполнить программирование микроконтроллера. Так как без программы, МК работать не будет. Второе — Установленная программа на ПК, которая будет прошивать МК.


Программаторы бывают разными как по схеме исполнения, так и по типу подключения к ПК. Их типы подключения бывают параллельными и последовательными.


Самый распространённый и безопасный, последовательный тип — собирается на базе буферной микросхемы, такой как 74HC244N фирмы Philips (Его точный аналог 74LS244N фирмы TEXAS INSTRUMENTS). Эта микросхема — 8 буферный шинный формирователь. Который сопрягает, каналы обмена данных (в частности программы) МК с ПК. Можно конечно обойтись и без неё, поставив обычные резисторы. Но тогда вы подвергните опасности (в виде порчи) аппаратную часть компьютера и микроконтроллера. Как это может произойти? Дело в том, что данный программатор подключается к компьютеру через LPT порт. В котором уровень сигнала передачи данных, намного выше чем, уровень порта интерфейса передачи данных(ISP) МК. Только поэтому и нужен программатор,
Сам ISP-интерфейс МК, из себя представляет пять проводников (контактных ножек МК),это: SCK, MISO, MOSI,RESET, GND. каждая из них выполняет конкретную функцию по передаче данных. MISO (Master Input Slave Output) — ввод данных, MOSI (Master Output Slave Input) — вывод данных, SCK — линия синхроимпульса скорости обмена данных, RESET — сброс, GND — общий провод(масса).


Кроме программирования через LPT(параллельный), существует ещё два варианта: через COM порт (последовательный) и универсальную последовательную шину(USB).


Программатор МК через COM порт, очень простой. Для его исполнения не нужна микросхема буфера. При использовании режима Bitbang, собирается из пяти деталей — диодов с резисторами, которые приводят уровень сигнала COM порта к необходимым МК. Описанный программатор, тоже довольно хорошо распространён, но менее безопасен, чем программатор LPT.


Теперь по поводу USB. Программаторы, сделанные для работы через данный порт, очень сложны. Для его сборки нужен прошитый микроконтроллер, которого у нас пока нет. Именно по этой и другим причинам, первый программатор лучше собирать с последовательным подключением(LPT).


Программ для работ с микроконтроллерами устанавливаемых в компьютер, достаточно много. Более удобны и функциональны: AVReAl, Pony prog, Visual avr и Ic prog. Они позволяют, редактировать, прошивать, считывать, форматировать, а также писать на них программы.


Есть ещё программы эмулирующую работу МК, такая как Proteus. Хороша тем, что позволяет проверить работу вашего будущего устройства в виртуальном виде, до того как вы будете собирать устройство на базе микроконтроллера. Заранее дав вам возможность исправить все недочёты. Само программирование происходит, путём установки МК в программатор с последующим подключением к ПК, и ни как в другой последовательности. Бывает и внутрисхемное программирование. МК позволяет прошивание, не изымая его из устройства.


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


Также прошу обратить внимание на фьюзы(FUSE)во время прошивания микроконтроллера. FUSE — это внутрисхемный программный предохранитель. От которого зависят важные системные функции МК. В разных микроконтроллерах их бывает разное количество.
Главное помните, неправильное выставление FUSE, может вывести из строя МК. Данные об их правильной настройке, вы найдёте в справке микроконтроллера.

AVR® БД | Microchip Technology

Семейство AVR ® DB основано на производительности ядра AVR с низким энергопотреблением, наборе независимых периферийных устройств мирового класса (CIP) и полностью загруженном портфеле интеллектуальных аналоговых устройств, что дает вам свободу проектирования устройств завтрашнего дня. решения сегодня. Благодаря трем встроенным операционным усилителям (операционным усилителям) это семейство не имеет себе равных по своим возможностям преобразования сигнала. Благодаря мультивольтажному вводу-выводу (MVIO) AVR DB является идеальным компаньоном микроконтроллера (MCU) в сложных проектах с несколькими доменами питания.

Это семейство микроконтроллеров использует встроенные CIP и режим работы 5 В для повышения помехоустойчивости, а также снижает задержку системы за счет использования мощной системы событий и периферийных устройств с настраиваемой пользовательской логикой (CCL). MVIO семейства AVR DB обеспечивает реальную двунаправленную связь со сдвигом уровня с устройствами в другом домене мощности. Вы можете использовать семейство AVR DB для функций управления в реальном времени в промышленном управлении, бытовой технике, автомобилестроении, Интернете вещей (IoT) и других приложениях. Наши микроконтроллеры AVR DA — отличный вариант для приложений управления с малой задержкой и емкостных сенсорных пользовательских интерфейсов.

Начало работы


Оценочный комплект AVR128DB48 Curiosity Nano — идеальная платформа для быстрого прототипирования с помощью микроконтроллеров AVR DB. Этот комплект с питанием от USB имеет встроенный программатор/отладчик, который легко интегрируется с MPLAB ® X и интегрированными средами разработки (IDE) Microchip Studio. Небольшой форм-фактор делает плату идеальной для пайки на макетной плате, или вы можете комбинировать ее с Curiosity Nano Base для плат Click ™, которая имеет несколько разъемов mikroBUS ™, поэтому вы можете легко добавлять датчики, исполнительные механизмы или коммуникационные интерфейсы из обширного ассортимента Click от Mikroelektronika. доски.

  • Проекты MPLAB X IDE
  • Проекты студии Microchip

*Эта плата основана на 48-контактном микроконтроллере AVR DB емкостью 128 КБ. Оценочный комплект с 64-контактным разъемом AVR DB недоступен.

Купить доску сейчас

Функциональная безопасность Готовность для критически важных с точки зрения безопасности приложений


Семейство AVR DB рекомендуется для критически важных с точки зрения безопасности приложений, предназначенных как для промышленных, так и для автомобильных продуктов (IEC 61508 и ISO 26262). Мы также предлагаем лицензию компилятора функциональной безопасности MPLAB XC8, которая представляет собой сертифицированный TÜV SÜD пакет компилятора, поддерживающий 8-разрядные микроконтроллеры PIC® и AVR. Такие документы, как отчеты FMEDA и руководства по технике безопасности, предоставляются по запросу. Пожалуйста, свяжитесь с вашим местным офисом продаж Microchip или вашим дистрибьютором для получения дополнительной информации.

Функции системы


Многовольтный ввод-вывод (MVIO)

Система многовольтного ввода-вывода (MVIO) питает порт C и позволяет ему работать при другом напряжении, чем остальная часть устройства. Это значительно упрощает связь с другими устройствами, которые могут работать при другом напряжении, без необходимости использования дорогостоящих внешних переключателей уровня. Если напряжение на выводе VDDIO2 падает, может быть выдано прерывание, уведомляющее основное приложение о том, что система MVIO в настоящее время обесточена и не может работать. Если вы не хотите использовать MVIO, VDDIO2 следует подключить к VDD.

Операционный усилитель (OPAMP)

Периферийное устройство преобразования аналоговых сигналов (OPAMP) содержит три операционных усилителя (операционные усилители). Эти операционные усилители реализованы с гибкой схемой подключения с использованием аналоговых мультиплексоров и резисторных цепей. Это позволяет реализовать большое количество конфигураций преобразования аналоговых сигналов, многие из которых не требуют внешних компонентов

12-разрядный АЦП, 10-разрядный ЦАП, ZCD, аналоговый компаратор Дифференциальный аналого-цифровой преобразователь (АЦП) ksps имеет выбираемые внутренние источники опорного напряжения с минимальным температурным дрейфом.

Используя систему событий, встроенный аналоговый компаратор (AC) можно подключить для запуска автономной работы других периферийных устройств, что идеально подходит для управления в реальном времени и операций с обратной связью. Выходной сигнал 10-битного цифро-аналогового преобразователя (ЦАП) можно либо отправить на вывод, либо использовать для генерации регулируемого опорного напряжения для переменного тока 9.0005

Обнаружение отказа тактового генератора (CFD)

Обнаружение отказа тактового генератора (CFD) — это схема контроля системы, которая переключается на внутренние часы, если внешний кристалл выходит из строя (останавливается). Этот дополнительный уровень безопасности позволяет устройству работать с очень точными часами. Если кристалл выходит из строя, устройство автоматически переключается на вторичный внутренний источник синхронизации и генерирует прерывание, чтобы уведомить основное приложение об остановке внешнего кристалла. Затем пользователь может определить, нужно ли останавливать приложение или переходить в безопасный режим.

Custom Logic

Периферийное устройство Custom Logic — это программируемое логическое периферийное устройство, которое можно подключить к контактам устройства, событиям или другим внутренним периферийным устройствам. Каждая справочная таблица (LUT) состоит из трех входных данных: таблицы истинности, дополнительного синхронизатора, фильтра и детектора фронтов. LUT может генерировать выходной сигнал для внутренней маршрутизации или на контакт ввода-вывода, что устраняет необходимость во внешней логике и снижает стоимость спецификации.

Система событий

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

CRC, WWDT, FMEDA, BOD, POR, VLM

Вы можете использовать встроенные функции, которые поддерживают критически важные для безопасности приложения, чтобы повысить устойчивость и надежность вашей конструкции. К ним относятся оконный сторожевой таймер (WWDT) для контроля системы, проверка циклическим избыточным кодом (CRC) для сканирования флэш-памяти и система событий для обнаружения ошибок. Другие функции включают монитор уровня напряжения (VLM), детектор снижения напряжения (BOD) и сброс при включении питания (POR) для контроля напряжения питания.

Семейное предложение (количество контактов и память)


Основные характеристики


  • Внутренний генератор 24 МГц
  • До 16 КБ SRAM
  • До 22 каналов, 12-разрядный дифференциальный аналого-цифровой преобразователь (АЦП) со скоростью 130 кбит/с
  • 10-битный цифро-аналоговый преобразователь (ЦАП) 350 кбит/с
  • Формирование аналогового сигнала (OPAMP)
  • Аналоговый компаратор (AC) с масштабируемым опорным входом
  • До трех детекторов пересечения нуля (ZCD)
  • Проверка циклическим избыточным кодом (CRC) сканирование

 

  • Обнаружение отказа часов
  • 16-разрядные часы реального времени (RTC) и таймер периодических прерываний
  • Периферийное устройство с настраиваемой пользовательской логикой (CCL)
  • До 10 периферийных устройств системы обработки событий
  • Конфигурируемое внутреннее опорное напряжение
  • USART/SPI/двухрежимный двухпроводной интерфейс (TWI)
  • Ввод/вывод с несколькими напряжениями на порте C
  • Допустимые входы 1,8 В, выбираемые для всех входных контактов

Читать далее

Продукты базы данных AVR


Загрузка

Просмотреть все параметры

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

AVR® DA | Microchip Technology

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

Семейство AVR ® DA обеспечивает функции управления в реальном времени и простое емкостное касание для маломощных микроконтроллеров AVR (MCU). Он сочетает в себе новейшие основные независимые периферийные устройства (CIP) с надежным портфелем интегрированных аналоговых устройств для создания устройства, которое превосходно работает не только как автономный процессор, но и как сопутствующий микроконтроллер в конструкциях, требующих точности. Высокая плотность памяти семейства AVR DA делает эти микроконтроллеры хорошо подходящими как для проводных, так и для беспроводных функций связи с интенсивным стеком.

В этом семействе используются новейшие CIP с функциями пониженного энергопотребления и работой от 5 В для повышения помехоустойчивости. Система событий и периферийные устройства с настраиваемой пользовательской логикой (CCL), а также интеллектуальные аналоговые периферийные устройства, такие как 12-разрядный дифференциальный аналого-цифровой преобразователь (АЦП), обнаружение пересечения нуля (ZCD), 10-разрядный цифро-аналоговый преобразователь (DAC) и периферийный сенсорный контроллер (PTC) последнего поколения с технологией Driven Shield делают семейство AVR DA идеальным для приложений управления с малой задержкой и емкостных сенсорных пользовательских интерфейсов. Семейство AVR DA предназначено для использования емкостных сенсорных датчиков и функций управления в реальном времени в промышленном управлении, производстве бытовой техники, автомобилестроении, Интернете вещей (IoT) и других приложениях. Наши микроконтроллеры AVR DB — отличный вариант для двунаправленной связи со сдвигом уровня с устройствами в другом домене мощности.

Начало работы


Оценочный комплект AVR128DA48 Curiosity Nano* (DM164151) — идеальная платформа для быстрого прототипирования с помощью новых микроконтроллеров tinyAVR. Комплект с питанием от USB имеет встроенный программатор/отладчик, который легко интегрируется с MPLAB ® X и Microchip Studio (IDE). Небольшой форм-фактор делает плату идеальной для пайки на макетной плате, или вы можете комбинировать ее с базой Curiosity Nano Base для плат Click, имеющей несколько разъемов mikroBUS™, так что вы можете легко добавлять датчики, приводы или коммуникационные интерфейсы из обширного ассортимента Click от Mikroelektronika. доски.

  • Проекты MPLAB X IDE
  • Проекты студии Microchip

*Эта плата основана на 48-контактном микроконтроллере AVR DA 128 КБ. Оценочный комплект с 64-контактным AVR DA недоступен.

Купить доску сейчас

Функциональная безопасность Готовность для критически важных с точки зрения безопасности приложений


Семейство AVR DA хорошо подходит для критичных к безопасности приложений, таких как бытовая техника (IEC 60730), автомобильная (ISO 26262) и промышленная (IEC 61508) продукция. Мы бесплатно предлагаем сертифицированную UL библиотеку IEC 60730 класса B для бытовой техники в дополнение к важным вспомогательным материалам по безопасности, таким как отчеты о характере отказа, его последствиях и диагностическом анализе (FMEDA) и руководство по безопасности. Отчеты FMEDA и руководство по безопасности сертифицированы SGS TÜV Saar по ASIL B Ready, и к 2022 году мы добавим библиотеку диагностики программного обеспечения для сертификации по ISO 26262. К концу 2021 года у нас будут отчеты FMEDA для IEC 61508 и соответствующее руководство по безопасности.

Мы также предлагаем лицензию компилятора функциональной безопасности MPLAB XC8, которая представляет собой сертифицированный TÜV SÜD® пакет компилятора, поддерживающий микроконтроллеры PIC ® и AVR, который включает квалификационную документацию для MPLAB X Integrated Development Environment (IDE) и программистов MPLAB.

Компоненты системы


12-разрядный АЦП, 10-разрядный ЦАП, ZCD, аналоговый компаратор.

. Используя систему событий, встроенный аналоговый компаратор (AC) можно подключить для запуска автономной работы других периферийных устройств, что идеально подходит для управления в реальном времени и операций с обратной связью. Выходной сигнал 10-битного цифро-аналогового преобразователя (ЦАП) можно либо отправить на вывод, либо использовать для генерации регулируемого опорного напряжения для переменного тока 9.0005

Система событий

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

Custom Logic

Периферийное устройство Custom Logic — это программируемое логическое периферийное устройство, которое можно подключить к контактам устройства, событиям или другим внутренним периферийным устройствам. Каждая справочная таблица (LUT) состоит из трех входных данных: таблицы истинности, дополнительного синхронизатора, фильтра и детектора фронтов. LUT может генерировать выходной сигнал для маршрутизации внутрь или на контакт ввода-вывода. Это устраняет необходимость во внешней логике и снижает стоимость спецификации.

Периферийный сенсорный контроллер (PTC)

Периферийный сенсорный контроллер (PTC) — это автономный блок, который получает и обрабатывает емкостные сенсорные сигналы. Он поддерживает кнопки, ползунки, колеса и конфигурации 2D-поверхностей в дополнение к датчику приближения и не требует дополнительных внешних компонентов. Этот CIP предлагает широкий спектр сенсорных функций, таких как взаимная и собственная емкость, фильтрация шума, устойчивость к влаге, автоматическая калибровка по температуре и напряжению, а также пробуждение при касании и/или приближении из спящего режима.

Режим ожидания, ожидания, отключения питания

Режимы ожидания, ожидания, отключения питания с низким энергопотреблением позволяют оптимизировать приложение для производительности устройства и энергопотребления. Функция отключения периферийных модулей (PMD) позволяет отключать неиспользуемые периферийные устройства по отдельности, что еще больше снижает энергопотребление.

CRC, WWDT, BOD, POR, VLM

Вы можете использовать встроенные функции, которые поддерживают приложения, критически важные для безопасности, чтобы повысить надежность и надежность вашей конструкции. К ним относятся оконный сторожевой таймер (WWDT) для контроля системы, проверка циклическим избыточным кодом (CRC) для сканирования флэш-памяти и система событий для обнаружения ошибок. Другие функции включают монитор уровня напряжения (VLM), детектор снижения напряжения (BOD) и сброс при включении питания (POR) для контроля напряжения питания.

Создавайте современные приложения с помощью емкостного сенсорного экрана


PTC предлагает встроенное оборудование для емкостного измерения прикосновения к датчикам, которые функционируют как кнопки, ползунки, колесики и 2D-поверхности. Он предназначен для выполнения емкостных сенсорных датчиков независимо от ЦП, что обеспечивает низкую загрузку ЦП и снижение энергопотребления.

Семейство AVR DA поставляется с PTC последнего поколения с технологиями Driven Shield+ и Boost Mode. Технология Driven Shield+ обеспечивает повышенную помехоустойчивость, водостойкость и повышенную чувствительность, а режим Boost обеспечивает повышенное отношение сигнал/шум (SNR) для еще большей устойчивости к шуму или сокращение времени захвата сенсорного экрана для обеспечения более чувствительных емкостных сенсорных конструкций.

  • Низкая загрузка ЦП при 5% загрузке ЦП при сканировании, 10 каналов при частоте сканирования 50 мс
  • Поддержка перчаток для интерфейса, предназначенного для холодных или суровых условий
  • Технология Driven Shield+ для защиты от влаги и надежности даже при попадании капель воды
  • Ускоренный режим увеличивает отношение сигнал-шум или сокращает время обнаружения касания
  • Опции сенсорного интерфейса:
    • Кнопки, ползунки и колесики
    • 2D-поверхность
    • Датчик приближения
  • Комбинированные конфигурации датчиков с:
    • До 46 собственных емкостных датчиков
    • До 529 датчиков взаимной емкости
  • Автоматическая калибровка с дрейфом нуля в зависимости от температуры и напряжения

Читать далее

Семейное предложение (количество контактов и память)


Основные характеристики


  • Внутренний генератор 24 МГц
  • До 16 КБ SRAM
  • До 22 каналов, 12-разрядный дифференциальный аналого-цифровой преобразователь (АЦП) со скоростью 130 кбит/с
  • 10-битный цифро-аналоговый преобразователь (ЦАП) 350 кбит/с
  • Аналоговый компаратор с масштабируемым опорным входом
  • 16-разрядные часы реального времени (RTC) и таймер периодических прерываний

 

  • Периферийное устройство с настраиваемой пользовательской логикой (CCL)
  • Периферийная система обработки событий до 10 каналов
  • Конфигурируемое внутреннее опорное напряжение
  • USART/SPI/двухрежимный двухпроводной интерфейс (TWI)
  • До трех детекторов пересечения нуля (ZCD)
  • Проверка циклическим избыточным кодом (CRC) сканирование

Читать далее

Простое прототипирование и оценка


Оценивать и создавать прототипы пользовательских интерфейсов с помощью кнопок, ползунков, колесиков и 2D-жестов легко, используя AVR128DA48 Curiosity Nano в сочетании с платой адаптера Curiosity Touch и одним из QTouch 9. 0003 ® Наборы расширения Xplained Pro, перечисленные ниже.

Читать далее

Номер детали: DM16415

Выведите свою следующую идею на рынок с помощью макетной платы, которую можно носить в кармане. Оценочный комплект AVR128DA48 Curiosity Nano с полной программой и возможностями отладки обеспечивает полную поддержку вашего следующего проекта.

купить сейчас

Номер детали: AC164162

Оценочный комплект Microchip Curiosity Nano Base для плат Click boards™ представляет собой аппаратную платформу расширения, упрощающую соединение между комплектами Curiosity Nano и платами расширения, такими как модули mikroBUS Click и платы расширения Xplained Pro.

Номер по каталогу: AC80T88A

Эта плата предназначена для использования в сочетании с платой AVR128DA48 Curiosity Nano и комплектами расширения QTouch Xplained Pro Extension Kit, что позволяет легко оценить сенсорные характеристики микроконтроллеров AVR DA.

купить сейчас

Номер детали: ATQT2-XPRO

Сенсорное управление Применение: 2D-поверхности

Эта плата имеет сенсорную поверхность 4 × 4 канала и синюю светодиодную матрицу 7 × 7 для обеспечения визуальной обратной связи при восприятии прикосновения.

купить сейчас

Номер детали: ATQT3-XPRO

Сенсорный экран Применение: кнопки

Эта плата расширения оснащена 12-кнопочной цифровой панелью с взаимной емкостью и светодиодной матрицей 4 × 4 для обеспечения визуальной обратной связи при прикосновении.

купить сейчас

Номер по каталогу: ATQT4-XPRO

Сенсорный экран Применение: датчик приближения и кнопки

На этой плате имеются две сенсорные кнопки, два датчика приближения и светодиодные индикаторы для оценки периферийного сенсорного контроллера (PTC) в режиме собственной емкости.

купить сейчас

QT5 Xplained Pro Extension Kit

Номер детали: ATQT5-XPRO

Сенсорное приложение: изогнутый слайдер и кнопки

Светодиоды для демонстрации того, как создать привлекательный сенсорный интерфейс с помощью периферийного сенсорного контроллера (PTC).

купить сейчас

Комплект расширения QT7 Xplained Pro

Артикул: ATQT7-XPRO

Сенсорное управление Применение: водонепроницаемые кнопки и ползунки технологии для создания прочной и водостойкой конструкции.

купить сейчас

Набор удлинителей QT8 Xplained Pro

Номер по каталогу: AC164161

Touch Применение: водостойкие 2D-поверхности

Эта плата расширения оснащена двухмерным датчиком касания 5 × 5 с технологией Driven Shield и 11 светодиодами для индикации положения касания. Он демонстрирует надежную водостойкость наших емкостных сенсорных микроконтроллеров.

купить сейчас

T10 Xplained Pro Extension Kit

Артикул: AC47h33A

Touch Применение: кнопки и слайдер Комплект демонстрирует водонепроницаемость, скорость и помехоустойчивость на четырех сенсорных кнопках и четырехсегментном ползунке. Плата T10 Explained Pro поддерживает технологию Boosted Touch, что позволяет удвоить отношение сигнал-шум (SNR) во взаимных проектах или сократить время сбора данных в четыре раза.

купить сейчас

Продукты семейства AVR DA


Загрузка

Просмотреть все параметры

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

Конфигурация выводов, архитектура и ее применение

Усовершенствованная версия микропроцессора представляет собой микроконтроллер, который включает в себя ЦП, контроллер прерываний, ОЗУ, ПЗУ, блок ввода-вывода и т. д. Микроконтроллер в основном используется для работы высокопроизводительных скорость обработки сигналов во встроенной системе. Таким образом, он работает как основной компонент при разработке встроенной системы. Доступны различные типы микроконтроллеров, которые используются в соответствии с такими требованиями, как 8051, PIC, AVR и т. д. Поэтому в этой статье дается краткая информация об одном из типов микроконтроллеров, а именно о Микроконтроллер AVR .

Микроконтроллер AVR был произведен корпорацией Atmel в 1996 году, а его архитектура была разработана компанией «Alf-Egil Bogen & Vegard Wollan». Название этого микроконтроллера было взято от его разработчиков, а именно микроконтроллера Alf-Egil Bogen & Vegard Wollan RISC. Первым микроконтроллером на основе архитектуры AVR является AT90S8515 , а первым коммерческим микроконтроллером был AT90S1200 .

AVR от Atmel — одно из самых популярных семейств микроконтроллеров на сегодняшний день. Причиной такой огромной популярности является относительная простота использования и низкая стоимость микроконтроллеров, которые можно приобрести в 8-контактных корпусах по цене от 1 до 10 долларов.

Усовершенствованная версия микрокомпьютера, интегрированного в крошечный чип, известна как микроконтроллер AVR. Этот микроконтроллер включает в себя процессор, программируемые периферийные устройства ввода/вывода и память. Микроконтроллер AVR обеспечивает цифровое управление любыми электрическими, автомобильными или механическими системами, промышленными предприятиями, различными устройствами, электронными гаджетами и т. д. Эти микроконтроллеры доступны в 8-, 16- и 32-разрядных ИС. Итак, наиболее часто используемые микроконтроллеры AVR: Микроконтроллеры ATmega8, ATmega16, ATmega32 и ATmega328.

Микроконтроллер AVR

Микроконтроллеры AVR доступны в 3 категориях, таких как TinyAVR, MegaAVR и XmegaAVR.

  • Микроконтроллеры TinyAVR доступны в небольших размерах, имеют меньший объем памяти и предназначены только для более простых приложений.
  • Микроконтроллеры
  • MegaAVR очень известны, потому что они имеют до 256 КБ памяти, включают максимальное количество периферийных устройств и используются в умеренных и сложных приложениях.
  • XmegaAVR часто используется для сложных приложений, где требуется высокая скорость и большой объем памяти для программ.

AVR поддерживает широкий диапазон наборов инструкций, включая оригинальный набор инструкций ATmel THUMB, а также обычный набор инструкций ARM. Платы Arduino используют микроконтроллеры серии ATMEL ATmega в качестве своих

.

Наименование серии

Количество контактов Флэш-память

Специальное предложение

ТиниАВР

от 6 до 32 от 0,5 до 8 КБ Маленький размер

МегаАВР

от 28 до 100 4 до 256 КБ

Расширенные периферийные устройства

XмегаАВР от 44 до 100 от 16 до 384 КБ

Включает DMA и систему событий.

Особенности микроконтроллера AVR

Особенности микроконтроллера AVR включают следующее.

  • Флэш-память 16 КБ. SRAM составляет 1 КБ.
  • 10-разрядный • 8-канальный АЦП.
  • EPROM составляет 512 байт.
  • Интернет-провайдер или внутрисистемный программатор.
  • Серийный USART.
  • DIP-пакет.
  • 16-битный таймер или счетчик -1.
  • 8-битные таймеры или счетчики -2.
  • Цифро-аналоговый компаратор.
  • Главный или подчиненный последовательный интерфейс SPI.
  • SPI-интерфейс.
  • Доступен в 40-контактном исполнении.
  • каналов ШИМ-4.
  • Программируемый последовательный USART.
  • Программируемый сторожевой таймер с отдельным встроенным генератором.
  • ЦП ARM

Типы микроконтроллеров AVR

Доступны четыре типа микроконтроллеров AVR, таких как микроконтроллеры ATmega8, ATmega16, ATmega32 и ATmega328, где каждый микроконтроллер и его функции обсуждаются ниже.

Микроконтроллер Atmega8 AVR

Этот микроконтроллер представляет собой 28-выводную ИС, включая внутреннюю SRAM-1 КБ, флэш-память-8 КБ и два внешних прерывания. Этот микроконтроллер основан на архитектуре RISC и разработан компанией Microchip. Этот микроконтроллер доступен в трех корпусах PDIP, TQFP и MLF, где первый пакет включает 28 контактов, а остальные два пакета будут доступны с 32 контактами на каждом модуле.

Atmega8

Память программ или флэш-память этого микроконтроллера составляет 8 КБ, которые используются для хранения программного кода и постоянных настроек. Этот микроконтроллер используется для создания электрических и электронных проектов.

Микроконтроллер Atmega16 AVR

Это высокопроизводительный 8-разрядный микроконтроллер из семейства Mega AVR компании Atmel. Этот микроконтроллер включает в себя 40 контактов на основе усовершенствованной архитектуры RISC, включая 131 мощную инструкцию. Так что это один из самых используемых и дешевых микроконтроллеров, потому что он имеет несколько контактов и функций.

Atmega16

Имеет программируемую флэш-память — 16 КБ, 1 КБ статической ОЗУ и 512 байт EEPROM. Этот тип микроконтроллера включает в себя 32 регистра общего назначения и набор инструкций, которые подключены непосредственно к АЛУ и позволяют получить доступ к 2 отдельным регистрам в рамках одной инструкции, которая выполняется за один цикл CLK.

Срок службы флэш-памяти, а также EEPROM составляет около 10 КБ и 100 КБ соответственно. Большинство инструкций в этом микроконтроллере выполняются за один машинный цикл, и он может работать на максимальной частоте 16 МГц.

Микроконтроллер Atmega16 AVR используется в коммерческих продуктах и ​​небольших промышленных машинах. Этот микроконтроллер также может использоваться для измерения рабочего цикла и частоты внешнего устройства. -мощный, высокопроизводительный микроконтроллер на основе RISC. Этот контроллер работает от 1,8 до 5,5 вольт.

Atmega32

Этот микроконтроллер имеет различные функции, например, он сочетает в себе 32 КБ флэш-памяти ISP с 1 КБ EEPROM, 2 КБ SRAM, возможности чтения во время записи, линии ввода/вывода общего назначения, рабочие регистры общего назначения-32 , интерфейс JTAG для встроенной отладки или программирования, 3 настраиваемых таймера/счетчика, включая режимы сравнения, последовательный программируемый USART, последовательный порт SPI, внутренние и внешние прерывания, универсальный последовательный интерфейс USI с детектором условий запуска, программируемый сторожевой таймер включая внутренний генератор, 10-битный 8-канальный аналого-цифровой преобразователь и т. д.

Микроконтроллер Atmega32 AVR используется в системах управления двигателем, DSP, периферийных интерфейсных системах, системах контроля температуры, измерениях аналоговых сигналов и различных встроенных системах, таких как торговые автоматы, кофемашины и т. д.

Микроконтроллер Atmega328 AVR

Микроконтроллер Atmega328 AVR высокопроизводительный и маломощный 8-разрядный микрочип на основе RISC, который просто сочетает в себе 32 КБ флэш-памяти ISP с возможностями чтения во время записи. Рабочее напряжение этого микроконтроллера AVR составляет от 1,8 до 5,5 вольт.

Микроконтроллер Atmega328 AVR

Основные характеристики микроконтроллера Atmega328 AVR в основном включают EEPROM-1 КБ, SRAM-2 КБ, 32 регистра общего назначения, 23 линии ввода-вывода общего назначения, гибкий таймер или счетчики-3, включая сравнение режимы, последовательный программируемый USART, внутренние и внешние прерывания, последовательный порт SPI, 2-проводной последовательный интерфейс, 10-битный 6-канальный аналого-цифровой преобразователь, программируемый сторожевой таймер, включая внутренний генератор, и пять программно выбираемых режимов энергосбережения.

Применение микроконтроллера Atmega328 AVR в основном относится к автономным системам и различным электронным проектам, где требуется маломощная, простая и недорогая микросхема. Это самый популярный контроллер AVR, поэтому он используется в платформах разработки Arduino, таких как различные платы ARDUINO, такие как модели Arduino Uno, Arduino Nano и Arduino Pro Mini.

Схема контактов микроконтроллера AVR

Конфигурация контактов микроконтроллера AVR Atmega 32 показана ниже. Этот микроконтроллер включает в себя четыре порта порт-A, порт-B, порт-C и порт-D. Порт-A в основном включает в себя контакты от PA7 до PA0, порт-B включает в себя контакты от PB7 до PB0, порт-C включает в себя от PC7 до PC0, а порт-D включает в себя от PD7 до PD0.

Конфигурация контактов микроконтроллера AVR

Порт-A (PA7-PA0)

В приведенном выше микроконтроллере AVR контакты в порту-A в основном включают PA7-PA0, который работает как 8-битный двунаправленный порт ввода-вывода. , а также аналоговые входы аналого-цифрового преобразователя, если этот аналого-цифровой преобразователь не используется. Эти контакты обеспечивают внутренние подтягивающие резисторы.

Выходные данные буферов порта A в основном включают характеристики симметричного привода, включая высокую пропускную способность как приемника, так и источника. После того, как выводы порта A используются в качестве входов от PA0 до PA7, они внешне подтянуты к низкому уровню, и тогда они будут обеспечивать ток, если внутренние подтягивающие резисторы включены. Выводы в этом порту имеют три состояния, когда включается состояние сброса, даже если CLK не работает.

Порт B (PB7-PB0) и порт D (PD7-PD0)

Контакты в этих двух портах в основном включают контакты от PB7 до PB0 и PD7-PD0. Эти порты представляют собой 8-битные двунаправленные порты ввода-вывода, включая внутренние подтягивающие резисторы. Выход этих двух портовых буферов в основном включает в себя симметричные характеристики привода, в том числе высокую пропускную способность как приемника, так и истока. Как и на входах, контакты этого порта, которые имеют низкий уровень извне, будут обеспечивать ток, если активируются резисторы. Выводы этих двух портов находятся в тройном состоянии всякий раз, когда условие сброса становится активным, даже если CLK не работает.

Порт C (PC7-PC0)

Контакты в порту C в основном включают от PC7 до PC0, и это 8-битный двунаправленный порт ввода/вывода. Если интерфейс JTAG (Joint Test Action Group) разрешен, подтягивающие резисторы на таких контактах, как PC3 (TMS), PC2 (TCK) и PC5 (TDI), будут срабатывать, даже если произойдет сброс.

Вывод TD0 находится в трех состояниях, если TAP не указывает, что введены данные переключения. Порт C также выполняет функции интерфейса JTAG и другие специальные функции ATmega32.

VCC: это цифровой контакт подачи напряжения.
GND: это контакт GND.
RESET

Это контакт RESET, используемый для установки микроконтроллера ATmega32 в его основное значение. Во время запуска приложения этот вывод должен быть установлен на два оборота машины.

XTAL1

Это входной контакт для инвертирующего усилителя генератора, а также для внутренней рабочей схемы CLK.

XTAL2

Этот контакт является выходом инвертирующего усилителя генератора.

AVCC

Это контакт подачи напряжения для порта A, а также аналого-цифрового преобразователя. Подключение этого вывода должно быть выполнено извне к VCC, даже если аналого-цифровой преобразователь не используется. Если используется аналого-цифровой преобразователь, он должен быть подключен к VCC с фильтром нижних частот.

AREF

Это аналоговый эталонный контакт, используемый для аналого-цифрового преобразователя.

Архитектура микроконтроллера AVR

Архитектура микроконтроллера AVR основана на усовершенствованном RISC и включает 32 x 8-битных регистра общего назначения. За один цикл CLK этот микроконтроллер может получить входные данные из двух регистров, чтобы подключить их к АЛУ для запрошенной операции и вернуть результат в произвольный регистр. Здесь АЛУ выполняет арифметические и логические операции над входными данными из регистра.

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

Архитектура микроконтроллера AVR включает в себя различные строительные блоки, и каждый блок поясняется на блок-схеме микроконтроллера AVR, показанной ниже.

Архитектура микроконтроллера AVR

Порты ввода-вывода

Микроконтроллер AVR имеет четыре 8-битных порта ввода-вывода, такие как PORT-A, PORT-B, PORT-C и PORT-D.

Внутренний калиброванный генератор

Микроконтроллер AVR включает внутренний генератор, используемый для управления его CLK. Этот микроконтроллер настроен на работу с внутренним калиброванным генератором с частотой 1 МГц. Таким образом, максимальная частота внутреннего генератора составляет 8 МГц.

Интерфейс АЦП

Этот микроконтроллер включает 8-канальный АЦП с 10-разрядным разрешением. Основной функцией этого АЦП является считывание аналогового входа.

Таймеры/счетчики

Микроконтроллер включает в себя два 8-разрядных и один 16-разрядный таймер/счетчик. Основная функция таймеров в этом контроллере — генерировать точные действия, такие как временные задержки, создаваемые между двумя операциями.

Сторожевой таймер

В этом микроконтроллере присутствует сторожевой таймер с внутренним генератором. Основная функция этого заключается в постоянном мониторинге и сбросе контроллера, если код перехватывается во время выполнения в течение определенного интервала времени.

Прерывания

Этот микроконтроллер содержит 21 прерывание, из которых 16 внутренних, а остальные внешние. Здесь внутренние прерывания поддерживают различные периферийные устройства, такие как АЦП, USART, таймеры и т. д. серийно.

Регистры общего назначения

Этот микроконтроллер имеет 32 регистра общего назначения, где эти регистры напрямую связаны с АЛУ ЦП.

Память

Память этого микроконтроллера включает три различных раздела

Флэш-ЭСППЗУ

Этот тип памяти полезен для хранения программы, загруженной пользователем в микроконтроллер AVR. Эта программа может быть просто электрически удалена как единое целое. Эта память является энергонезависимой, что означает, что при отключении питания программа не будет стерта. Этот микроконтроллер включает 16 КБ внутрисистемно программируемой флэш-памяти EEPROM.

EEPROM с байтовой адресацией

EEPROM с байтовой адресацией — это энергонезависимая память, которая в основном используется для хранения данных. Этот микроконтроллер включает EEPROM-512 байт, поэтому эта память может быть просто полезна для хранения кода замка, если мы разрабатываем приложение для электронного дверного замка.

SRAM

SRAM означает статическую оперативную память, которая является энергозависимой памятью микроконтроллера AVR, поэтому данные будут потеряны при отключении питания. Этот микроконтроллер включает в себя 1 КБ внутренней памяти SRAM. Небольшая часть SRAM зарезервирована для регистров общего назначения, которые используются ЦП, а также некоторыми другими периферийными подсистемами.

ISP

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

SPI

Термин SPI означает последовательный периферийный интерфейс, который в основном используется для последовательной связи между двумя разными устройствами на общем источнике CLK. Скорость передачи данных SPI выше, чем у USART.

TWI

TWI — это двухпроводной интерфейс, который можно использовать для подключения устройств к сети, поэтому несколько устройств можно просто подключить над этим интерфейсом, чтобы сформировать эту сеть, чтобы передача данных могла выполняться одновременно устройствами с собственный уникальный адрес.

ЦАП

ЦАП или цифро-аналоговый преобразователь в микроконтроллере используется для обратного действия АЦП. Этот преобразователь просто используется всякий раз, когда требуется изменить сигнал с цифрового на аналоговый.

Преимущества и недостатки

К преимуществам микроконтроллера AVR r относятся следующие.

  • Эти микроконтроллеры отличаются высокой скоростью, высокой производительностью и меньшим энергопотреблением.
  • Отменяет машинный цикл для выполнения конвейерной операции как с циклом CLK, так и с циклом команд.
  • Очень прост в использовании и дешевле.
  • Высокая производительность.
  • Меньший вес.
  • Легко доступен на рынке.
  • Простота программирования и настройки.

К недостаткам микроконтроллера AVR относятся следующие.

  • Он имеет единственный источник, поэтому доступен только от Atmel.
  • Эти микроконтроллеры имеют довольно низкую мощность.
  • Его максимальная скорость составляет около 20 MIPS.
  • Мощность процессора и память ограничены, поэтому они не требуются для каждого приложения.

Приложения

приложений микроконтроллера AVR включают следующее.

  • Микроконтроллер AVR в основном используется во встроенных системах для высокоскоростной обработки сигналов.
  • Эти микроконтроллеры используются в сенсорных экранах, домашней автоматизации, медицинских устройствах, обороне, автомобилях и т. д.
  • Этот микроконтроллер может использоваться во многих типах проектов, таких как сбор данных, управление движением, для обнаружения сигналов, интерфейс GPS, GSM, двигатели, дисплеи на ЖК-дисплее, разработка беспилотных летательных аппаратов и т. д.

Перейдите по этой ссылке, чтобы получить MCQ для микроконтроллера AVR

Какие проекты можно создавать с помощью микроконтроллера AVR?

Ответ: С микроконтроллером AVR можно делать все что угодно! Некоторые примеры включают роботов, световые мечи, дверные звонки и многое другое!

Что такое AVR?

A: AVR означает виртуальный микроконтроллер Atmel. Это серия микроконтроллеров, разработанная Atmel, которая является полупроводниковой компанией, базирующейся в Соединенных Штатах. Компания была основана в 1984 и с тех пор стала одним из крупнейших производителей микроконтроллеров, продавая более 100 миллионов продуктов в год. Их флагманский продукт — линейка микроконтроллеров AVR, которые используются во всем, от бытовой техники до потребительской электроники.

Зачем использовать микроконтроллеры AVR?

Основная причина, по которой используются микроконтроллеры AVR, заключается в том, что они дешевы и просты в использовании. Они могут быть запрограммированы с использованием языка программирования C, что делает их простыми в использовании. Кроме того, они очень маленькие по размеру, что делает их очень портативными и легкими.

Как запрограммировать микроконтроллер AVR?

Для программирования микроконтроллера AVR вам необходимо подключить к нему свой ПК или ноутбук с помощью USB-кабеля или модуля Bluetooth, чтобы вы могли загрузить на него код со своего компьютера. Затем вы должны загрузить этот код в микроконтроллер, используя программное обеспечение для программирования, такое как Atmel Studio или Arduino IDE.

В чем разница между AVR и Arduino?

Arduino — это микроконтроллер, а AVR — семейство микроконтроллеров. Однако они оба основаны на одной и той же архитектуре ARM и совместимы друг с другом.

Итак, это все краткая информация о микроконтроллере AVR — архитектуре и работе с приложениями. Этот микроконтроллер выполняет большую часть инструкций в течение одного цикла выполнения. Эти микроконтроллеры в четыре раза быстрее по сравнению с микроконтроллерами PIC, потому что они потребляют мало энергии, а также работают в различных режимах энергосбережения. Вот вопрос к вам, что означает AVR?

Что такое микроконтроллер AVR? Основы микроконтроллеров AVR

В этой статье вы узнаете, что такое микроконтроллер AVR, каковы его особенности, как выбрать подходящий микроконтроллер AVR, как запрограммировать микроконтроллер AVR в программном обеспечении и так далее.


Каталог

I. Что такое микроконтроллер AVR?

II. Особенности микроконтроллера AVR

III. Выбор однокристального микрокомпьютера серии AVR

IV. Область применения микроконтроллера AVR

V. Введение в экспериментальные инструменты и оборудование, используемые в AVR

VI. Программное обеспечение для программирования микроконтроллеров AVR

Часто задаваемые вопросы


I. Что такое микроконтроллер AVR?

Микроконтроллер AVR представляет собой усовершенствованный 8-битный встроенный набор команд Flash RISC, разработанный ATMEL. По сравнению с CISC, RISC не просто упрощает команду, но делает структуру компьютера более простой и разумной для повышения скорости работы. Конструкция поглощает преимущества микроконтроллера 8051 и PIC и имеет возможность выполнять одну команду за один такт. Скорость может достигать 1Мипс/МГц. Микроконтроллеры AVR широко используются во внешних устройствах компьютеров, промышленном управлении в реальном времени, контрольно-измерительных приборах, коммуникационном оборудовании, бытовой технике и других областях.

В этом видеоролике показано, как создать собственную плату для разработки AVR и как использовать ее в своих проектах.

Аппаратная структура AVR использует компромиссную стратегию 8-битного и 16-битного компьютера, то есть стек памяти локальных регистров (32 файла регистров) и единую схему высокоскоростного ввода/вывода (т.е. регистр захвата ввода, вывод сравнивает совпадающие регистры и соответствующую логику управления), улучшая скорость выполнения инструкции, преодолевая явление узкого места и улучшая функцию. В то же время это снижает стоимость управления внешним оборудованием, упрощает аппаратную структуру и снижает стоимость. Таким образом, микроконтроллер AVR представляет собой однокристальный микрокомпьютер с высокой производительностью и ценой, в котором достигнут оптимальный баланс между разработкой аппаратного и программного обеспечения, скоростью, производительностью и стоимостью.

Внедрение микроконтроллера AVR полностью ломает этот старый шаблон проектирования, отменяет машинный цикл и отказывается от компьютера со сложными инструкциями (CISC) для использования метода полных инструкций; Сокращение набора инструкций, использование слов в качестве единицы длины инструкции, организация богатых операндов и кодов операций в одном слове (большинство однотактных инструкций в наборе порядка одинаковы), а контрольный период короткий, и инструкция может быть prefetched, реализуя потоковую операцию, поэтому вы можете выполнять инструкции на высокой скорости. Конечно, требуется высокая надежность.


II. Особенности микроконтроллера AVR

1. Высококачественная встроенная флэш-память программ, которую можно многократно записывать и стирать, поддерживающая ISP и IAP, что упрощает отладку, разработку, производство и обновление продукта. ЭСППЗУ с длительным сроком службы позволяет сохранять ключевые данные в течение длительного времени и избегать потери мощности. Оперативная память большого объема в микросхемах поддерживает разработку системных программ на языках высокого уровня.

2. Высокая скорость, низкое энергопотребление, функция SLEEP (энергосбережение во время сна). Каждая инструкция может выполняться на частоте 50 нс/20 МГц, а потребляемая мощность составляет от 1 до 2,5 мА (типичное потребление энергии при выключенном WDT составляет 100 нА), AVR (с функцией предварительной выборки инструкций) на основе концепции Гарвардской структуры. То есть есть разные памяти и шины для хранения программ и данных, при выполнении инструкции следующая инструкция предварительно удаляется из памяти программ. Это позволяет выполнять инструкции в течение каждого тактового цикла. Микроконтроллер AVR может работать при широком напряжении (2,7 В ~ 5 В), обладает сильной способностью защиты от помех и снижает использование общего 8-битного компьютерного программного обеспечения для защиты от помех и использования оборудования.

3. Все линии ввода/вывода однокристального компьютера AVR имеют регулируемый подтягивающий резистор. Входные и выходные характеристики параллельного порта ввода-вывода аналогичны характеристикам выхода PIC HI/LOW и входу с высоким импедансом h2-Z с тремя состояниями, а также могут быть установлены аналогично серии 8051 с внутренним высоким сопротивлением в качестве входной функции. Он может быть установлен как вход/выход или изначально может быть установлен как вход с высоким сопротивлением. Таким образом, ресурсы ввода/вывода являются гибкими, мощными и полностью используемыми. Ввод/вывод AVR может точно отражать ввод/вывод ввода/вывода.

4. Микроконтроллер AVR имеет множество независимых делителей тактовой частоты для URAT, IIC, SPI. Предварительный делитель до 10 бит при согласовании с 8/16-битным таймером может устанавливать коэффициент деления частоты с помощью программного обеспечения, чтобы обеспечить различные времена синхронизации. Таймер/счетчик (одиночный) в микроконтроллере AVR может вести двунаправленный счет для формирования треугольной волны, а затем сопоставляться с выходным регистром сравнения, выходным ШИМ широтно-импульсной модуляции с переменной скважностью, переменной частотой и прямоугольной волной с переменной фазой. генерируется.

5.  Для промышленных изделий с высоким током (ток орошения) lO=20 мА~40 мА (один выход) можно напрямую управлять твердотельным реле или реле. Встроенный сторожевой таймер (WDT) используется для предотвращения ошибочной программы и улучшения помехозащищенности продукта.

6. Суперфункциональная упрощенная инструкция. Имеется 32 общих рабочих регистра (эквивалентно 32 аккумуляторам в однокристальных компьютерах 8051), что позволяет решить проблемы с обработкой данных, вызванные одним аккумулятором.

7. Микроконтроллер AVR имеет аналоговый компаратор, порт ввода-вывода может использоваться для аналого-цифрового преобразования, может использоваться в качестве дешевого аналого-цифрового преобразователя.

8. Байт-ориентированный высокоскоростной аппаратный последовательный интерфейс TWI и SPI. TWI совместим с интерфейсом I2C, с аппаратной передачей и распознаванием сигнала ACK, распознаванием адресов, арбитражем шины и другими функциями. Он может реализовать все четыре вида связи между несколькими машинами. Та же функция у SPI. Это также похоже на 8051, AVR имеет несколько фиксированных адресов входа вектора прерывания, поэтому он может быстро реагировать на прерывания, и он будет прерывать, как PIC, по тому же адресу вектора.

9. Микроконтроллер AVR имеет схему автоматического сброса при включении питания, независимую схему сторожевого устройства, схему обнаружения низкого напряжения BOD, несколько источников сброса (автоматический сброс вверх и вниз, внешний сброс, сброс сторожевого устройства, сброс BOD). Он может настроить программу работы с задержкой после запуска системы, повышая надежность системы. Между тем, микрокомпьютер AVR имеет множество энергосберегающих спящих режимов, работу с широким диапазоном напряжения (2,7–5 В), а также мощную защиту от помех. Поэтому он широко используется в электротехнической промышленности благодаря своим преимуществам.

10. Усовершенствованный высокоскоростной синхронный/асинхронный последовательный порт имеет функции генерации проверочного кода на основе аппаратного обеспечения, аппаратного обнаружения и отладки, двухступенчатой ​​буферизации приема, автоматической регулировки положения скорости передачи (при приеме), экранирования кадра данных , и так далее. Они повышают надежность связи и облегчают написание программы. Он также составляет распределенную сеть и реализует комплексное применение многокомпьютерной системы связи.

Функция последовательного порта намного больше, чем у последовательного порта микроконтроллера MCS-51/96. Кроме того, однокристальный микрокомпьютер AVR имеет высокую скорость работы, а время обслуживания прерывания короткое, поэтому может быть реализована связь с высокой скоростью передачи данных. Последовательная асинхронная связь UART не требует таймера и функции передачи SPI, благодаря своей высокой скорости он может работать на стандартной целочисленной частоте, а скорость передачи может достигать 576Ko11, с многоканальным 10-битным преобразователем AID и часами реального времени RTC. .


III. Выбор однокристального микрокомпьютера серии AVR

Технология микроконтроллера AVR воплощает в себе различные устройства (включая программную память FLASH, сторожевой таймер, EEPROM, синхронный/асинхронный последовательный порт, преобразователь TWI/SPI/AID/A/D, таймер, счетчик и т. д.) и различные функции (повышенная надежность системы сброса, пониженное энергопотребление и антиинтерференционный спящий режим, различные системы прерываний, таймер/счетчик с захватом ввода и согласованным выводом, сменный порт ввода-вывода. Он полностью отражает современный однокристальная технология превращается в систему SoC «на кристалле» 9.0005

Микроконтроллер серии AVR завершен, может применяться в различных случаях. Чтобы эффективно использовать его, необходимо знать его классификацию, основанную на различных стандартах и ​​функциях. А здесь в качестве примера представлены три сорта и их модели.

Микроконтроллер AVR имеет три класса:

Низкосортный Серия Tiny: этот тип микроконтроллера имеет меньше памяти, малый размер, подходит только для более простых приложений, применимая модель, такая как Tiny11/12/13/15/ 26/28 и т.д.;

Серия AT90S среднего уровня: этот микроконтроллер используется в коммерческих целях для составных приложений, требует большой памяти для программ, а также высокой скорости, например AT90S1200/2313/8515/8535 и т. д.;

Высококачественный ATmega:  этот тип микроконтроллера является наиболее популярным, он имеет хороший объем памяти до 256 КБ, встроенные периферийные устройства большего размера и подходит для приложений от скромных до сложных, применимая модель, такая как ATmega8/ 16/32/64/128 (объем памяти 8/16/32/64/128 КБ) и ATmega8515/8535.

Количество контактов устройства AVR варьируется от 8 до 64, доступны различные пакеты.


IV. AVR Microcontroller Application Field
  • Air conditioning control panel

  • Printer control board(PRCB)

  • Intelligent meter

  • Intelligent flashlight

  • LED control screen

  • Medical equipment

  • GPS 


V. Experimental tools and equipment used in AVR
  • IC-CAVR6.31AC Language Compiler

  • Integrated Development Environment(ATMEL AVR Studio)

  • PonyProg2000 Download Software

  • Встроенная тестовая плата микроконтроллера AVR

  • Симулятор AVR-JTAG

  • Загрузчик параллельных портов

  • Высокостабильный источник питания

  • Многофункциональный USB программатор TOP2004

  • ПК


VI. Программное обеспечение для программирования микроконтроллеров AVR

Компилятор языка ICCAVR6.31AC

ICCAVR6.31A — это компилятор языка программирования C, разработанный ImageCraft для микроконтроллеров AVR. Это чистая 32-битная версия с интегрированной средой разработки, также состоит из редактора и менеджера проектов.

ICCAVR получил широкое распространение благодаря своим мощным функциям, простоте эксплуатации, хорошей технической поддержке и разумной цене. На следующем рисунке показан рабочий интерфейс ICCAVR.

Интегрированная среда разработки AVRStudio

AVRStudio — это интегрированная среда разработки, объединяющая управление проектами, сборку программ, отладку программ, загрузку программ, моделирование JTAG и т. д. Однако AVRStudio не поддерживает язык программирования C. Поэтому, когда мы разрабатываем микроконтроллер AVR с помощью языка программирования C, мы должны сначала скомпилировать язык программирования C с помощью ICCAVR, а затем открыть файл скомпилированного кода с помощью AVRStudio для отладки программы. На следующем рисунке показано рабочее пространство SVRAStudio.

Программное обеспечение PonyProg2000

В основном используется для загрузки программ AVR MCU и PIC MCU, может использоваться в операционных системах Windows95/98/ME/NT/20001XP. На следующем рисунке показан рабочий интерфейс PonyProg2000.

Внимание

Запись через PORTx, чтение через PINx

Во время эксперимента старайтесь не подключать контакт напрямую к GND/VCC. Если он не установлен должным образом, порт ввода/вывода будет выводить/заполнять большой ток 80 мА (Vcc=5 В), что приведет к повреждению устройства.

В качестве входных данных

1. Подвеска (состояние высокого сопротивления) будет восприимчива к помехам, если внутренний подтягивающий резистор обычно разрешен (обычно кажется, что 51 обладает сильной помехоустойчивостью, потому что 51 всегда имеет внутреннее сопротивление подтягиванию).

2. Старайтесь не допускать приостановки ввода или уровня аналогового ввода, близкого к VCC/2, поскольку это будет потреблять слишком много тока, особенно в схемах КМОП с низким энергопотреблением.

3. Уровень вывода, обеспечиваемый программным обеспечением для чтения, обычно требует интервала тактового цикла между инструкцией присваивания «out» и инструкцией чтения «in», например порядок nop.

4. Вход функционального модуля (прерывание, таймер) может срабатывать по низкому уровню, также это может быть триггер по переднему или заднему фронту.

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

Как выход

Принятие необходимых мер по ограничению тока, например, управление светодиодом для последовательного подключения токоограничивающего резистора.

Сброс

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

Спящий режим

На выходе он остается в том же состоянии

Ввод обычно недействителен, но функция ввода действительна, если вторая функция прервана. Например, функция пробуждения внешнего прерывания


Часто задаваемые вопросы

1. Что означает микроконтроллер AVR?

AVR — это семейство микроконтроллеров, разрабатываемых с 1996 года компанией Atmel и приобретенных компанией Microchip Technology в 2016 году. Это 8-разрядные однокристальные микроконтроллеры с модифицированной гарвардской архитектурой. AVR был одним из первых семейств микроконтроллеров, в которых для хранения программ использовалась встроенная флэш-память, в отличие от одноразового программируемого ПЗУ, СППЗУ или ЭСППЗУ, использовавшихся в то время другими микроконтроллерами.

2. Как работает микроконтроллер AVR?

AVR — это 8-разрядный микроконтроллер, относящийся к семейству компьютеров с сокращенным набором команд (RISC). В архитектуре RISC набор команд компьютера не только меньше по количеству, но и проще и быстрее в работе. … Доступные регистры ввода/вывода имеют 8 бит.

3. Что означает AVR в электронике?

Автоматический регулятор напряжения (АРН) – это электронное устройство, поддерживающее постоянный уровень напряжения для электрооборудования при одной и той же нагрузке.

4. Какие существуют типы AVR?

Обычно существует два типа автоматических регуляторов напряжения. Один из них относится к типу реле, а другой — к типу серводвигателя. В AVR релейного типа используются электронные схемы, такие как реле и полупроводники, для регулирования напряжения.

5. Arduino AVR или ARM?

Arduino использует микроконтроллеры на базе AVR или ARM, в зависимости от платы. PIC — самый старый из всех. Не существует такого понятия, как «микроконтроллер Arduino».

6. Что такое полная форма AVR?

 Полная форма ПАК – замена аортального клапана. ПАК — это тип операции на открытом сердце, используемый для лечения проблем с аортальным клапаном сердца.

7. Что произойдет, если AVR выйдет из строя?

Когда АРН выходит из строя, срабатывает защита, называемая защитой от отказа поля, и отключается генератор. … Если сбой поля связан с пониженным напряжением, которое может произойти из-за серьезной неисправности рядом с генератором, и АРН может отключиться из-за невозможности поддерживать напряжение, генератор отключится мгновенно.

8. Что такое AVR и ARM?

ARM — это архитектура микропроцессора или процессора, а AVR — это микроконтроллер. ARM можно использовать аналогично микроконтроллеру в сочетании с ПЗУ, ОЗУ и другими периферийными устройствами на одном чипе, таком как LPC2148. … Микроконтроллер имеет встроенные ОЗУ, ПЗУ и другие периферийные устройства в одном чипе. Пока микропроцессор имеет только центральный процессор.

9. Каковы приложения AVR и ARM?

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

10. Что такое архитектура микроконтроллера AVR?

AVR — это микроконтроллер с 8-разрядной архитектурой RISC (вычисления с сокращенным набором инструкций), представленный на рынке с 1996 года и имеющий встроенную программируемую флэш-память, SRAM, пространство данных ввода-вывода и EEPROM. AVR – это первый микроконтроллер на рынке со встроенной флэш-памятью.


Вам также может понравиться

Полное руководство по твердотельным накопителям (SSD)

Краткое введение в применение некоторых интегральных схем в Maxim Integrated

Рекомендация по продукту

KY32-AT49BV162AT(T)

KY32-K9T1G08U0M-YIBO

KY32-CY7C131E-55NXI Архитектура микроконтроллера

Зачем изучать программирование микроконтроллеров AVR:

?

Warwick Smith

14 марта 2022 г.
By Warwick Smith на Микроконтроллеры

Зачем изучать 8-битную архитектуру микроконтроллеров AVR?

Очень популярные микроконтроллеры ATtiny и ATmega (ранее от Atmel, теперь от Microchip) основаны на 8-битной архитектуре микроконтроллера AVR. Давайте рассмотрим некоторые причины, по которым стоит изучить и понять базовую архитектуру этих устройств.

Очень популярные микроконтроллеры ATtiny и ATmega (ранее от Atmel, теперь от Microchip) основаны на 8-битной архитектуре микроконтроллера AVR. Давайте рассмотрим некоторые причины, по которым стоит изучить и понять базовую архитектуру этих устройств.

Микроконтроллеры AVR

В то время как читатели Elektor технически склонны, и большинство из них, вероятно, интересуется тем, как работает любая электроника, есть и другие причины, по которым вам следует изучать архитектуру конкретного микроконтроллера. Один пример связан с программированием микроконтроллеров AVR с использованием языка программирования C. 8-битные микроконтроллеры AVR обычно программируются с использованием C. Поскольку эти устройства имеют небольшую память программ, оптимизация компилятора C обычно включена. Это приводит к тому, что некоторые строки кода C оптимизируются или комбинируются с другими строками кода.

Рисунок 1: Все микроконтроллеры ATtiny основаны на
8-битная архитектура AVR

При отладке оптимизированного кода с помощью аппаратного средства отладки, такого как Atmel-ICE в сочетании с Microchip Studio, невозможно поставить точку останова на каждую строку кода. Кроме того, при пошаговом выполнении кода во время отладки некоторые строки кода C не могут быть пошаговыми, а вместо этого полностью пропускаются. Причина такого поведения, конечно же, связана с оптимизацией некоторых строк кода. Отключение оптимизации может помочь при отладке, но при этом изменяется базовый машинный код, который загружается в память программы AVR. Это также приводит к тому, что этот код использует больше памяти, потому что он больше не оптимизирован. Чтобы понять, что делает этот оптимизированный код, в Microchip Studio открывается окно дизассемблирования. В этом окне показан код языка ассемблера, в который был преобразован код C в процессе сборки. Чтобы понять код на языке ассемблера AVR, необходимо понять архитектуру AVR и его набор инструкций на языке ассемблера.

Еще одним примером необходимости понимания архитектуры AVR является чтение спецификаций или заметок по применению. Нередко в документах такого типа можно встретить код, написанный на языке ассемблера.

Перед рассмотрением некоторых практических примеров, помогающих понять причины изучения архитектуры AVR, давайте обсудим микроконтроллеры AVR, Microchip Studio, а также архитектуру AVR и язык ассемблера. Это позволит всем быстро ознакомиться с этой темой и определить некоторые термины, используемые во введении. После этого обсуждения приведены несколько примеров кода, а затем дополнительные причины для изучения 8-битной архитектуры AVR.

Микроконтроллеры ATmega являются одними из самых известных 8-битных микроконтроллеров благодаря их использованию на платах Arduino Uno и Arduino MEGA 2560. Меньшие по размеру и более дешевые устройства ATtiny, Рисунок 1 , также популярны среди любителей и производителей электроники. Обе линейки ATmega и ATtiny AVR имеют детали, доступные в двухрядных корпусах (DIP). Одна из причин, по которой эти устройства популярны среди любителей и производителей, заключается в том, что они доступны в этих упаковках, что позволяет легко использовать их в макетных схемах. Другая причина их популярности заключается в том, что они просты в использовании и программировании. Официальные инструменты программирования доступны от Microchip, а также множество дешевых программаторов для хобби, доступных для загрузки кода на эти устройства.

Микрочип Студия

Microchip Studio для Windows, которая ранее называлась Atmel Studio, представляет собой бесплатную полнофункциональную IDE для программирования и отладки 8-разрядных микроконтроллеров AVR. Кроме того, он поддерживает 32-разрядные микроконтроллеры AVR и устройства ARM, которые ранее были доступны от Atmel, но теперь поставляются Microchip. Эта IDE имеет встроенную поддержку цепочки инструментов GNU GCC C/C++ с открытым исходным кодом для 8-битных микроконтроллеров AVR, а также поддержку 8-битной программы ассемблера Microchip AVRASM2 для 8-битных AVR. Таким образом, программное обеспечение для AVR может быть разработано на C, C++ и ассемблере с использованием этой IDE. Эти инструменты программирования являются частью стандартной установки Microchip Studio, что упрощает начало работы с микроконтроллерами AVR. Инструменты программирования автоматически устанавливаются при установке Microchip Studio, после установки не требуется дополнительная настройка.

Что делает Microchip Studio исключительной, так это то, что она также имеет встроенный симулятор AVR и отладчик. Это означает, что программы AVR, написанные на C, C++ или языке ассемблера, можно отлаживать с помощью симулятора или внешнего USB-инструмента, такого как Atmel-ICE.

Симулятор особенно полезен для тех пользователей, которые программируют AVR с помощью программатора-любителя. У программистов-любителей нет возможностей отладки, поскольку они предназначены только для загрузки программного кода в память программ AVR Flash. Отладку можно выполнять с помощью симулятора вместо использования аппаратного средства отладки, такого как Atmel-ICE. Использование симулятора в сочетании с отладчиком также полезно для быстрого тестирования нескольких строк кода на ассемблере при изучении архитектуры AVR. Внутренние регистры и память устройств AVR можно исследовать и манипулировать с помощью симулятора или аппаратного отладчика, что полезно при изучении архитектуры AVR.

Figure 2: ATtiny85 AVR Block Diagram with Core Highlighted

Read full article

Hide full article

Add a rating to this article

★ ★ ★ ★ ★

★ ★ ★ ★ ★

Имя *

Фамилия *

Псевдоним

Электронная почта *

Пароль *

Подтвердить пароль *

НАЧАЛО РАБОТЫ С МИКРОКОНТРОЛЛЕРОМ AVR

НАЧАЛО РАБОТЫ С МИКРОКОНТРОЛЛЕРОМ AVR. Эта статья познакомит вас с тем, как начать работу с микроконтроллером AVR. Вы узнаете все о микроконтроллере AVR. Каковы основные характеристики микроконтроллера AVR, Архитектура микроконтроллера AVR? Здесь вы также узнаете о стратегии программирования микроконтроллера AVR и ознакомитесь с основами программного обеспечения AVR Studio.

ЧТО ТАКОЕ МИКРОКОНТРОЛЛЕР AVR?

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

ИСТОРИЯ МИКРОКОНТРОЛЛЕРА AVR

После микроконтроллеров PIC микроконтроллер AVR был разработан компанией ATMEL в 1996 году. почему термин AVR означает микроконтроллер RICS (вычисления с сокращенным набором команд) Альфа-Эгиля Богена и Вегарда Воллана. Микроконтроллеры AVR делятся на следующие группы:

  1. Классический AVR (AT90SXXXX)
  2. Крошечный AVR (ATtinyXXXX)
  3. Мега AVR (ATmegaXXXX)
  4. Xmega AVR (ATXmegaXXXX)
  5. AVR для конкретного приложения
  6. 32-битный AVR

ХАРАКТЕРИСТИКИ МИКРОКОНТРОЛЛЕРА AVR ATMEGA32

Начнем с микросхемы Atmega32, ее основные характеристики:

  • 32 КБ флэш-памяти
  • 1024 байта EEPROM
  • 2 КБ SRAM
  • 8 каналов, каждый f 10-разрядный АЦП
  • 32 линии ввода/вывода общего назначения и регистры
  • JTAG-интерфейс
  • Внутренние и внешние прерывания
  • Серийный программируемый USART
  • Интерфейс TWI
  • 4 канала ШИМ
  • Последовательный порт SPI
  • Рабочее напряжение: 4,5–5,5 В
  • Рабочая частота: 16 МГц

АРХИТЕКТУРА AVR ATMEGA32

                                              

AVR Atmega32 — это маломощный, эффективный и высокопроизводительный интегрированный чип, состоящий из передовой виртуальной архитектуры RISC. Он может интерпретировать 6 миллионов инструкций в секунду (MIPS). AVR Atmega32 представляет собой интегрированную микросхему с 40 контактами, в которой 32 контакта являются входными/выходными контактами в виде четырех портов; PORTA, PORTB, PORTC и PORTD и другие — питание, заземление, аналоговое опорное напряжение, кварцевый резонатор и контакты сброса. Каждый порт обеспечивает двунаправленный интерфейс ввода-вывода, состоящий из 8 контактов, каждый из которых имеет ширину 8 бит.

конфигурация контактов atmega 32

Контакт RESET является активным низким контактом, который активируется при подаче низкого напряжения (0 вольт); это заставляет микроконтроллер запускаться из своего режима/состояния по умолчанию (начального). Почти все формы сигналов являются аналоговыми сигналами, но микроконтроллеры понимают только цифровой язык, поэтому используется аналого-цифровое преобразование PORTA, состоящее из контактов от A0 до A7, также известных как контакты ADC. Вывод AREF — это аналоговый эталонный вывод, используемый для АЦП, а вывод VACC — источник напряжения, также используемый для АЦП. Два контакта заземления (GND) используются для заземления микроконтроллера AVR. VCC является основным источником питания AVR Atmega32, который составляет 5 вольт постоянного тока. Рабочая частота AVR Atmega32 составляет 16 МГц, для этого внешний кварцевый генератор 16 МГц подключен к контактам XTAL1 и XTAL2 вместе с конденсаторами 22 пФ, где XTAL1 используется для обеспечения входа инвертирующего тактового генератора и внутренней рабочей схемы часов, а XTAL2 является выход инвертирующего усилителя генератора. AVR также имеет TWI (двухпроводной интерфейс), интерфейс JTAG (совместная группа тестовых действий) и последовательный периферийный интерфейс (SPI) системного программатора (ISP). JTAG используется для предоставления доступа к его внутренней памяти и регистру. С помощью этой функции мы можем выполнять пошаговое выполнение и устанавливать точки останова в коде.

Следующая таблица поможет вам понять функции каждого контакта.

Аналоговый эталонный контакт
PIN NO. ИМЯ ПИН-кода ФУНКЦИИ ШТЫРЬКОВ
1 ССК/Т0/ПБО T0 — Вход внешнего счетчика таймера 0 или XCK-USART Clock I/O или PB0-I/O pin 0 PORTB
2 ПБ1/Т1 Вход внешнего счетчика таймера 1 или контакт ввода/вывода 1 порта PORTB
3 ПБ2/INT2/AIN0 PB2-I/O контакт 2 PORTB или INT2-внешнее прерывание 2 или

AIN0-аналоговый компаратор

4 ПБ3/ОС0/АИН1 PB3-I/O контакт 3 выхода PORTB или OC0-timer0 или

AIN1-аналоговый компаратор

5 ПБ4/СС Контакт ввода/вывода 4 PORTB или ISP и SPI
6 ПБ5/МОСИ Контакт ввода/вывода 5 PORTB или ISP и SPI
7 ПБ6/МИСО Контакт ввода/вывода 6 PORTB или ISP и SPI
8 ПБ7/СКК Контакт ввода/вывода 7 PORTB или ISP и SPI
9 СБРОС активный низкий уровень, контакт RESET
10 ВКЦ Основной источник питания (5 В постоянного тока)
11 ЗЕМЛЯ Земля
12 XTAL1 для обеспечения входа инвертирующего тактового генератора и внутренней рабочей схемы тактового генератора
13 XTAL2 выход с инвертирующего генератора усилителя
14 ПД0/RXD Контакт ввода-вывода 0 интерфейса последовательной связи PORTD или USART
15 ПД1/ТСД Контакт ввода-вывода 1 интерфейса последовательной связи PORTD или USART
16 PD2/INT0 Контакт ввода/вывода 2 порта PORTD или внешнего прерывания 0
17 ПД3/ЦЕЛ. 1 Контакт ввода/вывода 3 порта PORTD или внешнего прерывания 1
18 ПД4/ОС1Б Контакт ввода/вывода 4 канала PORTD или PWM
19 ПД5/ОС1А Контакт ввода/вывода 5 канала PORTD или PWM
20 ПД6/ОСИБ Контакт ввода/вывода 6 порта PORTD или вход таймера/счетчика 1
21 ПД7/ИСП1 Контакт ввода/вывода 7 порта PORTD или выход таймера/счетчика 2
22 ПК0/СКЛ Контакт ввода/вывода 0 интерфейса PORTC или TWI
23 ПК1/ПДД Контакт ввода/вывода 1 интерфейса PORTC или TWI
24 ПК2/ТКК Контакт ввода/вывода 2 интерфейса PORTC или JTAG
25 ПК3/ТМС Контакт ввода/вывода 3 интерфейса PORTC или JTAG
26 ПК4/TD0 Контакт ввода/вывода 4 интерфейса PORTC или JTAG
27 ПК5/ТДИ Контакт ввода/вывода 5 интерфейса PORTC или JTAG
28 ПК6/ТОСК1 Контакт 6 ввода/вывода порта PORTC или генератора таймера, контакт 1
29 ПК7/ТОСК2 Контакт 7 ввода/вывода PORTC или контакт 2 генератора таймера
30 АВКК блок питания для АЦП
31 ЗЕМЛЯ Земля
32 АРЭФ для АЦП
33-40 PA0/ADC0 – PA7/ADC7 I/O PORTA или 8-канальный 10-разрядный АЦП

СТРАТЕГИЯ ПРОГРАММИРОВАНИЯ AVR ATMEGA32

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

 

AVR STUDIO

AVR Studio (с различными версиями) — это интегрированная среда разработки от ATMEL для разработки различных приложений в соответствии с требованиями. Мы можем использовать язык C или язык ассемблера для создания кода для микроконтроллеров AVR.

Чтобы создать проект в AVR Studio, выполните следующие действия:

  1. Сначала откройте AVR Studio и выберите вариант нового проекта.
  2. Введите имя проекта и выберите AVR GCC, введите местоположение и нажмите «Далее».
  3. Выберите платформу отладки (симулятор AVR) и требуемое устройство (AtmegaXX) и нажмите «Готово».
  4. Откроется окно, нажмите кнопку проекта и перейдите к параметрам конфигурации, выберите необходимые параметры и нажмите «ОК».
  5. Напишите требуемый код в главном окне.
  6. Для компиляции нажмите кнопку сборки и перейдите к опции компиляции. В случае ошибки компиляция завершится неудачей.

После генерации HEX-файла сохраните программу в микроконтроллере AVR. Для этого вам нужно с помощью программатора скопировать HEX-файл в AVR. Обычно для микроконтроллера AVR используются программаторы AVRISP и AVRISP2.

ПРИМЕНЕНИЕ МИКРОКОНТРОЛЛЕРА AVR

Микроконтроллер AVR можно использовать для любого типа проектных приложений, таких как:

  • Для измерения сигнала
  • Сбор данных
  • Управление движением
  • Для сопряжения двигателей
  • Для дисплеев на ЖК-дисплее
  • Для сопряжения любых типов датчиков и преобразователей
  • Для интерфейса GSM и GPS
  • Для управления и автоматизации промышленных установок, механических и электрических систем
  • Для автоматизации тяжелой техники
  • На разработки по БПЛА (беспилотным летательным аппаратам)

В следующем уроке вы узнаете об AVR Studio 6 и о том, как создать свой первый проект с использованием AVR Studio 6.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *