Arduino
66 постов
66 постов
Плата LGT8F328P-SSOP20 основана на китайском микроконтроллер LGT8F328p и является клоном популярной AVR ATmega328p (Arduino NANO). Микроконтроллер LGT8F328p практически полностью совместим с микроконтроллером ATmega328p и обладает рядом дополнительных функций и возможностей превышающих ATmega328p.
Основные характеристики LGT8F328P
FLASH (ПЗУ): 32 Кбайт
SRAM (ОЗУ): 2 Кбайт
E2PROM (EEPROM): 0K / 1K / 2K / 4K / 8K (эмуляция)
PWM (ШИМ): 8
Частота: 32 МГц
АЦП: 9 пинов, 12 бит
ЦАП: 1 пин, 8 бит
Силовые пины: 4 (до 80 мА)
Таймеры 2x 8bit, 2x 16bit
UART: 1
SPI: 1
I2C: 1
PLL: 1
Опорное напряжение: 1.024В / 2.048В / 4.09В ± 0,5%
Логический уровень: 5В
Для прошивки LGT8F328P-SSOP20 через Arduino (Nano или UNO) необходимо поэтапно выполнить несколько действий:
Добавим поддержку платы LGT8F328P-SSOP20 в Arduino IDE, для этого добавим ссылку в менеджер плат
Далее в менеджере плат находим плату lgt8fx и устанавливаем ее:
2. Откройте для редактирования файл — HardwareSerial.h
Найти его можно в Arduino\hardware\arduino\avr\cores\arduino\
Найдите в файле строку:
#define SERIAL_RX_BUFFER_SIZE 64
и замените ее на:
#define SERIAL_RX_BUFFER_SIZE 250
сохраните файл.
3. Приготовьте плату Arduino Nano или UNO
Откройте в примерах скетч — LarduinoISP (если скетча нет в примерах, выберите в менеджере плат плату LGT8F328P, скетч должен появиться в примерах, откройте его, после чего в менеджере плат выберите плату Arduino)
Загрузите скетч плату Arduino.
Верните в исходное состояние файл HardwareSerial.h и сохраните файл.
Подключите электролитический конденсатор 47 мкФ к плате Arduino между контактами RST и GND.
4. Подключение плату LGT8F328P-SSOP20 к плате Arduino:
GND GND
VCC +5V
SWD D12
RST D10
SWC D13
Настройте параметры платы LGT8F328P-SSOP20 в Arduino IDE как показано на скриншоте:
Если необходимо записать загрузчик нажмите — Записать загрузчик.
Если необходимо записать скетч нажмите — Загрузить через программатор.
Загрузите скетч BLINK, после загрузки скетча на плате LGT8F328P-SSOP20 должен начать мигать светодиод.
void setup() {
pinMode(LED_BUILTIN, OUTPUT); }
void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(100); }
ATtiny45 — низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny45 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.
Характеристики:
Высокопроизводительный, экономичный 8-разр. AVR-микроконтроллер
Усовершенствованная RISC-архитектура
— Обширный набор из 120 инструкций большинство которых выполняются за один цикл
— 32 x 8 универсальных регистров общего назначения
— Полностью статическая работа
Энергонезависимые памяти программ и данных
— Внутрисистемно программируемая флэш-память программ размером 4 кбайт с износостойкостью 10 тыс. циклов запись/стирание
— 256 байт внутрисистемно-программируемого ЭСППЗУ с износостойкостью 100 тыс. циклов записи/стирания
— 256 байт внутреннего статического ОЗУ
— Программируемые биты защиты флэш-памяти и ЭСППЗУ
Отличительные особенности периферийных устройств
— 8-разр. таймер-счетчик с предделителем и двумя каналами ШИМ
— 8-разр. высокоскоростной таймер-счетчик с отдельным предварительным делителем 2 высокочастотных выхода ШИМ с отдельными регистрами задания порога сравнения
Программируемый генератор паузы
— Универсальный последовательный интерфейс с отдельным детектором условия старт
— 10-разр. АЦП
4 несимметричных канала
2 дифференциальных канала с программируемым усилением (1x, 20x)
— Программируемый сторожевой таймер с отдельным встроенным генератором
— Встроенный аналоговый компаратор
Специальные функции микроконтроллера
— Встроенная отладочная система debugWIRE
— Внутрисистемное программирование через порт SPI
— Внешние и внутренние источники прерываний
— Экономичные режимы: холостой ход (Idle), уменьшение шумов АЦП (ADC Noise Reduction) и пониженная мощность (Power-down)
— Усовершенствованная схема сброса при подаче питания
— Программируемая схема контроля напряжения питания
— Встроенный калиброванный генератор
Ввод-вывод и корпуса
— Шесть программируемых линий ввода-вывода
— 8-выв. корпус PDIP и 8-выв. SOIC
Рабочее напряжение
— 1.8 — 5.5В для ATtiny45V
— 2.7 — 5.5В для ATtiny45
Градации по быстродействию
— ATtiny45V: 0 — 4 МГц при 1.8 — 5.5В, 0 — 10 МГц при 2.7 — 5.5В
— ATtiny45: 0 — 10 МГц при 2.7 — 5.5В, 0 — 20 МГц при 4.5 — 5.5В
Малый потребляемый ток
— Активный режим: 1 МГц, 1.8В: 450 мкА
— Режим пониженной мощности: 0.1 мкА при 1.8В
Микроконтроллер ATtiny45 отлично подходит для маленьких и дешевых проектов, а поддержка средой программирования Arduino IDE заметно упрощает работу с микроконтроллером.
Для поддержки ATtiny45 в Arduino IDE необходимо выполнить несколько простых операций:
Добавление поддержки платы
Откройте в Arduino IDE вкладку Файл > Настройки и добавьте ссылку для менеджера плат
Далее перейдите во вкладку Инструменты > Плата > Менеджер плат
Выберите и установите пакет новых плат ATtiny45, ATtiny85, ATtiny44, ATtiny84
Далее в Инструменты > Плата выберите плату ATtiny45.
Установите параметры платы как показано на скриншоте:
Для прошивки скетча Вам понадобится программатор USBAsp
Схема подключения
Распиновка программатора USBAsp
Для удобства использования и прошивки микроконтроллера ATtiny45 можно воспользоваться отладочной платой HW-260.
В настройках платы нужно выбрать поддержку Attiny45 и установить частоту 8 MHz internal, остальные параметры менять не нужно. Далее необходимо выставить нужные фьюзы для микроконтроллера, чтобы он всегда работал на выбранной Вами частоте. Для этого в настройках Arduino IDE выберите программатор USBasb и нажмите Инструменты > Записать загрузчик. Эту операцию необходимо проводить всего один и снова повторить если Вы будете менять частоту работы микроконтроллера.
Для загрузки скетча в настройках Arduino IDE выберите программатор USBasb и во вкладке Скетч нажмите на Загрузить через программатор (или просто нажать кнопку — Загрузить)
Для примера, можно загрузить простой скетч мигания светодиода, к выводу 3 (PB4) контроллера подключите светодиод через резистор 200 Ом.
void setup() {
pinMode(4, OUTPUT);
}
void loop() {
digitalWrite(4, HIGH);
delay(1000);
digitalWrite(4, LOW);
delay(1000);
}
После загрузки скетча, светодиод начнет мигать.
Для нормальной работы микроконтроллера необходимо подать напряжение VCC через резистор 10 кОм на вход RST микроконтроллера.
Примеры использования
ЧАСЫ ATTINY45+DS3231 С КНОПКАМИ КОРРЕКЦИИ ВРЕМЕНИ
ПРОСТОЕ РЕЛЕ ВРЕМЕНИ 0…99 МИН
Кнопками (+/-) можно задавать время от 1 до 99 минут, при установки времени таймера сразу же активируется реле, при обнулении таймера реле отключает нагрузку.
DHT11 ДАТЧИК ТЕМПЕРАТУРЫ И ВЛАЖНОСТИ
ВОЛЬТМЕТР 0…5 В
3.3V
1.8 V
ЧАСЫ С БОЛЬШИМИ ЦИФРАМИ И ДАТЧИКОМ ТЕМПЕРАТУРЫ ATTINY45+LCD1602_I2C+DS18B20+DS3231
Скетчи - http://rcl-radio.ru/?p=129389
Ранее в http://rcl-radio.ru/?p=62993 описывался пример использования аудиопроцессора TDA7719 под управлением Arduino Nano с дисплеем LCD1602, на этой странице будет рассмотрен аналогичный пример но с использованием дисплея LCD2004 c I2C модулем на базе микросхем PCF8574, что позволяет подключать символьный дисплей LCD2004 к плате Arduino всего по двум проводам SDA и SCL (А4 и А5).
ИМС TDA7719 представляет собой Hi-Fi аудиопроцессор с программируемой матрицей входов, имеет 6 аудио выходов, независимый аттенюатор для каждого выхода и входа, три полосы регулировки тембра с изменяемой центральной частотой и добротностью, полосовой фильтр для сабвуферов (два выхода) с фазоинвертором, тонкомпенсация. При подачи на вход стерео сигнала аудиопроцессор после обработки преобразует его в квадро и дополнительные два канала для сабвуферов.
Аудиопроцессор имеет следующие технические характеристики:
Напряжение питания от 7,5 до 10 В
Ток потребления 35 мА
Сопротивление по входу 100 кОм
Коэффициент гармоник не более 0,01%
Разделение каналов 90 дБ
Отношение сигнал\шум 104 дБ
Регулировка тембра:
ВЧ ± 15 дБ, шаг регулировки 1 дБ, центральные частоты 10.0 12.5 15.0 17.5 кГц
СЧ ± 15 дБ, шаг регулировки 1 дБ, центральные частоты 500 1000 1500 и 2500 Гц, добротность 0.5 0.75 1 и 1.25
НЧ ± 15 дБ, шаг регулировки 1 дБ, центральные частоты 60 80 100 и 200 Гц, добротность 1.0 1.25 1.5 и 2.0
Тонкомпенсация:
Аттенюатор от -15 до 0 дБ
Полосы частот — FLAT (линейная) 400 800 и 2400 Гц
Сабвуфер:
Два канала (R и L)
Частоты полосового фильтра — FLAT 80 120 и 160 Гц
Фазовый сдвиг дискретно от 0 до 180 °
Регулировка громкости от -63 до 0 дБ
Раздельная регулировка каждого выхода от -16 до 0 дБ
Раздельная регулировка входов от -15 до + 15 дБ
Кол-во стерео входов 6 (программно может быть изменена)
Выходы:
ПК фронт
ЛК фронт
ПК тыл
ЛК тыл
ПК сабвуфера
ЛК сабвуфера
Ниже показан пример использования TDA7719 совместно с Arduino Nano. Управление аудиопроцессором происходит при помощи энкодера KY-040 и четырех кнопок, информация выводится на LCD дисплея LCD2004_I2C.
Управление аудиопроцессором разбито на три меню:
Меню 1
Регулировка громкости от -63 до 0 дБ с индикатором активного входа
Регулировка BASS (НЧ) от -15 до 15 дБ
Регулировка MIDDLE (СЧ) от -15 до 15 дБ
Регулировка TREBLE (ВЧ) от -15 до 15 дБ
Меню 2
Аттенюатор выхода ЛК тыл от -16 до 0 дБ
Аттенюатор выхода ПК тыл от -16 до 0 дБ
Аттенюатор выхода ЛК фронт от -16 до 0 дБ
Аттенюатор выхода ПК фронт от -16 до 0 дБ
Аттенюатор выхода сабвуфера ПК от -16 до 0 дБ
Аттенюатор выхода сабвуфера ЛК от -16 до 0 дБ
Тонкомпенсация (loudness) аттенюатор от -15 до 0 дБ
Полоса частот — FLAT (линейная), 400, 800 и 2400 Гц
Меню 3
Выбор центральной частоты для BASS 60, 80, 100 и 200 Гц
Выбор центральной частоты для MIDDLE 500 ,1000, 1500 и 2500 Гц
Выбор центральной частоты для TREBLE 10.0 ,12.5, 15.0 и 17.5 кГц
Выбор центральной частоты для сабвуфера FLAT (линейная), 80, 120 и 160 Гц
Добротность для BASS 1.0, 1.25, 1.5 и 2.0
Добротность для MIDDLE 0.5, 0.75, 1 и 1.25
Дополнительные опции
Программно активно 3 входа которые имеют независимые предусилители в диапазоне от -15 до 15 дБ, активный вход отображается в меню 1 в строке регулировки громкости
Режим MUTE
Режим STANDBY
Изменение яркости подсветки экрана, уровень яркости изменяется в скетче
Часы в режиме POWER OFF
Коррекция времени часов
Управление всеми параметра (кроме коррекции времени часов) продублированы ИК пультом
Меню 1
Меню 2
Меню 3
Mute
Standby
Меню выбора входа
Так как предусмотрена управляемая яркость подсветки дисплея, то можно установить яркость подсветки в основном режиме и в режиме STANDBY (как правило с пониженной яркостью подсветки), регулировка яркости подсветки осуществляется через скетч:
#define BRIG_H 200 // Яркость 0…255 POWER ON
#define BRIG_L 50 // Яркость 0…255 POWER OFF
Подсветка — убрать перемычку с модуля I2C PCF8574 и подключить вывод модуля к цифровому выходу Arduino D6. Перед подключением замерить ток подсветки который не должен превышать 20 мА (у моего модуля ток не более 15 мА, замер производить между контактами перемычки).
Максимальный выходной ток одного выхода Arduino Nano не должен превышать 40 мА.
В проекте используются часы реального времени DS3231, текущее время выводится в режиме STANDBY.
Установить текущее время можно двумя способами:
Установки времени через скетч:
Раскомментируйте строку:
clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча
загрузите скетч, далее закомментируйте строку:
// clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча
повторно загрузите скетч.
Установка времени кнопками:
Перейдите в режим STANDBY, нажать и удерживать кнопку энкодера, нажимать кнопки:
SET — обнуление секунд
IN — коррекция минут
MUTE — коррекция часов
ИК пульт дублирует работу энкодера и кнопок. Для управления регулятором подойдет практически любой пульт ИК, для поддержки Вашего пульта необходимо прописать коды кнопок в скетч:
#define IR_1 0x33B8A05F // Кнопка вверх
#define IR_2 0x33B8609F // Кнопка вниз
#define IR_3 0x33B810EF // Кнопка >
#define IR_4 0x33B8E01F // Кнопка <
#define IR_5 0x33B850AF // Кнопка IN
#define IR_6 0x33B844BB // Кнопка SET
#define IR_7 0x33B8946B // Кнопка MUTE
#define IR_8 0x33B800FF // Кнопка STANDBY (POWER)
Для получения кодов кнопок Вашего пульта загрузите скетч и откройте монитор порта, при нажатии кнопки пульта его код будет отображен в мониторе порта.
В проекте предусмотрен выход STANDBY для управления режим STANDBY усилителя мощности, а так же режим MUTE. Все параметры сохраняются в энергонезависимую память, сохранение происходит после 10 секунд не активности органов управления.
Скетч - http://rcl-radio.ru/?p=129453
TEA5767 производимая компанией NXP применяется для конструирования низковольтных FM-радио тюнеров. В составеTEA5767 имеются внутренние цепи выделения промежуточной частоты и демодуляции принимаемого сигнала, что позволяет обходиться минимальным набором внешних компонентов.
Технические параметры TEA5767:
Напряжение питания от 2,5 до 5 В
Потребляемый ток при Uпит = 5 В 12,8 мА
Чувствительность 2 мкВ
Отношение сигнал/шум 54 дБ
Разделение между стереоканалами 24 дБ
Коэффициент гармоник 0,4 %
Диапазон принимаемых частот от 76 МГц до 108 МГц
Шины управления: I2C или 3-х проводная
Используя радио модуль, индикатор и микроконтроллер ATtiny45 можно собрать простое FM-радио.
Радио приемник управляется всего одной кнопкой, которая позволяет по кругу переключать заранее записанные каналы. Частота канала выводится на индикаторный модуль TM1637. К выходу модуля радиоприемника необходимо подключить любой маломощный усилитель, например можно использовать модуль усилителя PAM8403 с регулятором громкости.
Последний выбранный канал сохраняется в энергонезависимой памяти.
Перед прошивкой микроконтроллера рекомендую ознакомится со статьей — http://rcl-radio.ru/?p=129389 (общие сведения о микроконтроллере ATtiny45, прошивка при помощи Arduino IDE).
Перед загрузкой скетча необходимо записать в него выбранные для радио каналы:
float ch[]={104.4, 101.9, 102.5, 88.0, 101.5, 105.0, 103.9, 105.7};
и указать кол-во выбранных каналов:
#define CH 8
Усилитель PAM8403
Скетч - http://rcl-radio.ru/?p=129530
Часы-будильник основаны на микроконтроллере Atmega8, содержит часы реального времени DS3231, цифровой датчик температуры DS18B20, датчик освещенности в виде фоторезистора, зуммер для сигнала будильника, четыре кнопки управления и дисплей VDF1602.
Дисплей VDF1602 (16T202DA1E) выполнен на базе вакуумно-люминесцентного индикатора, который может отображать ASCII символы в 2 строки (16 знаков в 1 строке) каждый символ в виде матрицы 5х7 пикселей.
Дисплей 16T202DA1E программно полностью совместим с дисплеем LCD1602 контроллере HD44780.
Для правильной работы базе вакуумно-люминесцентного индикатора требуется два источника питания, это питание сеток и анодов напряжением 12-27 В и питание катода (нити накала) переменным напряжением от 1,2 до 5 В (в зависимости от типа ВЛИ). В дисплее 16T202DA1E все необходимые источники для правильной работы ВЛИ уже встроены в плату, поэтому для питания дисплея Вам понадобится только одно напряжение в 5 В. Так же в отличии от LCD1602 в дисплее 16T202DA1E нет вывода Vo (регулировка контрастности), что делает подключение дисплея к Arduino Nano еще проще.
Распиновка дисплея
На дисплей выводится следующая информация
Текущее время
День недели (рус)
Время будильника
Индикатор работы будильника
Температура
Дата и месяц
Кнопки управления:
SET_ALARM — коррекция времени будильника, первое нажатие коррекция часа, второе — минут
SET_TIME — коррекция (установка) времени часов, при нажатии на кнопку меняются параметры времени для корректировки (часы, минуты, секунды(обнуление), дата, месяц, день недели)
SET_UP — Плюс изменение параметра часов и будильника
SET_DW — Минус изменение параметра часов и будильника
В режиме вывода времени кнопки SET_UP и SET_DW позволяют отключать и включать режим будильника, а при сигнале будильника кнопки SET_UP и SET_DW отключают сигнал будильника но при этом не меняют режим работы будильника. Если не нажимать кнопки SET_UP и SET_DW то сигнал будильника будет звучать 1 минуту.
Так как дисплей VDF1602 имеет функцию программного изменения яркости свечения символов, то в схеме используется датчик освещенности (фоторезистор). Датчик освещенности меняет яркость свечения символов дисплея в зависимости от освещенности.
Датчик температуры DS18B20 рекомендуется выносить за корпус уст-ва, так как дисплей VDF1602 при работе имеет небольшой нагрев.
Время будильника и режим работы будильника сохраняются в энергонезависимой памяти.
Красными точками на схеме указаны пины подключения программатора, как прошить прошивку описано в — http://rcl-radio.ru/?p=82486
Более подробно о дисплеи VDF1602 описано в — http://rcl-radio.ru/?p=129034
Скетч - http://rcl-radio.ru/?p=129553
Модуль BT201 5.0 Bluetooth представляет собой единый чип 4-в-1, который поддерживает Bluetooth, USB-флешку и TF-карту.
Функции:
Поддержка Bluetooth-аудио, передача данных BLE, воспроизведение U-диска, воспроизведение TF-карты, SPIFLASH. Поддержка декодирования форматов MP3, WAV, WMA, FLAC, AAC, APE.
16-битный стерео ЦАП с усилителем для наушников, отношение сигнал/шум >= 95 дБ
Последовательный порт управления командой AT. Поддержка изменения скорости передачи данных для изменения имени Bluetooth, указания воспроизведения устройства и передачи данных мобильного телефона.
Поддержка двухрежимной передачи данных BLE и SPP, в то же время может воспроизводить звук Bluetooth, без конфликтов.
Поддержка вызова Bluetooth, много кнопочного управления, последней музыки, следующей музыки, воспроизведения паузы, регулировки громкости и других простых функций.
Поддержка получения полного имени файла последовательного порта воспроизведения, указанного пути воспроизведения, цикла или одиночного воспроизведения.
Поддержка функции записи 128KBS. Запись на TF-карту или U-диск, запись, удаление, воспроизведение и т. д.
При тестировании модуля BT201 был выбран микроконтроллер STM32 (плата разработчика STM32F103C8T6), так он содержит несколько UART портов, один будет использован для вывода информации в монитор порта, другой (Serial3) для отправки АТ команд в модуль BT201.
Как прошивать STM32 в среде Arduino IDE написано в — http://rcl-radio.ru/?p=68376
Так как STM32 прошивается через переходник USB to COM (RS232) YP-01 на чипе PL2303HX, в котором имеются 2 источника напряжения, то напряжение 3,3 В будут использованы для питания STM32, а напряжение 5 В для питания модуля BT201.
Подключения STM32 к USB to COM и BT201
Тестовый скетч
void setup(){ Serial.begin(115200); Serial3.begin(115200); Serial.println(); delay(500); } void loop(){ if (Serial.available() > 0) { String str = Serial.readString(); Serial.println(str); Serial3.print(str+"\r\n"); } if (Serial3.available() > 0) { String str = Serial3.readString(); Serial.println(str); } }
Команды управления отсылаете через монитор порта, и они пересылаются на модуль BT201.
Все, что приходит с модуля (ответы, сообщения и т.д.), пишется в монитор порта.
Список АТ команд —BT201 Module _KT1025A_B_User Manual _V2.3.pdf
Список основных АТ команд:
AT+CB — стоп\паузы
AT+CC — следующий трек
AT+CD — предыдущий трек
AT+CE — громкость +++
AT+CF — громкость —
AT+CA15 — громкость уровень 15 (0-30)
AT+CM01 — Bluetooth
AT+CM02 — USB
Ниже показан пример управления модулем BT201 при помощи STM32 и нескольких кнопок, режимы работы и другая информация отображается на дисплее 0.96′ I2C 128X64 OLED.
Дисплей 0.96′ I2C 128X64 OLED на контроллере SSD1306 имеет разрешение 128х64 пиксел и подключается к микроконтроллеру по интерфейсу I2C.
Параметры дисплея SSD1306:
Технология дисплея: OLED
Разрешение дисплея: 128 на 64 точки
Диагональ дисплея: 0,96 дюйма
Угол обзора: 160°
Напряжение питания: 2.8 В ~ 5.5 В
Мощность: 0,08 Вт
Габариты: 27.3 мм х 27.8 мм х 3.7 мм
Кнопки управления:
PLAY / STOP — воспроизведение \ пауза в режиме Bluetooth и USB
>>> — следующий трек (файл, ролик) в режиме Bluetooth и USB
<<< — предыдущий трек (файл, ролик) в режиме Bluetooth и USB
Bluetooth \ USB — кнопка выбора Bluetooth или USB
VOLUME UP — громкость прибавить на 1 ед.
VOLUME WD — громкость удавить на 1 ед.
Меню Bluetooth
Bluetooth
Режим работы:
not connected — нет соединения
connected — соединение установлено
play — воспроизвидение
Уровень громкости
Меню USB
USB
Номер воспроизводимого файла (кол-во файлов на носителе*)
Время звучания воспроизводимого файла
текущее время проигрывания файла
Уровень громкости
*Звуковые файлы на USB устройстве должны быть записаны й в корень файловой системы.
Подключения STM32, кнопок и дисплея
** Подключение кнопок
Подключения STM32 к BT201
Скетч - http://rcl-radio.ru/?p=129611
ATmega64 представляют собой 8-разрядные AVR-микроконтроллеры с внутрисистемно программируемой флэш-памятью емкостью 64 кбайт. За счет выполнения большинства инструкций за один машинный цикл ATmega64 достигает производительности 1 млн. операций в секунду/МГц, что позволяет проектировщикам систем оптимизировать соотношение энергопотребления и быстродействия.
Отличительные особенности:
8-разрядный высокопроизводительный AVR микроконтроллер с малым потреблением
Прогрессивная RISC архитектура
— 130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл
— 32 8-разрядных рабочих регистра общего назначения + регистры управления периферией
— Полностью статическая работа
— Производительность приближающаяся к 16 MIPS (при тактовой частоте 16 МГц)
— Встроенный 2-цикловый перемножитель
Энергонезависимая память программ и данных
— 64 Кбайт внутрисистемно перепрограммируемой Flash памяти
— Обеспечивает 1000 циклов стирания/записи
— Дополнительный сектор загрузочных кодов с независимыми битами блокировки
— Внутрисистемное программирование встроенной программой загрузки
— Обеспечен режим одновременного чтения/записи (Read-While-Write)
— 2 Кбайта EEPROM
— Обеспечивает 100000 циклов стирания/записи
— 4 Кбайта встроенной SRAM
— До 64 Кбайтов пространства дополнительной внешней памяти
— Программируемая блокировка, обеспечивающая защиту программных средств пользователя
— SPI интерфейс для внутрисистемного программирования
Интерфейс JTAG (совместимый с IEEE 1149.1)
— Возможность сканирования периферии, соответствующая стандарту JTAG
— Расширенная поддержка встроенной отладки
— Программирование через JTAG интерфейс: Flash, EEPROM памяти, перемычек и битов блокировки
Встроенная периферия
— Два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения
— Два 16-разрядных таймера/счетчика, с расширенными возможностями, с отдельным предварительным делителем и режимами захвата и сравнения
— Счетчик реального времени с отдельным генератором
— Два 8-разрядных канала PWM
— Шесть каналов PWM с возможностью программирования разрешения от 1 до 16 разрядов
— 8-канальный 10-разрядный аналого-цифровой преобразователь
— 8 несимметричных каналов
— 7 дифференциальных каналов
— 2 дифференциальных канала с программируемым усилением в 1, 10 или 200 крат
— Байт-ориентированный 2-проводный последовательный интерфейс
— Сдвоенный программируемый последовательный USART
— Последовательный интерфейс SPI (ведущий/ведомый)
— Программируемый сторожевой таймер с отдельным встроенным генератором
— Встроенный аналоговый компаратор
Специальные микроконтроллерные функции
— Сброс по подаче питания и программируемый детектор кратковременного снижения напряжения питания
— Встроенный калиброванный RC-генератор
— Внутренние и внешние источники прерываний
— Шесть режимов пониженного потребления: Idle, Power-save, Power-down, Standby, Extended Standby и снижения шумов ADC
— Программная установка тактовой частоты
— Режим обеспечения совместимости с ATmega103 (перемычки)
— Глобальный запрет подтягивающих резисторов
Выводы I/O и корпуса
— 53 программируемые линии ввода/вывода
— 64-выводной корпус TQFP
Рабочие напряжения
— 2,7 – 5,5 В (ATmega64L, ATmega64А)
— 4,5 – 5,5 В (ATmega64)
Рабочая частота
— 0 — 8 МГц (ATmega64L)
— 0 — 16 МГц (ATmega64, ATmega64A)
Для поддержки контроллера Atmega64 в среде разработке Arduino IDE необходимо выполнить следующие действия:
Откройте вкладку Файл >> Настройки и в поле «Дополнительные ссылки для менеджера плат» добавьте адрес:
Далее откройте вкладку Инструменты >> Плата >> Менеджер плат
В поле поиска введите число: 64, установите набор плат: MegaCore by MCUdude
Выберите плату ATmega64
Для прошивки скетча или загрузчика Вам понадобится программатор USBAsp
В моем случае я использую микроконтроллер который установлен на плату переходник, схема подключения достаточно простая:
Установите настройки платы как показано на скриншоте:
Выберите программатор USBAsp
Нажмите кнопку «Записать загрузчик». Запись загрузчика делается один раз (нужно повторить если изменили тактовую частоту микроконтроллера).
После записи загрузчика Вы в Arduino IDE увидите примерно следующее:
Далее скопируйте и вставьте в Arduino IDE следующий тестовый скетч (BLINK):
void setup() {
pinMode(PE6, OUTPUT);
}
void loop() {
digitalWrite(PE6, HIGH);
delay(100);
digitalWrite(PE6, LOW);
delay(100);
}
Подключите к выводу 8 (PE6) через резистор 300 Ом светодиод. После загрузки скетча светодиод начнет мигать.
Для загрузки скетча выберите вкладку — Скетч >> Загрузить через программатор
После загрузки скетча появится следующее сообщение:
Для удобства использования Atmega64 можно установить загрузчик, выбрав опцию настройки платы Bootloader «Yes (UART0)» , после чего необходимо нажать кнопку «Записать загрузчик».
Очень удобно для прошивки микроконтроллера использовать переходник USB — TTL используя для этого пины 2 (PE0 — TXD) и 3 (PE1 — RXD) . Фактически Вы будете загружать скетчи как в плату Arduino.
Переходник USB — TTL подключите к Atmega64 по следующей схеме:
Во вкладке — Инструменты >> Программатор выберите >> AVRISP mkll (MegaCore)
Для загрузки скетча нажмите кнопку «Загрузка» в Arduino IDE и как только закончится компиляция нажмите кнопку RESET на плате Atmega64.
ATtiny44 — низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny44 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.
Характеристики:
Высокоэффективные маломощные 8-разрядные микроконтроллеры AVR
Прогрессивная RISC-архитектура
— Эффективный набор инструкций: 120 инструкций, большинство из которых выполняются за один машинный цикл
— 32 x 8-разр. регистров общего назначения
— Полностью статическая работа
Энергонезависимые памяти программ и данных
— 4 кбайт внутрисистемно-программируемой флэш-памяти программ характеризующейся износостойкостью 10 тысяч циклов чтения/записи
-256 байт внутрисистемно-программируемого ЭСППЗУ , характеризующегося износостойкостью 100000 циклов записи/стирания
— 256 байт встроенного статического ОЗУ
— Программируемая блокировка доступа к данным во флэш-памяти и ЭСППЗУ
Встроенные периферийные устройства
— Два 8 и 16-разрядных таймера-счетчика с двумя каналами ШИМ. 8/16-разрядный таймер-счетчик с предделителем и двумя каналами ШИМ в каждом
— 10-разрядный АЦП
8 несимметричных каналов
12 пар дифференциальных каналов АЦП с программируемым усилением (1x, 20x)
— Программируемый сторожевой таймер с отдельным встроенным генератором
— Встроенный аналоговый компаратор
— Универсальный последовательный интерфейс
Специальные микроконтроллерные функции
— Встроенная отладочная система debugWIRE
— Внутрисистемное программирование через порт SPI
— Внешние и внутренние источники прерываний
— Экономичные режимы работы: холостой ход (Idle), снижение шума АЦП, дежурный (Standby) и снижения потребляемой мощности (Power Down)
— Усовершенствованная схема сброса при подаче питания
— Программируемая схема детектора снижения напряжения питания
— Встроенный калиброванный генератор
— Встроенный датчик температуры
Ввод-вывод и корпуса
— 14-выводные корпуса PDIP и SOIC, 20-выводной корпус QFN/MLF
— 12 программируемых линий ввода-вывода
Рабочее напряжение:
— 1.8 — 5.5В ATtiny44V
— 2.7 — 5.5В для ATtiny44
Градации по быстродействию:
— ATtiny44V: 0 — 4 МГц при напряжении питания 1.8 — 5.5В, 0 — 10 МГц при напряжении питания 2.7 — 5.5В
— ATtiny44: 0 — 10 МГц при напряжении питания 2.7 — 5.5В, 0 — 20 МГц при напряжении питания 4.5 — 5.5В
Микроконтроллер ATtiny44 отлично подходит для маленьких и дешевых проектов, а поддержка средой программирования Arduino IDE заметно упрощает работу с микроконтроллером.
Для поддержки ATtiny44 в Arduino IDE необходимо выполнить несколько простых операций:
Добавление поддержки платы
Откройте в Arduino IDE вкладку Файл > Настройки и добавьте ссылку для менеджера плат
Далее перейдите во вкладку Инструменты > Плата > Менеджер плат
Выберите и установите пакет новых плат ATtiny45, ATtiny85, ATtiny44, ATtiny84
Далее в Инструменты > Плата выберите плату ATtiny44.
Установите параметры платы как показано на скриншоте:
Для прошивки скетча Вам понадобится программатор USBAsp
Схемы подключения №1
Схемы подключения №2
Распиновка программатора USBAsp
По умолчанию фьюзы установлены для использования микроконтроллера с внешним тактированием, то есть с использованием кварцевого резонатора. По этому при подключении программатора к микроконтроллеру необходимо использовать схему №2.
В настройках платы нужно выбрать поддержку Attiny44 и установить частоту 8, 16 или 20 MHz external, в зависимости частоты Вашего кварцевого резонатора.. Далее необходимо выставить нужные фьюзы для микроконтроллера, чтобы он всегда работал на выбранной Вами частоте. Для этого в настройках Arduino IDE выберите программатор USBasb и нажмите Инструменты > Записать загрузчик. Эту операцию необходимо проводить всего один и снова повторить если Вы будете менять частоту работы микроконтроллера.
Для использования внутреннего тактового генератора нужно выбрать параметр 1 или 8 MHz internal, далее нажмите Инструменты > Записать загрузчик. После чего можно отсоединить кварцевый резонатор (схема №1)
Для загрузки скетча в настройках Arduino IDE выберите программатор USBasb и во вкладке Скетч нажмите на Загрузить через программатор.
Для примера, можно загрузить простой скетч мигания светодиода, к выводу 10 (PА3 / D3) контроллера подключите светодиод через резистор 200 Ом.
void setup() {
pinMode(3, OUTPUT);
}
void loop() {
digitalWrite(3, HIGH); delay(1000); digitalWrite(3, LOW); delay(1000);
}
После загрузки скетча, светодиод начнет мигать.
Для нормальной работы микроконтроллера необходимо подать напряжение VCC через резистор 10 кОм на вход RST микроконтроллера.