ATmega8535/L является КМОП 8- битным микроконтроллером, построенным на расширенной AVR RISC архитектуре. Используя команды исполняемые за один машинный такт, контроллер достигает производительности в 1 MIPS на рабочей частоте 1 МГц, что позволяет разработчику эффективно оптимизировать потребление энергии за счёт выбора оптимальной производительности.
- Высокая производительность при малом потреблении
- Развитая RISC архитектура
- 130- команд, большинство исполняемых за один машинный такт
- 32×8 рабочих регистра общего назначения
- Полностью статический режим
- До 16 MIPS производительность при 16 МГц Встроенный 2-х тактный умножитель
- Энергонезависимая память программ и память данных
- 8К байтов FLASH памяти программ с внутрисистемным самопрограммированием
- 10 000 циклов записи- стирания
- Загрузочная область памяти с независимыми ключевыми битами
- 512 байтов EEPROM
- 100 000 циклов записи- стирания
- 512 байтов внутренней SRAM
- 8К байтов FLASH памяти программ с внутрисистемным самопрограммированием
- Программируемый ключ доступа к программам и памяти данных
- Периферия
- Два 8- битных таймера/счётчика с программируемым предделителем и режимом сравнения
- Один 16 битный таймер/ счётчик с программируемым предделителем, режимом сравнения и захвата
- Счётчик реального времени с программируемым генератором
- Четыре ШИМ генератора
- 8 канальный, 10- битный АЦП 8 простых униполярных входа
- 7 дифференциальных входа ( только для TQFP)
- 2 дифференциальных входа с программируемым усилением (x1, x10, x200) (только для TQFP)
- Байт ориентированный двухпроводный интерфейс
- Программированный последовательный USART
- Master/Slave SPI
- Встроенный аналоговый компаратор
- Программируемый Watchdog с переключаемымим генераторами
- Специальные функции контроллера.
- Reset при включении и понижении напряжения питания
- Внешние и внутренние источники прерывания
- Внутренний калиброванный RC генератор
- Шесть режимов энергосбережения: Idle, подавление шума АЦП, экономичный, Выкл. , ожидания и расширенный режим ожидания
- 40- выводной корпус PDIP, 44-выводной TQFP, 44-х PLCC, и 44-х MLF.
- 32 программируемых входа-выхода
- Рабочее напряжение питания:
- 2.7 В до 5.5 В ATmega8535L
- 4.5 В до 5.5 В ATmega8535
- Рабочая тактовая частота:
- 0- 8 МГц ATmega8535L
- 0-16 МГЦ ATmega8535
Для поддержки контроллера Atmega8535 в среде разработке Arduino IDE необходимо выполнить следующие действия:
- Откройте вкладку Файл >> Настройки и в поле «Дополнительные ссылки для менеджера плат» добавьте адрес:
https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json
- Далее откройте вкладку Инструменты >> Плата >> Менеджер плат
В поле поиска введите число: 8535, установите набор плат: MightyCore by MCUdude
- Установите плату (2.0.0)
- Выберите плату ATmega8535
- Для прошивки скетча или загрузчика Вам понадобится программатор USBAsp
Схема подключения
Распиновка USBASP
- Далее скопируйте и вставьте в Arduino IDE следующий тестовый скетч (BLINK):
void setup(){ DDRA |= (1 << PA0); } void loop(){ PORTA |= (1 << PA0); delay(1000); PORTA &= ~(1 << PA0); delay(1000); }
Подключите к выводу 40 (PA0) через резистор 300 Ом светодиод. После загрузки скетча светодиод начнет мигать.
Перед загрузкой в настройках платы укажите частоту кварцевого резонатора, остальные настройки менять не нужно.
Для загрузки скетча выберите вкладку — Скетч >> Загрузить через программатор
После загрузки скетча появится следующее сообщение:
Для удобства использования Atmega8535 можно установить загрузчик, для этого выберите вкладку — Инструменты >> Записать загрузчик.
После записи загрузчика Вы в Arduino IDE увидите примерно следующее:
Для прошивки микроконтроллера через загрузчик необходимо использовать переходник USB — TTL используя для этого пины 14 (RDX — TXD) и 15 (TDX — RXD) . Фактически Вы будете загружать скетчи как в плату Arduino.
Во вкладке — Инструменты >> Программатор выберите >> AVRISP mkll
Для загрузки скетча нажмите кнопку «Загрузка» в Arduino IDE и как только закончится компиляция нажмите кнопку RESET на плате Atmega8535.
Пример тестового скетча:
void setup() { Serial.begin(9600); } void loop() { Serial.println("Atmega8535"); delay(1000); }