Atmega8 atmega48 atmega88 макетная плата avr
ATMega48, ATMega88, ATMega168
8 битные AVR микроконтроллеры с 4/8/16 КБ внутрисистемно программируемой Flash памяти
Отличительные особенности:
- Высококачественный низкопотребляющий 8- битный AVR микроконтроллер
- Передовая RISC архитектура
— 130 команд, большинство которых выполняется за один тактовый цикл
— 32 8 битных рабочих регистра общего применения
— Полностью статическая архитектура
— производительность до 16 MIPS при тактовой частоте 16 МГц
— встроенный двухцикловый умножитель - Энергонезависимая память программ и данных
— 4/8/16 КБ внутрисистемно программируемой Flash памяти программы, способной выдержать 10 000 циклов записи/стирания
— вспомогательная секция загрузочной программы с независимым битом защиты
внутрисистемное программирование встроенной программой-загрузчиком
реальная функция считывания при программировании
— 256/521/512 байта EEPROM, способной выдержать 100 000 циклов записи/стирания
— 512/1К/1К байта встроенной SRAM памяти (статическое ОЗУ)
— Программируемая защита от считывания - Характеристики периферии
— Два 8- разрядных таймера/счетчика с отдельным предделителем и режимом сравнения
— Один 16- разрядный таймер/счетчик с отдельным предделителем и режимом сравнения и режимом захвата
— Счетчик реального времени с отдельным генератором
— Пять ШИМ каналов
— 8 канальный АЦП у приборов в TQFP и MFL корпусах
6 10- битных каналов
2 8- битных канала
— 6 канальный АЦП у приборов в PDIP корпусе
4 10- битных каналов
2 8- битных канала
— Программируемый последовательный USART
— Ведущий/ведомый SPI интерфейс
— Байт- ориентированный последовательный 2- проводный интерфейс
— Программируемый сторожевой таймер со встроенным генератором
— Встроенный аналоговый компаратор
— Прерывание и пробуждение при изменении состояния выводов - Специальные характеристики микроконтроллера
— Сброс при включении питания и детектор кратковременных пропаданий питания
— Встроенный откалиброванный генератор — Внешние и внутренние источники прерывания
— Пять режимов пониженного потребления: Idle, ADC Noise Reduction, Power-Save, Power-down и Standby - Порты ввода — вывода и корпусное исполнение
— 23 программируемых линии портов ввода-вывода
— 32 выводные TQFP и MFL корпуса - Диапазон напряжения питания
— от 1.8 до 5.5 В у ATMega48/ATMega88/ATMega168V
— от 2.7 до 5.5 В у ATMega48/ATMega88/ATMega168L
— от 4.5 до 5.5 В у ATMega48/ATMega88/ATMega168 - Коммерческий рабочий температурный диапазон
- Различный диапазон рабочих тактовых частот
— от 0 до 1 МГц у ATMega48/ATMega88/ATMega168V
— от 0 до 8 МГц у ATMega48/ATMega88/ATMega168L
— от 0 до 16 МГц у ATMega48/ATMega88/ATMega168 - Сверх низкое потребление
— Активный режим:
300 мкА при частоте 1 МГц и напряжении питания 1.8 В
20 мкА при частоте 32 кГц и напряжении питания 1.8 В
— Режим пониженного потребления
0.5 мкА при напряжении питания 1.8 В
Блок- схема ATMega48/ATMega88/ATMega168:
Расположение выводов ATMega48/ATMega88/ATMega168:
ATMega48/ATMega88/ATMega168 — низкопотребляющие 8 битные КМОП микроконтроллеры с AVR RISC архитектурой. Выполняя команды за один цикл, ATMega48/ATMega88/ATMega168 достигают производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.
AVR ядро объединяет богатую систему команд и 32 рабочих регистра общего назначения. Все 32 регистра непосредственно связаны с арифметико-логическим устройством (АЛУ), что позволяет получить доступ к двум независимым регистрам при выполнении одной команды. В результате эта архитектура позволяет обеспечить в десятки раз большую производительность, чем стандартная CISC архитектура.
ATMega48/ATMega88/ATMega168 имеют следующие характеристики: 4/8/16 КБ внутрисистемно программируемой Flash память программы, 256/512/512 байтную EEPROM память данных, 512/1К/1К байтное SRAM (статическое ОЗУ), 23 линии ввода — вывода общего применения, 32 рабочих регистра общего назначения, три гибких таймера/счетчика со схемой сравнения, внутренние и внешние источники прерывания, последовательный программируемый USART, байт- ориентированный последовательный 2- проводный интерфейс, 6 канальный АЦП (8- канальный у приборов в TQFP и MFL корпусах), 4 (6) канала которых имеют 10- битное разрешение, а 2- 8- битное, программируемый сторожевой таймер со встроенным генератором, SPI порт и пять программно инициализируемых режима пониженного потребления. В режиме Idle останавливается ядро, а SRAM, таймеры/счетчики, SPI порт и система прерываний продолжают функционировать. В Power-down режиме содержимое регистров сохраняется, но останавливается задающий генератор и отключаются все внутренние функции микропроцессора до тех пор, пока не произойдет прерывание или аппаратный сброс. В режиме Power-save асинхронные таймеры продолжают функционировать, позволяя отсчитывать временные интервалы в то время, когда микропроцессор находится в режиме сна. В режиме ADC Noise Reduction останавливается вычислительное ядро и все модули ввода-вывода, за исключением асинхронного таймера и самого АЦП, что позволяет минимизировать шумы в течение выполнения аналого-цифрового преобразования. В Standby режиме задающий генератор работает, в то время как остальная часть прибора бездействует. Это позволяет быстро сохранить возможность быстрого запуска приборов при одновременном снижении потребления.
Прибор изготовлен по высокоплотной энергонезависимой технологии изготовления памяти компании Atmel. Встроенная ISP Flash позволяет перепрограммировать память программы в системе через последовательный SPI интерфейс программой-загрузчиком, выполняемой в AVR ядре, или обычным программатором энергонезависимой памяти. Программа-загрузчик способна загрузить данные по любому интерфейсу, имеющегося у микроконтроллера. Программа в загрузочном секторе продолжает выполняться даже при загрузке области памяти прикладной программы, обеспечивая реальный режим «считывания при записи». Объединив 8- битное RISK ядро и самопрограммирующейся внутри системы Flash памятью корпорация Atmel сделала приборы ATMega48/ATMega88/ATMega168 мощными микроконтроллерами, обеспечивающими большую гибкость и ценовую эффективность широкому кругу управляющих устройств.
ATMega48/ATMega88/ATMega168 поддерживается различными программными средствами и интегрированными средствами разработки, такими как компиляторы C, макроассемблеры, программные отладчики/симуляторы, внутрисхемные эмуляторы и ознакомительные наборы.
Отладочная плата для устройств на МК Atmega8/48/88/168/328
Многие устройства в моих статьях строятся на основе отладочных плат. Сегодня поговорим об отладочной плате для микроконтроллеров Atmega8/48/88/168/328. Все они в DIP корпусе имеют 28 выводов и одинаковое их расположение, поэтому без проблем можно одну отладочную плату использовать для любого из вышеперечисленных микроконтроллеров. Возможности этой отладочной платы позволяют также установить, например, bootloader для arduino и использовать эту плату как arduino.
Общий вид готовой отладочной платы
Принципиальная схема отладочной платы:
Данная отладочная плата состоит из следующего набора элементов. Место для микроконтроллера в отладочной плате использовано с применением разъема для корпуса DIP-28. Применение такого разъема, в народе именуемого «кроватка» позволит в случае чего быстро заменить микроконтроллер на плате. Удобно, если по неопытности случайно залочить микроконтроллер, удобно его извлечь и «вылечить» при помощи другой схемы или просто быстро сменить тип используемого микроконтроллера.
Также для быстрой смены кварцевого резонатора использован разъем. Так как эта отладочная плата, могут возникать ситуации, когда необходимо перезапускать микроконтроллер. Для этой цели на плате предусмотрена кнопка S1 — при замыкании на землю вывода PC6, происходит рестарт или reset используемого микроконтроллера. Резистор R6 подтягивает плюс питания к этому выводу для предотвращения самопроизвольного перезапуска. Данная макетная плата имеет простое исполнение, поэтому добавил два модуля для светодиодов (по три светодиода в каждом модуле). Токоограничительные резисторы для светодиодов подобраны таким образом, что для каждого модуля можно использовать RGB светодиоды — удовлетворено условие баланса белого. Падение напряжения на красных светодиодах чуть меньше, чем у зеленых и синих, поэтому резисторы R1 и R5 имеют сопротивление 180 Ом. Кроме того, резисторы в анодах светодиодов ограничивают ток на уровне примерно 18 — 20 мА для максимальной яркости. каждый светодиод соединяется с портом микроконтроллера через перемычки (джемперы) 1 — 6. Также, благодаря штырьковым соединениям, при помощи проводка о двух концов с соответствующими разъемами типа «мама» можно соединять светодиоды с любыми другими выводами микроконтроллера. Таким образом, макетка позволит отлаживать многие простые задачи без особых телодвижений, соответствуя своей простоте относительно всеобъемлющих отладочных плат, содержащих все нужные и не нужные модули для отладки любых задач. Следуя данной концепции, на плате возможно два варианта питания — 5 вольт от USB порта через программатор и 3,3 вольта через три выпрямительных диода (P-N переход диода способствует падению напряжения примерно на 0,5 — 0,6 вольт в зависимости от применяемого типа, диоды Шоттки имеют несколько меньшее падение на переходе — порядка 0,2 вольта, их лучше не использовать). Данные режимы питания выбираются путем установки перемычек (джемперов) 7 или 10. При желании можно немного изменить печатную плату и поставить стабилизатор напряжения на 3,3 вольта, например микросхему AMS1117. Резистор R10 ограничивает ток питания отладочной платы. Его можно или убрать, или заменить на меньший или больший номинал в пределах необходимого, или просто заменить резистором номинала 0 Ом. Резистор R9 был установлен в основном с целью только подключения LCD дисплея для регулировки контраста экранчика. Однако, этот функционал не ограничивается только LCD — дисплеем, резистор можно использовать в любых других необходимых целях. И, наконец, АЦП микроконтроллера. Как правило он питается от основного напряжения через дроссель для большей стабильности напряжения и более правильных показаний. Также АЦП имеет канал опорного напряжения. Оно организовано микросхемой управляемого стабилитрона TL431 — он стабилизирует напряжение до 2,5 вольт в соответствии с подключением выводов как на схеме, и оно подается на вывод AREF. Но не всегда нужно именно 2,5 вольта опорного напряжения. Поэтому на плате организованы перемычки 8 и 9 для возможности подключения 5 вольт на вывод опорного напряжения, то есть взять его от вывода AVCC — питания АЦП.
Для подключения светодиодов на печатной плате предусмотрены контакты типа цанга вдоль края платы.
Все выводы микроконтроллера дублируются штырьками. Тут все понятно — для возможности подключения к выводам используемого микроконтроллера на отладочной плате каких-то своих модулей, схем или устройств. Штырьковые контакты питания +5 вольт и 0 вольт имеются по 5 штук на плате. Специально для программирования на печатной плате предусмотрен стандартный 10 пиновый разъем для программаторов AVR, например USBasp или AVRdoper или других.
Более подробно расположение штырьков (в том числе и для перемычек) относительно микроконтроллера можно посмотреть на печатной плате (ссылка будет ниже).
А вот так выглядит отладочная плата со стороны пайки:
Надеюсь аккуратность порадует Ваш профессиональный глаз.
Если данная статья окажется кому-то толчком для начала освоения микроконтроллеров и техники их основе, то ниже будет представлена прошивка и программный код как просто для тестирования этой отладочной платы, так и для кого-то первым опытом в прошивке микроконтроллера. Предлагаю, как и многие другие, просто моргать светодиодом.
Для этого в компиляторе необходимо определить частоту работы микроконтроллера, далее присоединить к проекту основные библиотеки компилятора для работы с выбранным микроконтроллером. Следующим шагом является обозначение куда будет подсоединяться светодиод. Далее у нас главная программа main, без нее никак нельзя, в начале главной программы инициализируется порт для работы со светодиодом. Внутри главной программы прописан бесконечный цикл while, то есть он никогда не закончится и будет крутиться по кругу от начала и до конца. А внутри этого цикла сама суть прошивки — светодиод зажигается, ждем 1 секунда, светодиод тухнет, ждем 1 секунду и так по кругу. Вот собственно и вся простая программа для тестирования.
Вот что необходимо для прошивки микроконтроллера atmega8 — fuse биты:
К статье прилагается печатная плата, нарисованная в Sprint Layout, также простая прошивка для микроконтроллера ATmega8, моргающая светодиодом для оценки работоспособности платы и просто для того чтобы данная схема не была просто железякой. Также для данной прошивки прилагается файл Proteus и исходник программного кода в AVRstudio 4. Небольшое видео для демонстрации. Ну, а при желании Вы всегда можете загрузить самостоятельно в микроконтроллер bootloader для arduino и использовать эту плату как arduino Uno или Nano. Сам я особо не любитель arduino, поэтому не делал на это большого акцента.