Как загрузить скетч в 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.
- Первый режим программирует наш контроллер для работы от встроенного кварца, частота работы 8 MHz
- Второй режим программирует наш контроллер для работы от внешнего кварца, частота работы 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
После подключения переходим снова к 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
Распиновки и описание процессоров ATmega установленных на ардуино и не только (+схемы пинмапинга )
Особенности
По datasheet (описанию), все контроллеры Atmega обладают следующими особенностями:
- Низкомощным высокопроизводительным 8-зарядным микроконтроллером типа AVR (причем, и у моделей класса Atmega168 20au, и Atmega168 20au).
- Усовершенствованной архитектурой типа RISC (плата всегда ей соответствует).
- Микроконтроллером. Datasheet (описание) говорит, что их 135 у каждой модели.
- Платой и распиновкой, которые обеспечивают выполнение практически всех инструкций в течение 1 цикла.
- Каждый микроконтроллер серии, от самых первых, например, Atmegar3, до наиболее современных (Atmega328 или Atmega2561 rev3), характеризуется полностью статическими темпами работы.
- Огромной производительностью, как утверждает datasheet (описание). При частоте в 16 мегагерц производительность будет равняться 16 миллионам операций за 1 секунду.
- Встроенным 2-тактным устройством для умножения.
- Платой и распиновкой, позволяющими содержание опционального сектора для загрузки с раздельными защитными битами.
- Внутрисистемно программируемой флеш-памятью. Согласно информации из datasheet (описанию), ее объем может равняться 64, 128 или 256 килобайтам.
- Износостойкостью памяти, составляющей 10 000 циклов типа «запись/уничтожение».
- Возможностью платы самопрограммироваться любой другой программой, которая находится в загрузочном секторе.
- Способностью микропроцессора поддерживать режим чтения во время записи.
- Ёмкостью внешнего пространства для программирования одного микропроцессора — 64 килобайта.
- Микрочипом, позволяющим пользователю самостоятельно программировать его защиту (актуально для всех версий: от первых, например, Atmegar3, до современных: Atmega328 или Atmega2561 rev3).
Купить на алиэкспресс http://ali.pub/1t11be
Наименование модели: ATMEGA8-16PI
Производитель: Atmel
Описание: Микроконтроллеры (MCU) AVR 8K FLASH 512B EE 1K SRAM ADC
Купить на алиэкспресс Attiny http://ali.pub/1t11gn
Справочная информация:
Буква V в названии микросхемы означает пониженное напряжение питания;
Буква A — микросхема имеет расширенный диапазон питания от 1.8 до 5.5 Вольт;
Буква P — PicoPower — пониженное потребление;
В столбце АЦП первое число суммы равно количеству несимметричных входов, второе — количеству дифференциальных пар. Если число только одно, значит, микросхема не поддерживает дифференциальные входы АЦП
Купить на алиэкспресс Atmega 2560 http://ali.pub/1t11li
Atmega2560, как и все его аналоги: Atmega2560 rev3, Atmega2560 16au, Atmega320 «Про Мини», Atmegach440g, Atmegach440g Pro Mini, Atmega640 Pro Mini, Atmega168 20au, Atmega328, Atmega2560 16au Pro Mini, Atmegar3 Pro Mini, Atmega168 20au «Про Мини» представляет собой 8-разрядный микроконтроллер низкой мощности, изготовленный на базе ядра типа AVR с архитектурой типа RISC. Он способен выполнять большое количество различных инструкций одновременно.
Купить на алиэкспресс atmega32u4 http://ali.pub/1t11pl
- Высокопроизводительный, малопотребляющий 8-битный микроконтроллер семейства AVR
- Передовая RISC архитектура
- 135 инструкций, большинство выполняется за один такт
- 32х8 регистров общего назначения
- Полностью статический режим работы
- Производительность до 16 MIPS (млн. операций в секунду) при тактовой частоте ядра 16 МГц
- Встроенный двухтактный умножитель
- Энергонезависимая память программ и память данных
- 32 КБайт самопрограммируемой в системе FLASH памяти
- 100000 циклов записи/стирания
- Встроенный загрузчик программ с независимыми битами защиты
- Загрузчик активируется после команды сброса
- Возможен режим чтения во время записи
- Все микроконтроллеры поставляются с «прошитым» USB загрузчиком
- 2.5 КБайт внутренней SRAM данных
- 1 КБайт внутренней EEPROM
- 100000 циклов записи/стирания
- Программная защита от считывания
- 32 КБайт самопрограммируемой в системе FLASH памяти
- JTAG интерфейс (совместимый с IEEE 1149.1)
- Сканирование периферии в соответствии стандарту JTAG
- Расширенный режим отладки
- Поддерживает программирование FLASH, EEPROM и битов защиты
- Высокоскоростной/низкоскоростной модуль USB 2.0 с функцией прерывания по окончании передачи
- Полностью соответствует спецификации Универсальной последовательной Шины версии 2.0
- Поддерживает скорость передачи данных 1.5 Мбит/с и 12 Мбит/с
- Шесть программируемых оконечных точек на вход или выход с возможность передачи сигнала прерывания, групповой и изохронной передачи данных
- Конфигурируемый размер оконечных точек до 256 Байт в режиме сдвоенного банка
- 832 Байта полностью независимой USB DPRAM для распределения оконечных точек
- Сигналы прерывания для останова/возобновления работы
- Возможность сброса ЦПУ по сигналу сброса USB шины
- Соединение/разъединение с USB шиной по запросу микроконтроллера
- Периферия
- Встроенный PLL для USB и высокоскоростного таймера: рабочая частота от 32 МГц до 96 МГц
- Два 8-битных таймера/счетчика с независимым предделителем и режимом сравнения
- Два 16-битных таймера/счетчика с независимым предделителем и режимом сравнения и захвата
- Один 10-битный высокоскоростной таймер/счетчик с PLL (64 МГц) и режимом сравнения
- Четыре 8-битных канала ШИМ
- Четыре канала ШИМ с программируемым разрешением от 2 до 16 бит
- Шесть каналов ШИМ для высокоскоростной работы с программируемым разрешением от 2 до 11 бит
- 12-канальный, 10-битный АЦП
- Программируемый последовательный USART
- Последовательный интерфейс SPI с режимами ведущий/ведомый
- Последовательный интерфейс I2C
- Программируемый сторожевой таймер с независимым встроенным генератором
- Встроенный аналоговый компаратор
- Встроенный датчик температуры
- Особенности микроконтроллера
- Сброс по включению питания и функция определения провалов напряжения питания
- Встроенный калиброванный генератор на 8 МГц
- Встроенный предделитель тактов и переключатель источника тактового сигнала (внутренний RC / внешний генератор) в безостановочном режиме (on-the-fly)
- Внешние и внутренние источники прерываний
- Шесть энергосберегающих режимов ожидание: Idle, ADC Noise Reduction, Power-save, Power-down, Standby и Extended Standby
- Линии ввода/вывода и типы корпуса
- Все линии ввода/вывода совместимы с CMOS и LVTTL уровнями сигнала
- 26 линий ввода/вывода
- 44-выводной корпус TQFP 10х10 мм
- 44-выводной корпус QFN 7х7 мм
- Диапазон напряжения питания 2.7…5.5 Вольта
- Рабочий диапазон температур -40°C…+85°C
- Максимальная тактовая частота
- 8 МГц при напряжении питания 2.7 Вольта
- 16 МГц при напряжении питания 5.5 Вольта
Купить на алиэкспресс ATmega328P http://ali.pub/1t11tv
- ATmega328P
Производитель Atmel Серия AVR® ATmega ПроцессорAVR Размер ядра 8-Bit Скорость 20MHz Тип подключения I²C, SPI, UART/USART Переферия Brown-out Detect/Reset, POR, PWM, WDT Число вводов/выводов 23 Размер программируемой памяти 32KB (32K x 8) Тип программируемой памяти FLASH EEPROM Size 1K x 8 Размер памяти 2K x 8 Напряжение источника (Vcc/Vdd) 1.8 V ~ 5.5 V Преобразователь данных A/D 6x10b Тип осцилятора Internal Рабочая температура -40°C ~ 85°C Корпус 28-DIP
Похожие статьи
Как выиграть спор на Алиэкспресс. Причины и советы.
Перед тем, как оплатить товар, пообщайтесь с продавцом. Уточните у продавца, соответствует ли товар описанию, имеется ли товар в наличии, может ли продавец сфотографировать товар на телефон и выслать обычную необработанную фотографию. А также, соответствует ли товар размерной сетке, и какой размер продавец посоветовал бы вам выбрать, исходя из ваших параметров. Попросите продавца получше упаковать товар, если вещь хрупкая. Ответы продавца помогут вам либо избежать открытия спора, либо скрины переписки будут дополнительным докозательством во время ведения спора. Если продавец будет неохотно вам отвечать, или вообще не ответит, то заказывать у него лучше не стоит.
Простейший трекер для домашней солнечной электростанции
Трекер повышает КПД солнечных панелей
Как известно, солнечные панели имеют максимальный КПД в том случае, когда они расположены перпендикулярно падающим на них солнечным лучам. Но солнце перемещается по небосводу и стационарно установленные панели из-за этого теряют часть своей эффективности. Чтобы повысить их эффективность, используют трекеры — специальные устройства, которые поворачивают панели «вслед» за солнцем:
Распиновка самых популярных плат ардуино Arduino board pinmaping
В посте собраны практически все платы ардуино с распиновкой в хорошем качестве !
Arduino — это эффективное средство разработки программируемых электронных устройств, которые, в отличие от персональных компьютеров, ориентированы на тесное взаимодействие с окружающим миром. Ардуино — это открытая программируемая аппаратная платформа для работы с различными физическими объектами и представляет собой простую плату с микроконтроллером, а также специальную среду разработки для написания программного обеспечения микроконтроллера.
Ардуино может использоваться для разработки интерактивных систем, управляемых различными датчиками и переключателями. Такие системы, в свою очередь, могут управлять работой различных индикаторов, двигателей и других устройств. Проекты Ардуино могут быть как самостоятельными, так и взаимодействовать с программным обеспечением, работающем на персональном компьютере (например, приложениями Flash, Processing, MaxMSP). Любую плату Ардуино можно собрать вручную или же купить готовое устройство; среда разработки для программирования такой платы имеет открытый исходный код и полностью бесплатна.
Язык программирования Ардуино является реализацией похожей аппаратной платформы «Wiring», основанной на среде программирования мультимедиа «Processing».
Теги: ATTINY, Atmega2560 rev3, Atmega2560 16au, Atmega320 «Про Мини», Atmegach440g, Atmegach440g Pro Mini, Atmega640 Pro Mini, Atmega168 20au, Atmega328, Atmega2560 16au Pro Mini, Atmegar3 Pro Mini, Atmega168 20au, процессоры, описание, распиновки, даташит, набор, денис, гиик, китайчик, клуб, ардуино, клуб_ардуино, обзоры, алиэкспресс, denis_geek, denis, geek, chinagreat, club_arduino, arduino, club, aliexpress, денис гиик, denis geek, club arduino, electronica52, electronica52.in.ua,
Добавляем поддержку не родных м/к в среду Arduino IDE
Добавляем поддержку не родных м/к в среду Arduino IDE
Иногда можно использовать в своих проектах умного дома более простые или слабые микроконтроллеры,где ресурсов может быть достаточно для простых операций -Такие микроконтроллеры дешевле.Кроме программирования таких микроконтроллеров в более сложной среде разработки в WinAVR или CodeVisionAVR можно использовать среду Arduino IDE,добавив их поддержку.Иногда могут пригодится микроконтроллеры с бОльшим количеством портов,например Atmega16 и Atmega32 — их так же можно программировать в Arduino.
Обратите внимание,что обычно микроконтроллер с завода настроен на внутренний генератор и чаще всего прошивка загрузчика переключает микроконтроллер на внеший кварц — так что Вы должны позабодиться о подключении кварца к выводам микроконтроллера(выводы XTAL) по стандартной схеме.Исключение — серия attiny и некоторые другие м/к..
Серия микроконтроллеров ATtiny
Поддерживаемые микроконтроллеры:
attiny13,attiny2313, attiny45, attiny44,attiny85, attiny84, attiny25, attiny24, attiny4313
Цоколевка микроконтроллеров
Для программирования ATtiny 13/25/45/85 подключим его к нашему программатору согласно даташиту:
Примечание: У ATtiny13 нет шины i2c и имеет всего 1кб под программу.У ATtiny 25/45/85 имеется последовательный порт на выводах PB4 -RX ,PB3 — TX ,но м/к не поддерживают загрузку через его,только обмен данными.
У ATtiny 2313 и 4313 другая цоколевка,но подключается так же:
Настройка Arduino IDE для микроконтроллеров ATtiny
Для этого необходимо дописать нужные микроконтроллеры в файл boards.txt и распаковать архив arduino-tiny в папку папка_arduino/hardware/arduino/
Последнюю версию arduino-tiny можно найти тут.
Например ,чтобы добавить в список поддерживаемых контроллеров ATtiny85 необходимо добавить следущий текст в boards.txt:
###########################################################################
attiny85.name=Optiboot ATtiny85 @ 8 MHz (internal osc)
attiny85.upload.protocol=arduino
attiny85.upload.speed=9600
#bootloader takes up last 10 pages, so there is a limit on the max size.
attiny85.upload.maximum_size=7616
attiny85.bootloader.low_fuses=0xE2
attiny85.bootloader.high_fuses=0xD7
attiny85.bootloader.extended_fuses=0xFE
attiny85.bootloader.path=optiboot
attiny85.bootloader.file=optiboot_attiny85.hex
attiny85.build.mcu=attiny85
attiny85.build.f_cpu=8000000L
attiny85.build.core=tiny
attiny85.build.variant=tinyX5
# вариант c частотой внутренного генератора 8 мгц.
###########################################################################
Остальные примеры поддерживаемых микроконтроллеров можно посмотреть в файле Prospective Boards.txt архива arduino-tiny .
Для ATtiny13 необходимо другое ядро ,для этого распакуем архив в папку hardware\arduino\cores\core13\
и добавляем в список boards.txt:
#############################################
attiny13.name=ATtiny13 (internal 9.6 MHz clock)
attiny13.bootloader.low_fuses=0x7a
attiny13.bootloader.high_fuses=0xff
attiny13.upload.maximum_size=1024
attiny13.build.mcu=attiny13
attiny13.build.f_cpu=9600000L
attiny13.build.core=core13
attiny13.build.variant=tiny8
###############################################
Сейчас мы можем программировать добавленные микроконтроллеры через плату Arduno или USBasp.
Другие микроконтроллеры ATmega
ATmega8 без загрузчика
Чтобы добавить м/к ATmega8 без загрузчика добавляем в boards.txt следущий текст:
###########################################################################
atmega8A.name=ATmega8A
atmega8A.bootloader.low_fuses=0xFF
atmega8A.bootloader.high_fuses=0xCF
atmega8A.bootloader.unlock_bits=0x3F
atmega8A.bootloader.lock_bits=0x0F
atmega8A.upload.maximum_size=8192
atmega8A.build.mcu=atmega8
atmega8A.build.f_cpu=16000000L
atmega8A.build.core=arduino:arduino
atmega8A.build.variant=standard
# вариант без загрузчика и частотой м/к 16 мгц.
###########################################################################
ATmega8 имеется в списке поддерживаемых как Arduino NG or older с загрузчиком,который отнимает 1 кб ,при таком загрузчике микроконтроллер можно прошивать стандартно,установив его например в Arduino UNO.Сконфигурировать свой загрузчик на другую частоту вы можете в Конструкторе Bootloader`а.
ATmega32 ,ATmega16,ATmega1284,ATmega644,ATmega324
Для добавления данных микроконтроллеров необходимо распаковать из архива avr-netino папку hardware\avrnetio и поместить её в папку Arduiono_ide\hardware\ .Другие папки с примерами и библиотеками можно так же распаковать в соотвествующие папки при необходимости.
Расмотрим пример на микроконтроллере ATmega32:
Микроконтроллер ATmega32 имеет 40 ножек из них 32 — это порты ввода вывода.
Расшифруем основные из них:
D — это цифровые выводы в нумерации arduino.
AI — аналоговые входы.
PWM — выводы с возможностью ШИМ.
Если Вы правельно скопировали папку avrnetio ,то после запуска Arduino IDE Вы увидите добавленные микроконтроллеры в общем списке.Вы можете исправить или удалить некоторые ненужные микроконтроллеры в файле hardware\avrnetio\board.txt
Если сейчас подключить микроконтроллер к Arduno или USBasp ,то можно уже заливать скетчи из среды Arduino IDE .
Обратите внимание,что новый м/к запрограммирован работать от внутреннего генератора и при прошивке загрузчика (через меню сервис-> записать загрузчик) поменяются фьюзы на режим от внешнего кварца.Загрузчик прошивать не обязательно,если Вы не хотите Заливать скетчи через последовательный порт.Перед прошивкой загрузчика можно поправить фьюзы в файле board.txt в строках bootloader.low_fuses и bootloader.high_fuses используя калькулятор фьзов.
Хотя avr-netino и поставляется с загрузчиками,но загрузка через последовательный порт на ATmega32 у меня не заработала.Для загрузки через его необходимо подсунуть «правельный» загрузчик в папку /hardware/avrnetio/bootloaders/optiboot/ из архива boots.zip ,заменив в файле board.txt имя файла загрузчика в строке bootloader.file соотвествующего микроконтроллера.Сконфигурировать свой загрузчик на другую частоту вы можете в Конструкторе Bootloader`а
распиновка, схема подключения и программирование [Амперка / Вики]
Arduino Nano Every — компактная платформа для разработки с 8-битным микроконтроллером ATmega4809.
Подключение и настройка
Шаг 1
Шаг 2
Элементы платы
Микроконтроллер ATmega4809
Сердцем платформы является 8-битный микроконтроллер семейства megaAVR — ATmega4809 с тактовой частотой до 20 МГц. Контроллер предоставляет 48 КБ Flash-памяти для хранения прошивки, 6 КБ оперативной памяти SRAM и 256 байт энергонезависимой памяти EEPROM для хранения данных.
На плате Arduino Nano Every частота контроллера установлена на 16 МГц.
Микроконтроллер ATSAMD11D14A
Микроконтроллер ATSAMD11D14A, с прошивкой USB-UART преобразователя, обеспечивает связь контроллера ATmega4809 с USB-портом компьютера. При подключении к ПК Arduino Nano Every определяется как виртуальный COM-порт.
USB порт
Разъём micro-USB предназначен для прошивки платформы Arduino Nano Every с помощью компьютера.
Светодиодная индикация
Имя светодиода | Назначение |
---|---|
ON | Информационный индикатор питания |
RX и TX | Мигают при обмене данными между Arduino и ПК |
L | Пользовательский светодиод на 13 пине микроконтроллера. Используйте определение LED_BUILTIN для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается. |
Понижающий регулятор 5V
Импульсный понижающий регулятор напряжения MPM3610 обеспечивает питание микроконтроллера ATmega4809 и другой логики платформы при подключении платформы через пин Vin
. Диапазон входного напряжения от 7 до 18 вольт. Выходное напряжение 5 В с максимальным выходным током 1,2 А.
Понижающий регулятор 3V3
Линейный понижающий регулятор напряжения AP2112K-3.3 обеспечивает питание микроконтроллера ATSAMD11D14A. На регулятор поступает напряжение с линии 5V
. Выходное напряжение 3,3 В с максимальным выходным током 600 мА.
Кнопка RESET
Аналог кнопки RESET
обычного компьютера: служит для сброса микроконтроллера.
Распиновка
Пины питания
VIN Пин для подключения внешнего источника напряжения в диапазоне от 5 до 18 вольт.
- 5V Пин от стабилизатора напряжения с выходом 5 вольт и максимальных током 1,2 А. Регулятор обеспечивает питание микроконтроллера ATmega4809 и другой вспомогательной логики платы.
- 3V3 Пин от стабилизатора напряжения с выходом 3,3 вольта и максимальных током 600 мА. Регулятор обеспечивает микроконтроллера ATSAMD11D14A.
GND Выводы земли.
Порты ввода/вывода
Цифровые входы/выходы 22 пина:
0
–21
Логический уровень единицы — 5 В, нуля — 0 В. Максимальный ток выхода — 20 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.ШИМ 5 пинов:
3
,5
,6
,9
и10
Позволяет выводить аналоговые значения в виде ШИМ-сигнала. Разрядность ШИМ не меняется и установлена в 8 бит.АЦП 8 пинов:
A0
–A7
Позволяет представить аналоговое напряжение в виде цифровом виде. Разрядность АЦП не меняется и установлена в 8 бит.- TWI/I²C пины
SDA/18
иSCL/19
Для общения с периферией по интерфейсу «I²C». Для работы используйте библиотеку Wire. - SPI пины
MOSI/11
,MISO/12
иSCK/13
Для общения с периферией по интерфейсу «SPI». Для работы — используйте библиотеку SPI. UART/Serial
- Serial пины:
RX/26
иTX/27
Выводы шины соединены с соответствующими выводами микроконтроллера ATSAMD11D14A с прошивкой USB-UART преобразователя.
- Serial пины:
Принципиальная и монтажная схемы
Габаритный чертёж
Характеристики
Общие
Чипы: ATmega4809, ATSAMD11D14A
Пинов ввода-вывода всего: 22
Напряжение логических уровней: 5 В
Пины с АЦП: 8
Разрядность АЦП: 10 бит
Пины с ШИМ: 5
Разрядность ШИМ: 8 бит
Аппаратных интерфейсов SPI: 1
Аппаратных интерфейсов I²C / TWI: 1
Аппаратных интерфейсов UART / Serial: 1
Максимальный ток с пина или на пин: 20 мА
Максимальный выходной ток пина 5V: 1,2 A
Максимальный выходной ток пина 3V3: 600 мA
Входное напряжение через пин Vin: 7–18 В
Габариты платы: 45×18 мм
Микроконтроллер ATmega4809
Чип: Microchip ATmega4809
Ядро: 8-битный megaAVR
Тактовая частота: 20 МГц (В Arduino настроен на 16 МГц)
Flash-память: 48 КБ
SRAM-память: 6 КБ
EEPROM-память: 256 Б
Ресурсы
прошивка загрузчика Arduino через Arduino IDE, знакомство c AVRDUDE
ATmega8: прошивка загрузчика Arduino через Arduino IDE, знакомство c AVRDUDE
разделы: AVR , Arduino , Программаторы , дата: 3 марта 2014г.
Идея использовать младшее семейство AVR ATtiny для мелких проектов вместо Arduino — логична и красива, но приходиться учитывать реальное положение вещей. И если посмотреть цены на ebay.com, то получится, что ATmega8 будет лучше и дешевле многих ATtinyXX. Если вы не завод, и не имеете возможность закупаться оптом непосредственно у производителя, то для многих проектов будет проще использовать ATmega8 нежели изгаляться с программной эмуляцией TWI/I2C, UART и пр..
В качестве теории. На ATmega8 работал Arduino NG(next generation). Т.о. скетчи Arduino должны быть полностью совместимы с ATmega8. Вооружившись этим знанием попробуем что-нибудь прошить.
Распиновку и соответсвие выводам Arduino можно посмотреть здесь: http://arduino.cc/en/Hacking/PinMapping
Так же как в предыдущем посте соберите схему подцепив на 19-й пин микросхемы (digital pin 13 Arduino) резистор со сетодиодом. Должно получиться как-то так:
- В Arduino IDE меню-> сервис выберете опции:
- Плата -> Arduino NG or older w/ ATmega8
- Программатор -> Arduino as ISP
Далее откройте из примеров скетч «Blink». Здесь нужно будет исправить sleep(1000) на sleep(100). Профайл платы NG подразумевает работу с 16 Мгц резонатором, а у нас микроконтроллер работает от втроенного резонатора на 1 МГц, т.е. в 16 раз медленее.
Залейте скетч в микроконтроллер. Диод должен сразу начать мигать. У меня в перый раз прошивка прошла без единого варнинга, а потом начало выкидывать предупреждение:
что означает, что прошивка прошла успешна, но проверка закончилась ошибкой. Хотя у меня микроконтролер успешно прошивался и работал с таким варнингом, ситуация не хорошая. Вообще, если говорить об ошибках, то самое страшное, что можно получить на данном этапе это наверное:
1) контроллер не отвечает:
avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
2) неверный тип микроконтроллера:
Раз речь пошла об ошибках и косяках пошивки, думаю настало время познакомиться с avrdude, утилитой c помощью которой Arduino IDE шьет микроконтроллеры.
В Arduino IDE: меню -> настройки отметье галочкой чекбокс: «показывать подробный вывод при загрузке» и загрузите скетч в микроконтроллер еще раз. Если Arduino IDE запущен был из командной строки, то в консоли должен появиться длинный лог, где нас будет интересовать первая строка:
/opt/arduino/hardware/tools/avrdude -C/opt/arduino/hardware/tools/avrdude.conf -v -v -v -v -patmega8 -carduino -P/dev/ttyUSB0 -b19200 -D -Uflash:w:/tmp/build4429286683533029884.tmp/Blink.cpp.hex:i
- где:
- -С —конфигурационный файл
- -p —модель микроконтроллера
- -с —модель программатора
- -P —порт
- -b —скорость порта
- -U —операции с памятью
Часто при ошибках выводится сообщение c предложеним запустить avrdude с опцией -F.
use -F to override this check
НИКОГДА не делайте этого! Если есть ошибка, постарайтесь разобраться в проблеме. Иначе можно заблокировать чип.
Наиболее интересная опция для нас «-U», операции с памятью. Формат опции: тип_памяти:операция:файл:формат_файла
для начала, можно попробовать считать прошивку микроконтроллера:
-U flash:r:my.hex:i
- где:
- r — чтение прошивки
- i — формат файла прошивки Intel
введите в консоли команду:
/opt/arduino/hardware/tools/avrdude -C/opt/arduino/hardware/tools/avrdude.conf -v -patmega8 -carduino -P/dev/ttyUSB0 -b19200 -U flash:r:my.hex:i
на выходе будем иметь лог:
/opt/arduino/hardware/tools/avrdude -C/opt/arduino/hardware/tools/avrdude.conf -v -patmega8 -carduino -P/dev/ttyUSB0 -b19200 -U flash:r:my.hex:i avrdude: Version 5.11, compiled on Sep 9 2011 at 16:00:41 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "/opt/arduino/hardware/tools/avrdude.conf" User configuration file is "/home/flanker/.avrduderc" User configuration file does not exist or is not a regular file, skipping Using Port : /dev/ttyUSB0 Using Programmer : arduino Overriding Baud Rate : 19200 AVR Part : ATMEGA8 Chip Erase delay : 10000 us PAGEL : PD7 BS2 : PC2 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 4 20 128 0 no 512 4 0 9000 9000 0xff 0xff flash 33 10 64 0 yes 8192 64 128 4500 4500 0xff 0x00 lfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00 lock 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00 calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 Programmer Type : Arduino Description : Arduino Hardware Version: 2 Firmware Version: 1.18 Topcard : Unknown Vtarget : 0.0 V Varef : 0.0 V Oscillator : Off SCK period : 0.1 us avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.02s avrdude: Device signature = 0x1e9307 avrdude: safemode: lfuse reads as DF avrdude: safemode: hfuse reads as CA avrdude: reading flash memory: Reading | ################################################## | 100% 7.43s avrdude: writing output file "my.hex" avrdude: safemode: lfuse reads as DF avrdude: safemode: hfuse reads as CA avrdude: safemode: Fuses OK avrdude done. Thank you.
Итак, получив, в итоге, сообщение об успешном завершении: «avrdude done. Thank you», мы получаем файл с копией прошивки микроконтроллера. Пара слов о фьюзах. Это биты конфигурации микроконтроллера. Если запись фьюзов пройдет с ошибкой, микроконтроллер скорее всего заблокируется. Если сконфигурировать их неправильно, микроконтроллер скорее всего тоже заблокируется. Пока не будем их трогать, но есть одна возможность. Часта микроконтроллера по умолчанию 1МГц. Можно переключить его на работу внешним резонатором прошив загрузчик arduino. Меню -> Сервис -> Записать загрузчик.
Загрузчик состоит из flash-прошивки и фьюз-битов конфигурации, которые предусматривают работу от внешнего резонатора. Т.е. прошивая загрузчик, мы конфигурируем микроконтроллер на работу с внешним резонатором. Ну, а что касается самого загрузчика, то он потом затрется новой прошивкой, фьюзы останутся.
Перед прошивкой загрузчика, установите резонатор с частотой 1-16 МГц на 9 и 10 pin микросхемы. Там еще «по уму» должны быть керамические конденсаторы, но работать будет и без них. Для проверки сойдет. Схема:
После прошивки частоту можно будет менять заменой кварца. Так же у меня пропал варнинг при проверке после прошивки: «verification error». В целом, микроконтроллер с кварцом работает стабильнее.
Плата Arduino Uno — описание, схема, распиновка
Arduino Uno – плата от компании Arduino, построенная на микроконтроллере ATmega 328.
Плата имеет на борту 6 аналоговых входов, 14 цифровых выводов общего назначения (могут являться как входами, так и выходами), кварцевый генератор на 16 МГц, два разъема: силовой и USB, разъем ISCP для внутрисхемного программирования и кнопку горячей перезагрузки устройства. Для стабильной работы плату необходимо подключить к питанию либо через встроенный USB Разъем, либо подключив разъем питания к источнику от 7 до 12В. Через переходник питания плата также может работать и от батареи формата Крона.
Основное отличие платы от предыдущих – для взаимодействия по USB Arduino Uno использует отдельный микроконтроллер ATmega8U2. Прошлые версии Arduino использовали для этого микросхему программатора FTDI.
Несложно догадаться, что благодаря своему итальянскому происхождению, слова “Arduino” и “Uno” взяты именно из этого языка. Компания назвалась “Arduino” в честь короля Италии 11 века Ардуина, а Уно переводится с итальянского как “первый”.
Печатная плата Arduino Uno является Open-Hardware, поэтому все ее характеристики доступны в открытом доступе.
Длина и ширина платы составляют 69 мм x 53 мм.
Силовой и USB разъемы выступают за границы печатной платы на 2 мм.
Расстояние между выводами соответствует стандарту 2.54 мм, однако расстояние между 7 и 8 контактами составляет 4 мм.
Плата Arduino Uno имеет на борту 3 способа подключения питания: через USB, через внешний разъем питания и через разъем Vin, выведенный на одну из гребенок сбоку. Платформа имеет на борту встроенный стабилизатор, позволяющий не только автоматически выбирать источник питания, но и выравнивать ток до стабильных 5 вольт, необходимых контроллеру для работы.
Внешнее питание можно подавать как напрямую от USB порта компьютера, так и от любого AC/DC блока питания через разъем питания или USB.
На плате предусмотрено несколько выводов, позволяющих запитывать от нее подключенные датчики, сенсоры и актуаторы. Все эти выводы помечены:
- Vin – вход питания, используется для получения питания от внешнего источника. Через данных вывод происходит только подача питания на плату, получить оттуда питание для внешних устройств невозможно. На вход Vin рекомендуется подавать напряжение в диапазоне от 7В до 20В, во избежании перегрева и сгорания встроенного стабилизатора.
- 5V – источник пятивольтового напряжения для питания внешних устройств. При получении питания платой из любых других источников (USB, разъем питания или Vin) на этом контакте вы всегда сможете получить стабильное напряжение 5 вольт. Его можно вывести на макетную плату или подать напрямую на необходимое устройство.
- 3V3 – источник 3.3 вольтового напряжения для питания внешних устройств. Работает по такому-же принципу, что и контакт 5V. С данной ножки также можно вывести напряжение на макетную плату, либо подать на необходимый датчик/сенсор напрямую.
- GND – контакт для подключения земли. Необходим для создания замкнутой цепи при подключении к контактам Vin, 5V или 3V3. Во всех случаях ножку GND необходимо выводить как минус, иначе цепь не будет замкнута и питание (что внешнее, что внутреннее) не подасться.
Платформа Arduino Uno имеет на борту микроконтроллер ATmega328, который обладает Flash, SRAM и EEPROM памятью.
- FLASH – 32kB, из которых 0.5kB используется для хранения загрузчика
- SRAM (ОЗУ) – 2kB
- EEPROM – 1kB (доступна с помощью библиотеки EEPROM)
На плате выведены 14 цифровых пинов (контактов), любой из которых может работать как на вывод информации, так и на ввод. Для этого в коде программ применяются специальные функции:
Функция pinMode служит для задания режима работы контакта, будет-ли он работать на выход или на вход. В данной функции задается номер контакта, которым мы в дальнейшем собираемся управлять.
digitalRead()
Функция считывает текущее значение с заданного контакта – его значение может быть HIGH или LOW.
digitalWrite()
Функция передает определенное значение на заданный контакт – оно может быть HIGH или LOW.
Все выводы обладают пятивольтовой логикой, то есть выдают логическую единицу как напряжение 5В.
Каждый вывод платы имеет нагрузочный резистор номиналом 20-50 кОм и может пропускать до 40 мА, но по умолчанию все они отключены.
Также, на контактных площадках Arduino Uno выведены специальные интерфейсы подключения различных цифровых устройств:
Arduino Uno имеет на своей платформе 6 аналоговых входов с разрешением 10 Бит на каждый вход. Данное разрешение говорит нам о том, что сигнал, приходящий на него, можно оцифровать в диапазоне от 0 до 1024 условных значений.
Считывать значения с данных контактов можно функцией analogRead(), а передавать значения – функцией analogWrite().
Так как Arduino Uno обладает пятивольтовой логикой, то и значение будет находиться в диапазоне от 0 до 5 вольт, однако при помощи функции analogReference() можно изменять верхний предел.
Данные выводы используются для обмена данными по протоколу UART. Контакт RX используется для получения данных, а контакт TX – для их отправки. Эти выводы подключены к соответствующим контактам последовательной шины схемы ATmega8U2 USB-to-TTL, выступающей в данном контексте в роли программатора.
Данные контакты могут конфигурироваться на вызов различных прерываний, когда программа останавливает выполнение основного кода и производит выполнение кода прерывания.
Вызов прерывания может быть задан по-разному:
- на младшем значении
- на переднем или заднем фронте
- при изменении значения
Более подробно прерывания описаны в отдельной статье нашей Вики.
С помощью данных контактов происходит подключение периферии, работающей через интерфейс SPI. Для работы с данным интерфейсом в среде Arduino IDE предусмотрена отдельная библиотека с одноименным названием.
При помощи данных контактов к Arduino можно подключать внешние цифровые устройства, умеющие общаться по протоколу I2C. Для реализации интерфейса в среде Arduino IDE присутствует библиотека Wire.
Для проверки вашего кода по ходу его написания, самый удобный способ индикации – встроенный светодиод. Подав значение HIGH на 13 контакт, он загорается на плате красным цветом, тем самым показывая, что условие вашей программы выполнилось (или наоборот, что-то пошло не так). 13 контакт удобно использовать в коде программы для проверки ошибок и отладки.
Кстати, хотим заметить, что последовательно к 13-ому контакту подключен резистор на 220 Ом, поэтому не стоит использовать его для вывода питания ваших устройств.
Помимо всех вышеперечисленных, на платформе Uno имеется еще 2 дополнительных контакта.
AREF
Данный контакт отвечает за определение опорного напряжения аналоговых входов платформы. Используется только с функцией analogReference().
RESET
Данный контакт необходим для аппаратной перезагрузки микроконтроллера. При подаче сигнала низкого уровня (LOW) на контакт Reset, происходит перезагрузка устройства.
Данный контакт обычно соединен с аппаратной кнопкой перезагрузки, установленной на плате.
Для осуществления связи с внешними устройствами (компьютером и другими микроконтроллерами) на плате существует несколько дополнительных устройств.
На контактах 0 (RX) и 1 (TX) контроллер ATmega328 поддерживает UART – последовательный интерфейс передачи данных. ATmega8U2, выполняющий на плате роль программатора, транслирует этот интерфейс через USB, позволяя платформе общаться с компьютером через стандартный COM-порт. Прошивка, установленная в контроллер ATmega8U2, имеет на борту стандартные драйверы USB-COM, поэтому для подключения не потребуется никаких дополнительных драйверов.
Внимание! На платах китайского производства, вместо контроллера ATmega8U2 используется другой программатор – Ch440G, который не распознается Windows в автоматическом режиме. Для него необходимо установить дополнительный драйвер, о чем подробно написано в нашем блоге – Установка драйверов микросхемы Ch440G для Arduino.
При помощи мониторинга последовательной шины, называемого Serial Monitor, среда Arduino IDE посылает и получает данные от Arduino. При обмене данными на плате видно мигание светодиодов RX и TX. При использовании UART-интерфейса через контакты 0 и 1, светодиоды не мигают.
Плата может взаимодействовать по UART-интерфейсу не только через аппаратным, но и через программным способом. Для этого в среде Arduino IDE предусмотрена библиотека SoftwareSerial.
Также, на плате предусмотрены выводы основных интерфейсов взаимодействия с периферией: SPI и I2C (TWI).
Платформа Arduino Uno, как и все другие Arduino-совместимые платформы, программируется в среде Arduino IDE. Для работы с ней в настройках программы необходимо выбрать нужную платформу. Это можно сделать в верхнем меню -> Tools -> Boards -> Arduino UNO.
Выбор микроконтроллера зависит от того, какой стоит именно на вашей плате. Обычно это ATmega328.
Плата как правило поставляется уже прошитая необходимым загрузчиком и должна определяться системой в автоматическом режиме (за исключением плат на основе программатора Ch440G). Связь микроконтроллера с компьютером осуществляется стандартным протоколом STK500.
Помимо обычного подключения, на плате также размещен разъем ISCP для внутрисхемного программирования, позволяющий перезаписать загрузчик или загрузить прошивку в контроллер в обход стандартного программатора.
Обычно, в микроконтроллерах перед загрузкой кода предусмотрен вход платы в специальный режим загрузки, однако Arduino Uno избавлена от данного действия для упрощения загрузки в нее программ. Стандартно, перед загрузкой каждый микроконтроллер получает сигнал DTR (digital reset), но в данной плате вывод DTR подключен к микроконтроллеру ATmega8U2 через 100 нФ конденсатор и программатор сам управляет процессом загрузки новой прошивки в контроллер. Таким образом, загрузка прошивки происходит моментально после нажания кнопки Upload в среде Arduino IDE.
Эта функция имеет еще одно интересное применение. Каждый раз при подключении платформы к компьютеру с OC Windows, MacOS или Linux, происходит автоматическая перезагрузка платы и в следующие полсекунды на плате работает загрузчик. Таким образом, для избежания получения некорректных данных, во время загрузки прошивок происходит задержка первых нескольких байтов информации.
Arduino Uno поддерживает отключение автоматической перезагрузки. Для этого необходимо разорвать линию RESET-EN. Еще один способ отключения автоматической перезагрузки – подключение между линиями RESET-EN и линией питания 5V резистора номиналом 110 Ом.
Для защиты USB порта компьютера от обратных токов, короткого замыкания и сверхнагрузки, на платформе Arduino Uno встроен автоматический самовостанавливающийся предохранитель. При прохождении тока питания более 500 мА через USB порт, предохранитель автоматически срабатывает и размыкает цепь питания до тех пор, пока значения тока не вернуться к нормальным.
распиновка, схема подключения и программирование [Амперка / Вики]
Arduino Uno — флагманская платформа для разработки на базе микроконтроллера ATmega328P. На Arduino Uno предусмотрено всё необходимое для удобной работы с микроконтроллером: 14 цифровых входов/выходов (6 из них могут использоваться в качестве ШИМ-выходов), 6 аналоговых входов, кварцевый резонатор на 16 МГц, разъём USB, разъём питания, разъём для внутрисхемного программирования (ICSP) и кнопка сброса.
Подключение и настройка
Для работы с платой Arduino Uno в операционной системе Windows скачайте и установите на компьютер интегрированную среду разработки Arduino — Arduino IDE.
Видеообзор платформы Arduino
Что-то пошло не так?
Элементы платы
Микроконтроллер ATmega328P
Сердцем платформы Arduino Uno является 8-битный микроконтроллер семейства AVR — ATmega328P.
Микроконтроллер ATmega16U2
Микроконтроллер ATmega16U2 обеспечивает связь микроконтроллера ATmega328P с USB-портом компьютера. При подключении к ПК Arduino Uno определяется как виртуальный COM-порт. Прошивка микросхемы 16U2 использует стандартные драйвера USB-COM, поэтому установка внешних драйверов не требуется.
Пины питания
VIN: Напряжение от внешнего источника питания (не связано с 5 В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, если к устройству подключён внешний адаптер.
5V: На вывод поступает напряжение 5 В от стабилизатора платы. Данный стабилизатор обеспечивает питание микроконтроллера ATmega328. Запитывать устройство через вывод
5V
не рекомендуется — в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.3.3V: 3,3 В от стабилизатора платы. Максимальный ток вывода — 50 мА.
GND: Выводы земли.
IOREF: Вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера. В зависимости от напряжения, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5 В, так и с 3,3 В устройствами.
Порты ввода/вывода
Цифровые входы/выходы: пины
0
–13
Логический уровень единицы — 5 В, нуля — 0 В. Максимальный ток выхода — 40 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.ШИМ: пины
3
,5
,6
,9
,10
и11
Позволяют выводить 8-битные аналоговые значения в виде ШИМ-сигнала.АЦП: пины
A0
–A5
6 аналоговых входов, каждый из которых может представить аналоговое напряжение в виде 10-битного числа (1024 значений). Разрядность АЦП — 10 бит.TWI/I²C: пины
SDA
иSCL
Для общения с периферией по синхронному протоколу, через 2 провода. Для работы — используйте библиотекуWire
.SPI: пины
10(SS)
,11(MOSI)
,12(MISO)
,13(SCK)
.
Через эти пины осуществляется связь по интерфейсу SPI. Для работы — используйте библиотекуSPI
.UART: пины
0(RX)
и1(TX)
Эти выводы соединены с соответствующими выводами микроконтроллера ATmega16U2, выполняющей роль преобразователя USB-UART. Используется для коммуникации платы Arduino с компьютером или другими устройствами через классSerial
.
Светодиодная индикация
Имя светодиода | Назначение |
---|---|
RX и TX | Мигают при обмене данными между Arduino Uno и ПК. |
L | Светодиод вывода 13 . При отправке значения HIGH светодиод включается, при отправке LOW – выключается. |
ON | Индикатор питания на плате. |
Разъём USB Type-B
Разъём USB Type-B предназначен для прошивки платформы Arduino Uno с помощью компьютера.
Разъём для внешнего питания
Разъём для подключения внешнего питания от 7 В до 12 В.
ICSP-разъём для ATmega328P
ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega328P.
С использованием библиотеки SPI
данные выводы могут осуществлять связь с платами расширения по интерфейсу SPI. Линии SPI выведены на 6-контактный разъём, а также продублированы на цифровых пинах 10(SS)
, 11(MOSI)
, 12(MISO)
и 13(SCK)
.
ICSP-разъём для ATmega16U2
ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega16U2.
Распиновка
Принципиальная и монтажная схемы
Характеристики
Микроконтроллер: ATmega328
Тактовая частота: 16 МГц
Напряжение логических уровней: 5 В
Входное напряжение питания: 7–12 В
Портов ввода-вывода общего назначения: 20
Максимальный ток с пина ввода-вывода: 40 мА
Максимальный выходной ток пина 3.3V: 50 мА
Максимальный выходной ток пина 5V: 800 мА
Портов с поддержкой ШИМ: 6
Портов, подключённых к АЦП: 6
Разрядность АЦП: 10 бит
Flash-память: 32 КБ
EEPROM-память: 1 КБ
Оперативная память: 2 КБ
Габариты: 69×53 мм