Atmega16 распиновка: Минимальная обвязка ATmega8, 168, 328

Содержание

Как загрузить скетч в Atmega8A-PU с помощью USBasp

Сегодня я расскажу Вам как загрузить скетч в Atmega8A-PU с помощью программатора USBasp S51&AVR и среды разработки Arduino IDE. Это способ загрузки очень удобен и не требует много сил, а в итоге у нас получится минимальное arduino на микроконтроллере Atmega8A-PU. Для работы нам потребуется только программатор USBasp S51&AVR и микроконтроллер Atmega8A-PU который после прошивки будет работать на частоте 8 MHz. Более подробно смотрите на видео.

Для начала рассмотрим сам контроллер Atmega8A-PU.

Основные характеристики микроконтроллера  Atmega8A-PU:

  • Серия процессора: ATMEGA8x
  • Тактовая частота максимальная: 16 МГц
  • Разрядность АЦП: 10 бит
  • Встроенный в чип АЦП: да
  • Шина данных: 8 битШирина: 7.5 мм
  • Размер ОЗУ: 1 Кб
  • Размер ПЗУ данных: 512 B
  • Размер памяти программ: 8 Кб
  • Тип памяти программ: Flash
  • Доступные аналоговые/цифровые каналы: 6
  • Интерфейс: SPI, TWI, USART
  • Количество линий ввода/вывода: 23
  • Количество таймеров: 3
  • Ядро: AVR
  • RoHS: да
  • Диапазон напряжения питания: 2. 7 В … 5.5 В
  • Рабочий диапазон температрур: – 40 C … + 85 C
  • Тип корпуса: PDIP-28
  • Ширина: 7.5 мм
  • Длина: 34.8 мм
  • Высота: 4.57 мм

Где купить Atmega8A-PU

Заказать микроконтроллер Atmega8a-PU

Блок схема микроконтроллера Atmega8A-PU:

блок схема микроконтроллера Atmega8A

Arduino pinout (распиновка) микроконтроллера Atmega8A-PU:

Распиновка Atmega8A-PU

Если вы хотите узнать больше информации о контроллере Atmega8A-PU , скачайте даташит на Atmega8A

После небольшого знакомства с Atmega8A-PU я думаю можно приступить к настройке Arduino IDE и заливке скетча в наш контроллер.

Для начала установите Arduino IDE как указано в нашей статье Установка Arduino IDE на компьютер с ОС Windows и подключите программатор USBasp и установите драйвера как указано в статье Подключение программатора USBasp S51&AVR.

Теперь ищем в Windows папку установки Arduino IDE  под названием

arduino, полный путь к папке у меня C:\Program Files\Arduino\hardware\arduino но у Вас он может отличатся.

В этой папке мы ищем текстовый файл boards.txt и открываем его с помощью любого текстового редактора ( я использую Notepad++)

Текстовый файл boards.txt

После этого копируем текст

############################################################## atmega8noxtalfast.name=ATmega8(A) (8MHz int. RC osc, short bootloader delay, 38400 baud rate) atmega8noxtalfast.upload.protocol=arduino atmega8noxtalfast.upload.maximum_size=7168 atmega8noxtalfast.upload.speed=38400 atmega8noxtalfast.bootloader.low_fuses=0xe4 atmega8noxtalfast.bootloader.high_fuses=0xc2 atmega8noxtalfast.bootloader.path=atmega8a atmega8noxtalfast.bootloader.file=ATmegaBOOT.hex atmega8noxtalfast.bootloader.unlock_bits=0x3F atmega8noxtalfast.bootloader.lock_bits=0x0F atmega8noxtalfast.build.mcu=atmega8 atmega8noxtalfast.build.f_cpu=8000000L atmega8noxtalfast.build.core=arduino:arduino atmega8noxtalfast.build.variant=arduino:standard ############################################################## atmega8optiboot.

name=ATmega8(A) (16Mhz XTAL, optiboot) atmega8optiboot.upload.protocol=arduino atmega8optiboot.upload.maximum_size=7680 atmega8optiboot.upload.speed=115200 atmega8optiboot.bootloader.low_fuses=0xBF atmega8optiboot.bootloader.high_fuses=0xCC atmega8optiboot.bootloader.path=optiboot atmega8optiboot.bootloader.file=optiboot_atmega8.hex atmega8optiboot.bootloader.unlock_bits=0x3F atmega8optiboot.bootloader.lock_bits=0x0F atmega8optiboot.build.mcu=atmega8 atmega8optiboot.build.f_cpu=16000000L atmega8optiboot.build.core=arduino:arduino atmega8optiboot.build.variant=arduino:standard

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

##############################################################

 

atmega8noxtalfast. name=ATmega8(A) (8MHz int. RC osc, short bootloader delay, 38400 baud rate)

 

atmega8noxtalfast.upload.protocol=arduino

atmega8noxtalfast.upload.maximum_size=7168

atmega8noxtalfast.upload.speed=38400

 

atmega8noxtalfast.bootloader.low_fuses=0xe4

atmega8noxtalfast.bootloader.high_fuses=0xc2

atmega8noxtalfast.bootloader.path=atmega8a

atmega8noxtalfast.bootloader.file=ATmegaBOOT.hex

atmega8noxtalfast.bootloader.unlock_bits=0x3F

atmega8noxtalfast.bootloader.lock_bits=0x0F

 

atmega8noxtalfast.build.mcu=atmega8

atmega8noxtalfast.build.f_cpu=8000000L

atmega8noxtalfast.build.core=arduino:arduino

atmega8noxtalfast.build.variant=arduino:standard

 

 

##############################################################

atmega8optiboot.name=ATmega8(A) (16Mhz XTAL, optiboot)

 

atmega8optiboot.upload.protocol=arduino

atmega8optiboot.upload.maximum_size=7680

atmega8optiboot. upload.speed=115200

 

atmega8optiboot.bootloader.low_fuses=0xBF

atmega8optiboot.bootloader.high_fuses=0xCC

atmega8optiboot.bootloader.path=optiboot

atmega8optiboot.bootloader.file=optiboot_atmega8.hex

atmega8optiboot.bootloader.unlock_bits=0x3F

atmega8optiboot.bootloader.lock_bits=0x0F

 

atmega8optiboot.build.mcu=atmega8

atmega8optiboot.build.f_cpu=16000000L

atmega8optiboot.build.core=arduino:arduino

atmega8optiboot.build.variant=arduino:standard

вставляем в конец нашего текстового файла boards.txt, сохраняем документ и перезапускаем Arduino IDE. В окне с доступными платами у нас должны появится две новые записи ( на фото обведено красным )

Наша Arduino IDE теперь успешно настроена для заливки скетчей в микроконтроллеры Atmega8A.

  1. Первый режим программирует наш контроллер для работы от встроенного кварца, частота работы 8 MHz
  2. Второй режим программирует наш контроллер для работы от внешнего кварца, частота работы 16 MHz (для работы подключаем кварц на 16 MHz к ножкам XTAL1 и XTAL2)

Теперь переходим к подключению нашего микроконтроллера к программатору.

Для удобства я сделал небольшую плату для прошивки микроконтроллеров Atmega8A и Attiny13a,

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

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

А для Вас рекомендую подключать USBasp программатор к Atmega8A-PU по схеме на картинке

Подключение USBasp к atmega8A-PU

Схема подключения контактов

  • USBasp +5v  к контроллеру VCC (pin7)
  • USBasp – GND к контроллеру GND (pin8)
  • USBasp – RST к контроллеру RST (pin1)
  • USBasp – SCK к контроллеру SCK (pin19)
  • USBasp – MISO к контроллеру MISO (pin18)
  • USBasp – MOSI к контроллеру MOSI 
    (pin17)

После подключения переходим снова к Arduino IDE в котором будем использовать режим программирования микроконтроллера  без внешнего кварца  ATmega8(A) (8MHz int. RC osc, short bootloader delay, 38400 baud rate)

потом устанавливаем Serial Port, у меня как на фото

и выбираем программатор

после чего открываем из примеров скетч Blink, наводим курсор мышки на стрелочку для заливки скетча в плату ( на фото белая стрелка ) и жмем на клавиатуре Shift – у нас должна появится надпись Upload Using Programmer и жмем по стрелке для заливки скетча в наш контроллер  Atmega 8A-Pu

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

После чего подключаем Анод (+) светодиода к 19 ноге, а минус к GND, подаем питание к нашему микроконтроллеру и светодиод должен моргать с интервалом в 1 секунду

Поздравляю теперь вы знаете как загрузить скетч в Atmega8A-PU

Всё о микроконтроллерах AVR

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

AVR – это название популярного семейства микроконтроллеров, которое выпускает компания Atmel. Кроме АВР под этим брендом выпускаются микроконтроллеры и других архитектур, например, ARM и i8051.

Какими бывают AVR микроконтроллеры?

Существует три вида микроконтроллеров:

  1. AVR 8-bit.
  2. AVR 32-bit.
  3. AVR xMega

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

Микроконтроллеры AVR 8-bit в свою очередь делятся на два популярных семейства:

  • Attiny – из названия видно, что младшее (tiny – юный, молодой, младший), в основном имеют от 8 пинов и более.
    Объём их памяти и функционал обычно скромнее, чем в следующем;
  • Atmega – более продвинутые микроконтроллеры, имеют большее количество памяти, выводов и различных функциональных узлов;

Самым мощным подсемейством микроконтроллеров является xMega – эти микроконтроллеры выпускаются в корпусах с огромным количеством пинов, от 44 до 100. Столько необходимо для проектов с большим количеством датчиков и исполнительных механизмов. Кроме того, увеличенный объем памяти и скорость работы позволяют получить высокое быстродействие.

Расшифровка: Пин (англ. pin – иголка, булавка) – это вывод микроконтроллера или как говорят в народе – ножка. Отсюда же слово «распиновка» - т.е. информация о назначении каждой из ножек.

Для чего нужны и на что способны микроконтроллеры?

Микроконтроллеры применяются почти везде! Практически каждое устройство в 21 веке работает на микроконтроллере: измерительные приборы, инструменты, бытовая техника, часы, игрушки, музыкальные шкатулки и открытки, а также многое другое; одно лишь перечисление займет несколько страниц текста.

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

В распространенных AVR-микроконтроллерах, например, Atmega328, который на 2017 году является сердцем многих плат Arduino, но о них позже. Используется 8 канальный АЦП, с разрядностью 10 бит. Это значит вы сможете считать значение с 8 аналоговых датчиков. А к цифровым выводам подключаются цифровые датчики, что может быть очевидным. Однако цифровой сигнал может являться только 1 (единицей) или 0 (нулем), в то время как аналоговый может принимать бесконечное множество значений.

Пояснение:

Разрядность – это величина, которая характеризует качество, точность и чувствительность аналогового входа.

Звучит не совсем понятно. Немного практики: 10 битный АЦП, записать аналоговую информацию с порта в 10 битах памяти, иначе говоря плавно изменяющийся цифровой сигнал микроконтроллером распознается как числовое значение от 0 до 1024.

12 битный АЦП видит тот же сигнал, но с более высокой точностью – в виде от 0 до 4096, а это значит, что измеренные значения входного сигнала будут в 4 раза точнее. Чтобы понять откуда взялись 1024 и 4096, просто возведите 2 в степени равную разрядности АЦП (2 в степени 10, для 10 разрядного и т.д.)

Чтобы управлять мощностью нагрузки к вашему распоряжению есть ШИМ-каналы, их можно задействовать, например, для регулировки яркости, температуры, или оборотов двигателя. В том же 328 контроллере их 6.

В общем структура AVR микроконтроллера изображена на схеме:

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

  • АЛУ – арифметико-логическое устройство. Нужно для выполнения вычислении.
  • Регистры общего назначения (РОН) – регистры которые могут принимать данные и хранить их в то время пока микроконтроллер подключен к питанию, после перезагрузки стираются. Служат как временные ячейки для операций с данными.
  • Прерывания – что-то вроде события которое возникает по внутренним или внешним воздействиям на микроконтроллер – переполнение таймера, внешнее прерывание с пина МК и т.д.
  • JTAG – интерфейс для внутрисхемного программирования без снятия микроконтроллера с платы.
  • Flash, ОЗУ, EEPROM – виды памяти – программ, временных рабочих данных, долгосрочного хранения независимая от подачи питания к микроконтроллеру соответственно порядку в названиях.
  • Таймеры и счетчики – важнейшие узлы в микроконтроллере, в некоторых моделях их количество может быть до десятка. Нужны для того, чтобы отчитывать количество тактов, соответственно временные отрезки, а счетчики увеличивают свое значение по какому-либо из событий. Их работа и её режим зависят от программы, однако выполняются эти действия аппаратно, т.е. параллельно основному тексту программы, могут вызвать прерывание (по переполнению таймера, как вариант) на любом этапе выполнения кода, на любой его строке.
  • A/D (Analog/Digital) – АЦП, его назначение мы уже описали ранее.
  • WatchDogTime (Сторожевой таймер) – независимый от микроконтроллера и даже его тактового генератора RC-генератор, который отсчитывает определенный промежуток времени и формирует сигнал сброса МК, если тот работал, и пробуждения – если тот был в режиме сна (энергосбережния). Его работу можно запретить, установив бит WDTE в 0.

Выходы микроконтроллера довольно слабые, имеется в виду то, что ток через них обычно до 20-40 миллиампер, чего хватит для розжига светодиода и LED-индикаторов. Для более мощной нагрузки – необходимы усилители тока или напряжения, например, те же транзисторы.

Что нужно чтобы начать изучение микроконтроллеров? 

Для начала нужно приобрести сам микроконтроллер. В роли первого микроконтроллера может быть любой Attiny2313, Attiny85, Atmega328 и другие. Лучше выбирать ту модель, которая описана в уроках, по которым вы будете заниматься.

Следующее что Вам нужно – программатор. Он нужен для загрузки прошивки в память МК, самым дешевым и популярным считается USBASP.

Немногим дороже, но не менее распространенный программатор AVRISP MKII, который можно сделать своими руками – из обычной платы Arduino

Другой вариант – прошивать их через USB-UART переходник, который обычно делается на одном из преобразователей: FT232RL, Ch440, PL2303 и CP2102.

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

  • ATmega8U2;
  • ATmega16U2;
  • ATmega32U2.

Одно лишь «но» – в память микроконтроллера предварительно нужно загрузить UART бутлоадер. Разумеется, для этого все равно нужен программатор для AVR-микроконтроллеров.

Интересно: Bootloader – это обычная программа для микроконтроллера, только с необычной задачей – после его запуска (подключения к питания) он ожидает какое-то время, что в него могут загрузить прошивку. Преимуществом такого метода – можно прошить любым USB-UART переходником, а они очень дешевы. Недостаток – долго загружается прошивка.

Для работы UART (RS-232) интерфейса в микроконтроллерах AVR выделен целый регистр UDR (UART data register). UCSRA (настройки битов приемопередатчика RX, TX), UCSRB и UCSRС – набор регистров отвечающие за настройки интерфейса в целом.

В чем можно писать программы?

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

Официальным IDE от Atmel является AVR Studio, которая на 6 версии была переименована в Atmel studio. Она поддерживает все микроконтроллеры AVR (8, 32, xMega), автоматически определяет команды и помогает ввести, подсвечивает правильный синтаксис и многое другое. С её же помощью можно прошивать МК.

Наиболее распространённым является - C AVR, поэтому найдите самоучитель по нему, есть масса русскоязычных вариантов, а один из них - Хартов В.Я. «Микроконтроллеры AVR. Практикум для начинающих».

Самый простой способ изучить AVR

Купите или сделайте своими руками плату Arduino. Проект ардуино разработан специально для учебных целей. Он насчитывает десятки плат различных формами и количеством контактов. Самое главное в ардуино – это то что вы покупаете не просто микроконтроллера, а полноценную отладочную плату, распаянную на качественной текстолитовой печатной плате, покрытой маской и смонтированными SMD компонентами.

Самые распространенные – это Arduino Nano и Arduino UNO, они по сути своей идентичны, разве что «Нано» меньше примерно в 3 раза чем «Уно».

Несколько фактов:

  • Ардуино может программироваться стандартным языком – «C AVR»;
  • своим собственным – wiring;
  • стандартная среда для разработки – Arduino IDE;
  • для соединения с компьютером достаточно лишь подключить USB шнур к гнезду micro-USB на плате ардуино нано, установить драйвера (скорее всего это произойдет автоматически, кроме случаев, когда преобразователь на Ch440, у меня на Win 8.1 драйвера не стали, пришлось скачивать, но это не заняло много времени.) после чего можно заливать ваши «скетчи»;
  • «Скетчи» – это название программ для ардуино.

Выводы

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

Ранее ЭлектроВести писали, что в аэропорту «Борисполь» запустили первое электрозарядное устройство на два паркоместа. Об этом сообщил на своей странице в Facebook заместитель гендиректора аэропорта Георгий Зубко.

По материалам: electrik.info.

ATmega328 - ATmega328 - qaz.wiki

ATmega328P в узком двухрядном 28-выводном корпусе ( DIP- 28N) ATmega328P в тонком 32-контактном плоском корпусе с четырьмя выводами ( TQFP -32) Матрица ATmega328P

ATmega328 является одно- чип микроконтроллер , созданный Atmel в megaAVR семье (позже Microchip Technology приобрела Atmel в 2016 году). Он имеет модифицированное гарвардское ядро 8-битного процессора RISC .

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

8-разрядный микроконтроллер Atmel AVR на базе RISC сочетает в себе 32 КБ флэш- памяти ISP с возможностью чтения во время записи, 1 КБ EEPROM , 2 КБ SRAM , 23 линии ввода-вывода общего назначения, 32 рабочих регистра общего назначения , три гибких таймера / счетчики с режимами сравнения, внутренними и внешними прерываниями , последовательным программируемым USART , байтовым 2-проводным последовательным интерфейсом, последовательным портом SPI , 6-канальным 10-битным аналого - цифровым преобразователем (8 каналов в пакетах TQFP и QFN / MLF ) , программируемый сторожевой таймер с внутренним генератором и пять программно выбираемых режимов энергосбережения. Устройство работает в диапазоне 1,8-5,5 вольт. Пропускная способность устройства приближается к 1 MIPS на МГц.

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

Параметр Стоимость
Тип процессора 8-битный AVR
Производительность 20 MIPS при 20 МГц
Флэш-память 32 КБ
SRAM 2 КБ
EEPROM 1 КБ
Количество контактов 28 или 32 контакта:
Максимальная рабочая частота 20 МГц
Количество сенсорных каналов 16
Аппаратное получение QTouch Нет
Максимальное количество контактов ввода / вывода 23
Внешние прерывания 2
Интерфейс USB Нет
Скорость USB -

Семья

Распространенной альтернативой ATmega328 является ATmega328P "picoPower". Полный список всех остальных членов серии megaAVR можно найти на веб-сайте Atmel.

  • ATmega328
  • ATmega328P и ATmega328P-АВТОМОБИЛЬ
  • ATmega328PB и ATmega328PB-AUTOMOTIVE (расширенный набор ATmega328P) - имеет больше периферийных устройств UART, I2C и SPI, чем ATmega328P

Приложения

По состоянию на 2013 год ATmega328 широко используется во многих проектах и ​​автономных системах, где требуется простой, маломощный и недорогой микроконтроллер. Пожалуй, наиболее распространенная реализация этого чипа находится на популярной платформе разработки Arduino , а именно на моделях Arduino Uno и Arduino Nano .

Программирование

Распиновка ATmega 48A / PA / 88A / PA / 168A / PA / 328 / P в 28-PDIP ( datasheet )

Аттестация надежности показывает, что прогнозируемая частота отказов при хранении данных намного меньше 1 PPM за 20 лет при 85 ° C или 100 лет при 25 ° C.

Режим параллельной программы
Сигнал программирования Имя контакта Ввод / вывод Функция
RDY / BSY PD1 О Высокий означает, что MCU готов к новой команде, в противном случае занят.
OE PD2 я Разрешение выхода (активный низкий уровень)
WR PD3 я Импульс записи (активный низкий)
BS1 PD4 я Выбор байта 1 («0» = младший байт, «1» = старший байт)
XA0 PD5 я Бит действия XTAL 0
XA1 PD6 я XTAL Action бит 1
PAGEL PD7 я Программная память и загрузка страницы данных EEPROM
BS2 ПК2 я Выбор байта 2 («0» = младший байт, «1» = 2-й старший байт)
ДАННЫЕ ПК [1: 0]: PB [5: 0] Ввод / вывод Двунаправленная шина данных (вывод при низком уровне OE)

В режим программирования входит, когда PAGEL (PD7), XA1 (PD6), XA0 (PD5), BS1 (PD4) установлен в ноль. Вывод RESET на 0 В и V CC на 0 В. V CC установлен на 4,5 - 5,5 В. Подождите 60 мкс, а для RESET установлено значение 11,5 - 12,5 В. Подождите более 310 мкс. Установите XA1: XA0: BS1: DATA = 100 1000 0000, импульс XTAL1 не менее 150 нс, импульс WR равным нулю. Начнется стирание чипа. Подождите, пока RDY / BSY (PD1) не перейдет в высокий уровень. XA1: XA0: BS1: DATA = 100 0001 0000, импульс XTAL1, импульс WR в ноль. Это команда записи Flash. И так далее..

Последовательное программирование
Условное обозначение Булавки Ввод / вывод Описание
MOSI PB3 я Последовательные данные в
MISO PB4 О Последовательный выход данных
SCK PB5 я Последовательные часы

Последовательные данные к MCU синхронизируются по переднему фронту, а данные от MCU синхронизируются по заднему фронту. Питание подается на V CC, в то время как RESET и SCK установлены на ноль. Подождите не менее 20 мс, а затем на вывод MOSI отправляется последовательная инструкция включения программирования 0xAC, 0x53, 0x00, 0x00. Второй байт (0x53) будет отражен MCU.

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

Ссылки

внешние ссылки

Официальные веб-страницы
<img src="https://en.wikipedia.org//en.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title=""> Схема контактов

ATMega16, конфигурация, характеристики и техническое описание

Конфигурация контактов ATMEGA16

ПИН.

ИМЯ ПИН

ОПИСАНИЕ

АЛЬТЕРНАТИВНАЯ ФУНКЦИЯ

1

PB0 (XCK / T0)

Контакт 0 порта PORTB

T0 (Вход внешнего счетчика Timer0)

XCK (ввод / вывод внешних часов USART)

2

PB1 (T1)

Контакт 1 порта PORTB

T1 (Вход внешнего счетчика Timer1)

3

PB2 (INT2 / AIN0)

Контакт 2 порта PORTB

AIN0 (положительный вход внутреннего аналогового компаратора)

INT2 (вход внешнего прерывания 2)

4

PB3 (OC0 / AIN1)

Контакт 3 PORTB

AIN1 (отрицательный вход внутреннего аналогового компаратора)

OC0 (выход таймера 0, выход сравнения сравнения) или выход ШИМ

5

PB4 (нержавеющая сталь)

Контакт 4 порта PORTB

SS (вход выбора ведомого SPI). Этот вывод низкий, когда контроллер действует как ведомый.

[Последовательный периферийный интерфейс (SPI) для программирования]

6

PB5 (MOSI)

Контакт 5 PORTB

MOSI (главный выход, подчиненный вход). Когда контроллер действует как ведомый, данные принимаются на этот вывод.

[Последовательный периферийный интерфейс (SPI) для программирования]

7

PB6 (MISO)

Контакт 6 порта PORTB

MISO (главный вход подчиненный выход). Когда контроллер действует как подчиненный, данные отправляются мастеру через этот вывод.

[Последовательный периферийный интерфейс (SPI) для программирования]

8

PB7 (SCK)

Контакт 7 порта PORTB

SCK (последовательные часы шины SPI). Это часы, совместно используемые этим контроллером и другой системой для точной передачи данных.

[Последовательный периферийный интерфейс (SPI) для программирования]

9

СБРОС

Пин сброса (активный низкий сброс)

10

VCC

Подключен к + 5В

11

GND

Подключено к ЗЕМЛЕ

12

XTAL2

подключен к кварцевому генератору

13

XTAL1

подключен к кварцевому генератору

14

PD0 (RXD)

Контакт 0 PORTD

RXD (входной контакт USART)

[Интерфейс последовательной связи USART

может использоваться для программирования]

15

PD1 (TXD)

Контакт 1 PORTD

TXD (выходной контакт USART)

[Интерфейс последовательной связи USART

может использоваться для программирования]

16

PD2 (INT0)

Контакт 2 PORTD

Внешнее прерывание INT0

17

PD3 (INT1)

Контакт 3 PORTD

Внешнее прерывание INT1

18

PD4 (OC1B)

Контакт 4 PORTD

OC1B (выход таймера, выход сравнения сравнения) или выход ШИМ

19

PD5 (OC1A)

Контакт 5 PORTD

OC1A (выход таймера, выход сравнения сравнения) или выход ШИМ

20

ПД6 (ICP)

Контакт 6 порта PORTD

Таймер / счетчик1 Вход захвата сигнала

21

PD7 (OC2)

Контакт 7 PORTD

Выход таймера / счетчика2 Выход сравнения сравнения

22

PC0 (SCL)

Контакт 0 PORTC

Интерфейс TWI

23

PC1 (SDA)

Контакт 1 PORTC

Интерфейс TWI

24

PC2 (TCK)

Контакт 2 PORTC

Интерфейс JTAG

25

PC3 (TMS)

Контакт 3 PORTC

Интерфейс JTAG

26

PC4 (TDO)

Контакт 4 PORTC

Интерфейс JTAG

27

PC5 (TDI)

Контакт 5 PORTC

Интерфейс JTAG

28

PC6 (TOSC1)

Контакт 6 PORTC

Вывод осциллятора таймера 1

29

PC7 (TOSC2)

Контакт 7 PORTC

Вывод 2 генератора таймера

30

AVcc

Vcc для внутреннего преобразователя АЦП

31

GND

ЗЕМЛЯ

32

AREF

Analog Reference Pin для АЦП

33

PA7 (АЦП7)

Контакт 7 PORTA

АЦП (аналого-цифровой преобразователь), канал 7

34

PA6 (ADC6)

Контакт 6 PORTA

АЦП (аналого-цифровой преобразователь), канал 6

35

PA5 (АЦП5)

Контакт 5 PORTA

АЦП (аналого-цифровой преобразователь), канал 5

36

PA4 (ADC4)

Контакт 4 PORTA

АЦП (аналого-цифровой преобразователь), канал 4

37

PA3 (ADC3)

Контакт 3 PORTA

АЦП (аналого-цифровой преобразователь), канал 3

38

PA2 (АЦП2)

Контакт 2 PORTA

АЦП (аналого-цифровой преобразователь), канал 2

39

PA1 (АЦП1)

Контакт 1 PORTA

АЦП (аналого-цифровой преобразователь), канал 1

40

PA0 (ADC0)

Контакт 0 PORTA

АЦП (аналого-цифровой преобразователь), канал 0

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

ATMEGA16 - Упрощенные функции

CPU

8-битный AVR

Количество контактов

40

Рабочее напряжение

Для ATMEGA16: +4. От 5 до +5,5 В (+ 5,5 В является абсолютным максимумом)

Для ATMEGA16L: от +2,7 до 5,5 В (+ 5,5 В является абсолютным максимумом)

Количество контактов ввода / вывода

32

Интерфейс связи

Интерфейс JTAG (24,25,26,27 PINS) [Может использоваться для программирования этого контроллера]

Последовательный интерфейс SPI (5,6,7,8 PINS) [Может использоваться для программирования этого контроллера]

Программируемый последовательный USART (14,15 PINS) [Может использоваться для программирования этого контроллера]

Двухпроводной последовательный интерфейс (22,23 PINS) [Может использоваться для подключения периферийных устройств, таких как датчики и сервоприводы]

Модуль АЦП

8 каналов, разрешение 10 бит АЦП

Модуль таймера

Два 8-битных счетчика, Один 16-битный счетчик [Всего три]

Аналоговые компараторы

1

Модуль ЦАП

Нет

ШИМ каналов

4

Внешний осциллятор

0-8 МГц для ATMEGA16L

0-16 МГц для ATMEGA16

Внутренний осциллятор

Калиброванный внутренний генератор, 0–8 МГц

Тип памяти программ

Вспышка

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

16 Кбайт [10000 циклов записи / стирания]

Частота процессора

16 MIPS

Байт ОЗУ

1 Кбайт

Данные EEPROM

512 байт

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

Есть

Режимы энергосбережения

Шесть режимов [бездействие, шумоподавление АЦП, энергосбережение, отключение питания, режим ожидания и расширенный режим ожидания]

Рабочая температура

от -55 ° C до + 125 ° C (+125 - абсолютный максимум, -55 - абсолютный минимум)

Электрические характеристики ATMEGA16

  • Максимальное напряжение на любом контакте, кроме RESET: -0. От 5 В до (Vcc + 0,5) В
  • Максимальное напряжение на выводе RESET: от -0,5 В до + 13,0 В
  • Максимальный допустимый постоянный ток через любой контакт ввода / вывода: 40 мА
  • Максимальный постоянный ток через контакты Vcc и GND: 200 мА
  • Температура хранения: от -65ºC до + 150ºC

Замены ATMEGA16

ATMEGA32, ATMEGA8535

Альтернативы ATMEGA16

ATMEGA8, ATMEGA328p

Где использовать ATMEGA16

Микроконтроллер ATMEGA16 - один из самых популярных контроллеров серии AVR.Благодаря своим характеристикам и стоимости покупки он стал одним из любимых контроллеров как для любителей, так и для инженеров. Программирование ATMEGA16 похоже на любой другой контроллер AVR. В частности, это клон ATMEGA32, за исключением памяти. Хотя он имеет только половину памяти ATMEGA32, ее все же более чем достаточно для удовлетворения требований большинства EMBEDDED SYSTEMS .

ATMEGA16 также имеет спящий режим. Режимы можно запускать в желаемое время для экономии энергии.Имея на борту различные спящие режимы, ATMEGA16 может работать с МОБИЛЬНЫМИ ВСТРОЕННЫМИ СИСТЕМАМИ.

ATMEGA16 имеет 32 программируемых контакта ввода / вывода, с помощью которых ATMEGA16 может легко взаимодействовать со многими периферийными устройствами.

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

Как использовать микроконтроллер ATMEGA16

Как упоминалось ранее, ATMEGA16 похож на любой другой микроконтроллер и, в частности, на ATMEGA32.По сути, он может выполнять любую функцию, которую выполняет ATMEGA32. Подобно им, это не цифровые ИС Plug and Play. Для работы ATMEGA16 сначала необходимо сохранить шестнадцатеричный код программы в ATMEGA16 FLASH MEMORY . После выполнения этого кода ATMEGA16 создает желаемый ответ.

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

  1. Перечислите функции, которые должны выполняться ATMEGA16, в документе.
  2. Следующая загрузка приложения для разработки программ (IDE) для контроллеров AVR

(Обычно Atmel Studio 6.2 для Windows7,

Atmel Studio 7 для Windows10 [http://www.microchip.com/avr-support/avr-and-sam-downloads-archive])

  1. Напишите функции на языке «C» в IDE.
  2. После написания программы скомпилируйте ее в IDE. Это исключает ошибки.
  3. Сделать приложение IDE для создания файла HEX для написанной программы после компиляции.
  4. Выберите устройство программирования (обычно программатор SPI, предназначенный для контроллеров AVR), который устанавливает связь между вашим персональным компьютером и ATMEGA16.
  5. Запустите программное обеспечение для записи файлов HEX, предоставленное для выбранного устройства программирования.
  6. Выберите соответствующий HEX файл программы в программном обеспечении программатора.
  7. Запишите HEX-файл (который содержит программу в виде HEX-кода) во флэш-память ATMEGA16 с помощью этой программы.

Отключите программатор, подключите соответствующие периферийные устройства для контроллера и включите систему. С помощью этого ATMEGA16 выполняет программу и выдает ответ, записанный в сохраненной программе.

Приложения

Существует множество приложений для микроконтроллеров ATMEGA16.

  • Заявки для любителей
  • Инженерное проектирование
  • Системы контроля температуры
  • Измерение аналоговых сигналов и манипуляции с ними.
  • Встроенные системы, такие как кофеварка, торговый автомат.
  • Системы управления двигателями.
  • Цифровая обработка сигналов.
  • Система периферийного интерфейса.

2D Модель

atmega16-16au техническое описание (6/24 страницы) ATMEL | 8-битный микроконтроллер с 16 Кбайт внутрисистемной программируемой флэш-памятью

6/24 стр.

6

ATmega16 (L)

2466NS – AVR – 10/06

Сводка регистров

Адрес

Имя

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

Страница

$ 3F (5F $)

SREG

I

T

H

S

V

N

Z

C

7

3E (5E)

SPH

-

-

-

-

-

SP10

SP9

SP8

10

$ 3D (5D)

SPL

SP7

SP6

SP5

SP4

SP3

SP2

SP1

SP0

10

$ 3C ($ 5C)

OCR0

Таймер / счетчик0 Регистр сравнения выходов

83

3 млрд долларов (5 млрд долларов)

GI CR

INT1

INT0

INT2

-

-

-

IVSEL

IVCE

46, 67

$ 3A ($ 5A)

GIFR

INTF1

INTF0

INTF2

-

-

-

-

–68

39 долларов (59 долларов)

TIMSK

OCIE2

TOIE2

TICIE1

OCIE1A

OCIE1B

TOIE1

OCIE1B

TOIE1

83, 114, 132

38 долларов (58 долларов)

TIFR

OCF2

TOV2

ICF1

OCF1A

OCF1B

TOV1

OCF0

TOV0

84, 115, 132 900 $ 57)

SPMCR

SPMIE

RWWSB

-

RWWSRE

BLBSET

PGWRT

PGERS

SPMEN

250

36 долларов (56 долларов США). )

TWCR

TWINT

TWEA

TWSTA

TWSTO

TWWC

TWEN

-

TWIE

178

$ 35 (55 долларов США)

MCUCR

SM2

SE

SM1

SM0

ISC11

ISC10

ISC01

ISC00

30, 66

$ 34 (54 доллара США)

MCUCSR

JTD

ISC2

-

JTRF

WDRF

EXTRF

BORF

BORF

PORF

39, 67, 229

33 доллара (53 доллара)

TCCR0

FOC0

WGM00

COM01

COM00

WGM01

CS02

CS01

320010 CS00

81

долларов США )

TCNT0

Таймер / счетчик0 (8 бит)

83

31 доллар (1) (51 доллар) (1)

OSCCAL

Регистр калибровки осциллятора

900 10 28

OCDR

Встроенный регистр отладки

225

30 долларов (50 долларов США)

SFIOR

ADTS2

ADTS1

ADTS0

-

ACME

PUD

PSR2

PSR10 55,86,133,199,219

2 франка (4 франка)

% PDF-1. 4 % 174 0 объект > endobj xref 174 89 0000000016 00000 н. 0000002149 00000 н. 0000002368 00000 н. 0000002520 00000 н. 0000002551 00000 н. 0000002608 00000 п. 0000003327 00000 н. 0000003561 00000 н. 0000003628 00000 н. 0000003720 00000 н. 0000003880 00000 н. 0000004027 00000 н. 0000004160 00000 н. 0000004293 00000 н. 0000004442 00000 н. 0000004590 00000 н. 0000004752 00000 н. 0000004857 00000 н. 0000004960 00000 н. 0000005079 00000 н. 0000005167 00000 н. 0000005255 00000 н. 0000005358 00000 п. 0000005480 00000 н. 0000005595 00000 н. 0000005713 00000 н. 0000005862 00000 н. 0000005972 00000 н. 0000006069 00000 н. 0000006212 00000 н. 0000006299 00000 н. 0000006387 00000 п. 0000006491 00000 н. 0000006596 00000 н. 0000006700 00000 н. 0000006804 00000 н. 0000006920 00000 н. 0000007036 00000 н. 0000007152 00000 н. 0000007269 00000 н. 0000007371 00000 п. 0000007489 00000 н. 0000007584 00000 н. 0000007678 00000 н. 0000007771 00000 н. 0000007864 00000 н. 0000007957 00000 н. 0000008051 00000 н. 0000008145 00000 н. 0000008239 00000 п. 0000008333 00000 п. 0000008427 00000 н. 0000008521 00000 н. 0000008615 00000 н. 0000008709 00000 н. 0000008803 00000 н. 0000008897 00000 н. 0000008991 00000 п. 0000009085 00000 н. 0000009179 00000 н. 0000009273 00000 н. 0000009485 00000 н. 0000009526 00000 н. 0000009548 00000 н. 0000010457 00000 п. 0000010479 00000 п. 0000010589 00000 п. 0000010694 00000 п. 0000011637 00000 п. 0000011660 00000 п. 0000012923 00000 п. 0000012946 00000 п. 0000014216 00000 п. 0000014239 00000 п. 0000015548 00000 п. 0000015571 00000 п. 0000015684 00000 п. 0000015815 00000 п. 0000016141 00000 п. 0000017331 00000 п. 0000017354 00000 п. 0000018643 00000 п. 0000018665 00000 п. 0000018743 00000 п. 0000021422 00000 п. 0000021501 00000 п. 0000022418 00000 п. 0000002649 00000 н. 0000003305 00000 н. трейлер ] >> startxref 0 %% EOF 175 0 объект > endobj 176 0 объект `Dz - # _ m_} g) / U (Y {Wdz ׼!) / П-12 / V 1 / Длина 40 >> endobj 177 0 объект [ 178 0 руб. wA [TPMCu]% 6kzɽ, ҜIg] 鯒 qgc) dKUW (@ * `wpAL _ * r29FKBWV'E aO "ݢ KĜF

Введение в Atmega16 - инженерные проекты

Привет, ребята! Надеюсь у тебя все хорошо.Микроконтроллеры играют важную роль в разработке встраиваемых систем. Они используются там, где автоматизация является неотъемлемой частью системы. Сегодня я собираюсь раскрыть подробности о Introduction to Atmega16. Это 40-контактный 8-разрядный микроконтроллер с низким энергопотреблением, разработанный с использованием технологии CMOS и основанный на архитектуре AVR. Это наиболее часто используемый микроконтроллер AVR, который принадлежит к семейству Atmel Mega. Вы должны взглянуть на микроконтроллер под названием Atmega328, который также принадлежит к семейству Mega.Другие микроконтроллеры, которые легко доступны и подпадают под категорию AVR, - это Atmega 8 и Atmega 32. Все эти контроллеры выполняют схожие задачи, однако они отличаются только объемом памяти и стоимостью. Я расскажу обо всем, что связано с этим. контроллер, поэтому вам не нужно копаться в Интернете и искать всю информацию в одном месте. Давайте углубимся и исследуем, что это такое, его основные функции, схему контактов и все, что вам нужно знать.

Введение в Atmega16

  • Atmega16 - это 40-контактный микроконтроллер малой мощности, разработанный с использованием технологии CMOS.
  • CMOS - это передовая технология, которая в основном используется для разработки интегральных схем. Он отличается низким энергопотреблением и высокой помехоустойчивостью.
  • Atmega16 - это 8-битный контроллер, основанный на архитектуре RISC (вычисление с сокращенным набором команд) AVR. AVR - это семейство микроконтроллеров, разработанных Atmel в 1996 году.
  • Это однокристальный компьютер, который поставляется с ЦП, ПЗУ, ОЗУ, EEPROM, таймерами, счетчиками, АЦП и четырьмя 8-битными портами, называемыми PORTA, PORTB, PORTC, PORTD, где каждый порт состоит из 8 контактов ввода / вывода.
  • Atmega16 имеет встроенные регистры, которые используются для установления связи между процессором и внешними периферийными устройствами. CPU не имеет прямого соединения с внешними устройствами. Он может принимать входные данные путем чтения регистров и выдавать выходные данные путем записи регистров.
  • Atmega16 поставляется с двумя 8-битными таймерами и одним 16-битным таймером. Все эти таймеры могут использоваться в качестве счетчиков, если они оптимизированы для подсчета внешнего сигнала.
  • Большинство необходимых периферийных устройств, необходимых для выполнения автоматических функций, встроены в это устройство, например АЦП (аналого-цифровой преобразователь), аналоговый компаратор, USART, SPI, что делает его экономичным по сравнению с микропроцессором, для работы которого требуется внешнее периферийное оборудование. различные функции.
  • Atmega16 поставляется с 1 КБ статической ОЗУ, которая является энергозависимой памятью, т.е. хранит информацию в течение короткого периода времени и сильно зависит от постоянного источника питания. В то время как 16 КБ флеш-памяти, также известной как ПЗУ, также встроены в устройство, которое является энергонезависимым по своей природе и может хранить информацию в течение длительного периода времени и не теряет никакой информации при отключении источника питания.
  • Atmega16 работает на максимальной частоте 16 МГц, где инструкции выполняются за один машинный цикл.

Архитектура Atmega16

На следующем рисунке показана архитектура Atmega16, основанная на Гарвардской архитектуре и имеющая отдельные шины и память. Инструкции хранятся в памяти программы.

1. CPU

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

2. ROM

Программа контроллера хранится в ROM, также известном как энергонезависимая программируемая флэш-память. Флэш-память имеет разрешение не менее 10 000 циклов записи / стирания. Флэш-память в основном разделена на две части, известные как раздел флэш-памяти приложений и раздел флэш-памяти кабины.Программа контроллера хранится во флеш-разделе приложений. В то время как секция фотовспышки оптимизирована для работы непосредственно при включении контроллера.

3. RAM

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

4. EEPROM

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

5. Прерывание

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

6. Модули аналогового и цифрового ввода / вывода

Модули цифрового ввода / вывода используются для установки цифровой связи между контроллером и внешними устройствами. В то время как аналоговые модули ввода / вывода используются для передачи аналоговой информации. Аналоговые компараторы и АЦП относятся к категории аналоговых модулей ввода / вывода.

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

Таймеры используются для расчета внутреннего сигнала в контроллере. Atmega16 поставляется с двумя 8-битными таймерами и одним 16-битным таймером.Все эти таймеры работают как счетчики, когда они оптимизированы для внешних сигналов.

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

Сторожевой таймер - замечательное дополнение к этому контроллеру, которое используется для генерации прерывания и сброса таймера. Он поставляется с отдельным источником CLK 128 кГц.

9. Последовательная связь

Atmega16 поставляется с модулями USART и SPI, которые используются для развития последовательной связи с внешними устройствами.

Распиновка Atmega16

На следующем рисунке показана схема выводов микроконтроллера AVR Atmega16.
  • Atmega16 предпочтительнее других микроконтроллеров, таких как Atmel 8051, потому что он обладает гораздо более быстрой способностью выполнять инструкции и состоит из модифицированного процессора RISC.
  • Имеет встроенную флеш-память с функциями загрузчика. Он имеет встроенный 10-битный АЦП, SPI, PWM и EEPROM.

Описание контактов Atmega16

Atmega16 поставляется с 40 контактами, каждый из которых используется для выполнения определенной задачи. Всего имеется 32 контакта ввода / вывода и четыре порта. Каждый порт состоит из 8 контактов ввода / вывода.
  • PORTA = 8 контактов (контакты 33-40)
  • PORTB = 8 контактов (контакты 1-8)
  • PORTC = 8 контактов (контакты 22-29)
  • PORTD = 8 контактов (контакты 14-21)
Ниже приведены основные функции, связанные с контактами. ПОРТА. Пины с 33 по 40 подпадают под PORTA. Он действует как аналоговый вход для аналого-цифрового преобразователя. Однако в отсутствие аналого-цифрового преобразователя PORTA используется как 8-битный двунаправленный порт ввода-вывода. Поставляется с внутренними подтягивающими резисторами. ПОРТБ. Пины с 1 по 8 принадлежат PORTB.Это двунаправленные контакты ввода-вывода. Этот порт также состоит из внутренних подтягивающих резисторов. PORTC. PORTC - это двунаправленный порт ввода-вывода, состоящий из 8 контактов. Пин с 22 по 29 принадлежит этому порту. Как и другие порты, он оснащен внутренними подтягивающими резисторами. PORTD. Пин с 14 по 21 принадлежит этому порту. Это двунаправленный порт, в котором каждый вывод может использоваться как входной или выходной. Однако с этим портом связаны дополнительные функции, такие как прерывания, последовательная связь, таймер и ШИМ. Сброс. Вывод 9 - активный вывод сброса низкого уровня. Импульс низкого уровня, длина которого превышает минимальную, вызовет сброс. Короткие импульсы вряд ли приведут к сбросу. VCC. Pin10 - это вывод питания для этого контроллера. Для приведения этого контроллера в рабочее состояние требуется источник питания 5 В. GND. Pin11 - это контакт заземления. AREF. Pin32 - это аналоговый опорный вывод, который в основном используется для аналого-цифрового преобразователя. AVCC. Pin30 - это AVCC, который является выводом напряжения питания для PORTA и ADC.Он подключен к VCC через фильтр нижних частот в присутствии АЦП. Однако при отсутствии ADC AVCC подключается к VCC извне. Выводы 12 и 13. К этим выводам подключен кварцевый генератор. Atmega16 работает на внутренней частоте 1MHZ; генератор добавлен, чтобы генерировать высокие тактовые импульсы и частоту.

Применения Контроллеры

AVR имеют широкий спектр приложений, где требуется автоматизация. Ниже приведены основные приложения Atmega16.
  • Медицинское оборудование
  • Домашняя автоматизация
  • Встроенные системы
  • Arduino Projects
  • Используется в автомобилях и промышленной автоматизации
  • Бытовая техника и системы безопасности
  • Устройства контроля температуры и давления
Это все на сегодня. Надеюсь, у вас достаточно информации об Atmega16. Если вы не уверены или имеете какие-либо вопросы, вы можете связаться со мной в разделе комментариев ниже. Я хотел бы помочь вам чем могу.Не стесняйтесь держать нас в курсе ваших ценных предложений и отзывов. Они помогают нам предоставлять вам качественный контент. Спасибо, что прочитали статью. Серводвигатель

, соединенный с микроконтроллером AVR Atmega16

Сервомоторы

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

Мы ранее сопрягали серводвигатель со многими микроконтроллерами:

В этом руководстве мы будем взаимодействовать между микросервомотором и микроконтроллером AVR Atmega16 с помощью Atmel Studio 7.0. Серводвигатель рассчитан на работу при 4,8-6 В. Мы можем контролировать его угол поворота и направление, применяя последовательность импульсов или сигналы ШИМ. Обратите внимание, что серводвигатели не могут вращаться на 360 градусов, поэтому они используются там, где непрерывное вращение не требуется. Угол поворота составляет 0–180 градусов или (-90) - (+90) градусов.

Необходимые компоненты

  1. Микро-серводвигатель SG90 Tower Pro
  2. Микроконтроллер Atmega16 IC
  3. Кварцевый генератор 16 МГц
  4. Два конденсатора по 100 нФ
  5. Два конденсатора 22 пФ
  6. Кнопка
  7. Провода перемычки
  8. Макет
  9. USBASP версии 2.0
  10. Светодиод (любой цвет)

Описание контактов серводвигателя

  1. Красный = положительный источник питания (4.От 8 В до 6 В)
  2. Коричневый = Земля
  3. Оранжевый = управляющий сигнал (вывод ШИМ)

Принципиальная схема

Подключите все компоненты, как показано на схеме ниже, чтобы повернуть серводвигатель, используя микроконтроллер AVR . Имеется четыре вывода PWM, мы можем использовать любой вывод PWM Atmega16. В этом руководстве мы используем контакт PD5 (OC1A) для генерации ШИМ. PD5 напрямую подключен к оранжевому проводу серводвигателя, который является контактом входного сигнала.Подключите любой цветной светодиод для индикатора питания. Кроме того, подключите одну кнопку к контакту сброса для сброса Atmega16, когда это необходимо. Подключите Atmega16 к правильной схеме кварцевого генератора. Вся система будет питаться от источника питания 5 В.

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

Управляющий серводвигатель с АРН ATmega16

Как и шаговый двигатель, серводвигатель не требует внешнего драйвера e.г. Драйвер двигателя ULN2003 или L293D. Просто ШИМ достаточно для управления серводвигателем, а сгенерировать ШИМ с микроконтроллера очень легко. Крутящий момент этого серводвигателя составляет 2,5 кг / см, поэтому, если вам требуется больший крутящий момент, этот сервопривод не подходит.

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

Частота, необходимая для получения импульса 20 мс, составляет 50 Гц (f = 1 / T).Итак, для этого серводвигателя, в спецификации указано, что для 0 градусов нам нужно 0,388 мс, для 90 градусов нам нужно 1,264 мс, а для 180 градусов нам нужен импульс 2,14 мс.

Для генерации указанных импульсов мы будем использовать Timer1 Atmega16. Частота процессора составляет 16 МГц, но мы будем использовать только 1 МГц, поскольку у нас не так много периферийных устройств, подключенных к микроконтроллеру, и нет большой нагрузки на микроконтроллер, поэтому 1 МГц подойдет. Предделитель установлен на 1. Таким образом, часы делятся как 1 МГц / 1 = 1 МГц (1 мкс), что отлично. Таймер 1 будет использоваться в качестве режима быстрой ШИМ, т.е. режима 14. Вы можете использовать различные режимы таймеров для генерации желаемой последовательности импульсов. Ссылка дана ниже, а более подробное описание можно найти в официальном листе данных Atmega16.

От

до используйте Timer1 в качестве быстрого режима PWM , нам понадобится значение TOP ICR1 (Input Capture Register1). Чтобы найти ТОП-значение, используйте приведенную ниже формулу:

   f    pwm   =  f  cpu / n x (1 + TOP)  

Это можно упростить до,

  TOP = ( f  cpu / ( f  pwm x n)) - 1  

Где, N = значение набора предделителя

f cpu = частота процессора

f pwm = Ширина импульса серводвигателя 50 Гц

Теперь вычислите значение ICR1, поскольку у нас есть все необходимые значения,

N = 1, f cpu = 1MHz, f pwm = 50Hz

Просто введите значения в формулу выше, и мы получим

ICR1 = 1999

Это означает достижение максимальной степени i.е. 180 0 ICR1 должен быть 1999.

Для кристалла 16 МГц и предделителя, установленного на 16, у нас будет

ICR1 = 4999

Теперь перейдем к обсуждению эскиза.

Программирование Atmega16 с использованием USBasp

Полный код АРН для управления серводвигателем приведен ниже. Код прост и понятен.

Здесь мы закодировали Atmega16, чтобы вращать серводвигатель с 0 0 на 180 0 и снова возвращаться с 180 0 на 0 0 .Этот переход будет завершен за 9 шагов, то есть 0-45-90-135-180-135-90-45-0. Для задержки мы будем использовать внутреннюю библиотеку Atmel Studio, то есть

Подключите USBASP v2.0 и следуйте инструкциям по этой ссылке, чтобы запустить микроконтроллер Atmega16 AVR с помощью USBASP и Atmel Studio 7.0 . Просто создайте эскиз и загрузите его с помощью внешнего инструментария.

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

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