Учимся создавать проекты с помощью avr микроконтроллера

Содержание

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

Большую долю рынка 32-разрядных контроллеров в настоящее время захватили микросхемы на базе ядер ARM7, ARM9 и ARM11. ATMEL также производит контроллеры на базе ядер ARM7 и ARM9. Несмотря на это, в 2001 году корпорация начала разработку принципиально новой 32-разрядной RISC-архитектуры. Основной целью было повышение вычислительной производительности за такт процессора. Задача формулировалась как разработка процессора, который сможет решать сложные задачи цифровой обработки информации при малом потреблении энергии — требование разработчиков мобильных устройств. Ядро должно одновременно выполнять задачи MPU и DSP в рамках одной программной и инструментальной базы. В дополнение к производительному ядру контроллеры нового поколения имеют высокоскоростную периферию, в частности, два контроллера 10/100 Mbps MAC и High-Speed USB (480 Mbps). В последующих версиях контроллеров будет добавлет хост-контроллер USB (480 Mbps), поддерживающий режим OTG (On The Go).

Основные параметры микросхем приведены в таблице 2.

Таблица 2. Основные параметры микросхем AT32AP700X

  SDRAM (кбайт) DSPинст-рук-ции Век-тор-ныйсо-про-цес-сор Ether-net 10/ 100 MAC USB HS Devi-ce Конт-рол-лерLCD 2048 x 2048 Число выво-дов общего назна-чения Число DMA кана-лов Интер-фейс внеш-ней шины Конт-роллер SDRAM AC97 Интер-фейс к камере ФАПЧ Квар-цевый осцил-лятор MMU/ MPU Бес-свинцовый корпус
AT32AP7000 32 + + 2 1 24бит 160 20 + + 1 CMOS 2 2 MMU 256 CTBGA
AT3AP7001 32 + + 1 90 20 + + 1 CMOS 2 2 MMU 208 VQFP
AT32AP7002 32 + + 1 18бит 85 20 + + 1 CMOS 2 2 MMU 196 CTBGA

Архитектура AVR32 разработана в норвежском городе Тронхейм, там же, где созданы 8-разрядные AVR-контроллеры. В разработке участвовала команда из двадцати инженеров и программистов. В результате 4-летней работы над такими алгоритмами, как вычисление суммы абсолютных разностей (SAD) и обратное дискретное косинусное преобразование (IDCP), был достигнут 35% прирост эффективности на один такт процессора по сравнению с ядром ARM11. Это означает возможность декодировать в реальном времени видеофрагмент MPEG-4 разрешением QVGA с частой 30 кадров в секунду при частоте ядра 100 MГц, в то время как ARM11 для решения этой задачи требуется частота 150–170 MГц.

Структурная схема первого представителя AVR32 — контроллера AT32AP7000 приведена на рис. 5.

Рис. 5. Структурная схема контроллера AT32AP7000

На ядре AVR32 разрабатывается семейство контроллеров с аббревиатурой AP (Application Processor). Микросхемы будут выпускаться в корпусах BGA и TQFP. На рис. 6. представлена программа развития этого семейства.

Рис. 6. Планы развития AVR32

Средства разработки

Свободные

AVR-GCC
Порт GCC (компилятор) для AVR. Есть возможность интеграции с AVR Studio и Eclipse (AVR Eclipse Plugin).
SimulAVR
Симулятор ядра микроконтроллера AVR
KontrollerLab
IDE + работа с RS-232 + отладчик.
Code::Blocks
IDE.
AVR-GDB
Порт GDB (отладчик) для AVR.
DDD
Графический интерфейс к avr-gdb.
WinAVR
Комплект разработки, включающий в себя: Programmers Notepad — программистский блокнот, компиляторный комплект AVR-GCC , avrdude для прошивки и avr-gdb для отладки (раздел на RadioProg.RU).
Avrdude
Популярное средство для прошивки микроконтроллеров.
V-USB
Программная реализация протокола USB для микроконтроллеров AVR.
Загрузчики (bootloader) для микроконтроллеров AVR
Технология, позволяющая использовать стандартные интерфейсы (RS-232, CAN, USB, I2C и проч.) для загрузки программы в кристалл AVR.
PonyProg
Универсальный программатор, подключение через COM-порт, LPT-порт (подерживается и USB эмулятор COM-порта) поддерживает МК AVR, PIC и др.

Проприетарные

AVR Studio
IDE + ассемблер + отладчик. Freeware.
CodeVisionAVR
Компилятор C и программатор — CVAVR + генератор начального кода.
ICC AVR
Компилятор C + генератор начального кода.
AtmanAvr
Компилятор C + отладчик + генератор начального кода.
IAR AVR
IDE C/C++. сайт разработчика.
VMLAB
Симулятор AVR.
Proteus
Мощнейший симулятор электрических цепей, компонентов, включая различные МК и др. периферийное оборудование.
Bascom AVR
Компилятор Basic + отладчик + программатор.
E-LAB AVRco
Компилятор Pascal.
MikroE
Можество компиляторов для разных языков.
Algorithm Builder
Визуальная среда разработки программ для AVR в виде блок-схем включает также эмулятор и программатор. Используемый язык программирования — псевдоассемблер. Freeware.
ForthInc Forth-Compiler
Компилятор языка Forth.
MPE Forth-Compiler
Компилятор языка Forth.
AVReal
Программатор, подключение LPT (практически любой адаптер, в том числе совместим с программатором в CodeVisionAVR) либо USB (адаптеры на основе FT2232C/L/D, FT2232H, FT4232H). Freeware.

Также архитектура AVR позволяет применять операционные системы при разработке приложений, например FreeRTOS, uOS, scmRTOS, ChibiOS/RT, AvrX (ядро реального времени).

Тактирование от RC-цепи

Тактирование от RC-цепочки осуществляется вот по такой схеме:

Здесь мы берем конденсатор емкостью не менее 22 пФ, а резистор от 10 Ом и до 100 КилоОм. По простой формуле можно с легкостью рассчитать частоту, на которой будет тактироваться наш МК:

где

F – частота, Гц.

R – сопротивление резистора, Ом.

С – емкость, Фарад.

Внутренний RC-генератор и внешняя RC-цепь дают нестабильную частоту, которая “гуляет” и зависит от температуры. Для того чтобы помигать светодиодом и прочих неответственных действий, нам это будет не принципиально. В наших проектах, поначалу не требующих особой точности, мы будем использовать тактирование от внутреннего RC-генератора.

Но чтобы получить очень точную частоту тактирования, которая почти не гуляет, надо использовать кварц

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

Итак, как мы помним из предыдущей статьи, некоторые ножки имеют двойное назначение, и помимо того, что могут использоваться как порты ввода-вывода, также используются для обеспечения расширения функций МК. Действительно, если МК сконфигурирован для работы от внутреннего RC-генератора, вам достаточно подать на него питание +5 Вольт и землю, и микроконтроллер включится и начнет выполнять программу. Но если вы выпаяли микроконтроллер из какого-либо устройства и он должен был в нем тактироваться от кварца, или по ошибке выставляя биты конфигурации, вы выставили тактирование от кварца, МК перестанет у вас быть виден в программе оболочке, и не сможет выполнять программу, даже если вы подадите на него +5 Вольт и землю.

Что же делать в таком случае? В первую очередь не паниковать) и собрать схему с тактированием от кварца, и тогда мы сделаем видимым наш МК, который вдруг может быть переставать у вас определяться оболочкой программатора и работать в схеме, если вы ошибочно переведете МК в режим тактирования от кварца, путем выставления определенных фьюзов. Об этом мы как-нибудь еще поговорим 😉

________________________________________________________

   Для каждого типа микроконтроллера есть свой заголовочный файл. Для ATMega8535 этот файл называется iom8535.h, для ATMega16 – iom16.h. По идее мы должны в начале каждой программы подключать заголовочный файл того микроконтроллера, который мы используем.  Умные люди немного облегчили нам жизнь и написали заголовочный файл ioavr.h. Препроцессор обрабатывает этот файл и в зависимости от настроек проекта включает в нашу программу нужный заголовочный файл. Итак, следущая строчка программы #include <ioavr.h>    В нашей программе мы будем использовать задержку. Задержку можно реализовать программно и аппаратно. Сейчас нас интересует программная задержка. IAR содержит библиотеку, в которой уже есть готовая функция задержки. Нам нужно подключить к нашей программе эту библиотеку. Как это сделать? Каждая библиотека имеет свой заголовочный файл в котором описано какие фукции она содержит. Этот файл мы и должны включить в программу. Делается это, как вы догадались с помощью директивы #include.#include <intrinsics.h>       Основу любой сишной программы составляют функции, и любая  программа на Си имеет хотя бы одну функцию – main().Вообще-то на примере main() не хотелось бы объяснять синтаксис функций, потому что main() хоть и является функцией, но вызывается не как обычно, а автоматически. С этой функции микроконтроллер начинает выполнение написанной нами программы. Вызовы всех других функций, наших или библиотечных, должны быть записаны в коде. Как вызывается функция, мы увидим дальше.У функции есть заголовок – int main(void) и тело – оно ограниченно фигурными скобками {}. В тело функции  мы и будем добавлять наш код.

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

В электронике под АЦП (в переводе с англ. от ADC — analog-to-digital converter) понимают устройство которое конвертирует аналоговый сигнал (например, ток или напряжение) в цифровой код (двоичную форму). В реальном мире большинство сигналов являются аналоговыми, но все микроконтроллеры и микропроцессоры способны понимать только двоичные (бинарные) сигналы – 0 или 1. То есть чтобы заставить микроконтроллер понимать аналоговые сигналы необходимо конвертировать их в цифровую форму – это и делает АЦП. Существуют различные типы АЦП, каждый тип удобен для конкретных приложений. Наиболее популярные типы АЦП используют такие типы аппроксимаций как приближенная, последовательная и дельта-аппроксимацию. 

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

Мы в данной статье будем использовать встроенный в микроконтроллер AVR ATmega16 аналого-цифровой преобразователь – практически все микроконтроллеры семейства AVR оснащаются встроенным АЦП. Но вместе с тем следует помнить о том, что существуют и другие типы микроконтроллеров, у которых нет собственных АЦП – в этом случае необходимо использовать внешний АЦП. Как правило, внешние АЦП сейчас выпускаются в виде одной микросхемы.

Сферы применения различных Tiny, Mega

Четко описать сферу применения микроконтроллера нельзя, ведь она безгранична, однако можно классифицировать следующим образом:

  1. Tiny AVR – самые простые в техническом плане. В них мало памяти и выводов для подключения сигналов, цена соответствующая. Однако это идеальное решение для простейших проектов, начиная от автоматики управления осветительными приборами салона автомобиля, до осциллографических пробников для ремонта электроники своими руками. Они также используются в Arduino-совместимом проекте – Digispark. Это самая маленькая версия ардуины от стороннего производителя; выполнена в формате USB-флешки.
  2. Семейство MEGA долго оставалось основным у продвинутых радиолюбителей, они мощнее и имеют больший, чем в Tiny, объём памяти и количество выводов. Это позволяет реализовывать сложные проекты, однако семейство очень широко для краткого описания. Именно они использовались в первых платах Arduino, актуальные платы оснащены, в основном, ATMEGA

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

Справочник по командам ассемблера AVR

Опубликовано пн, 10/30/2017 — 20:05 пользователем trol

На создание этого справочника меня побудило то, что все существующие ресурсы категорически неудобны, т.к. не имеют возможности быстрого переключения
между командами — приходилось либо листать PDF-ку, либо щёлкать по ссылкам онлайн-версии.
Тогда как хотелось иметь возможность видеть описание команды сразу после ввода её имени, без каких-либо лишних действий. Дополнительно присутствует
полный список команд с их кратким описанием.

Справочник основан на переводе документации от Atmel. Помимо этого сюда добавлено больше примеров использования команд.
В частности, добавлены примеры для ассемблера AVR GCC, т.к. последний имеет ряд особенностей, связанных с линковкой объектного кода.

Справочник будет дополняться по мере появления вопросов.

Чтобы быстро перейти к нужной команде достаточно ввести её имя.

Схема

Построение схемы довольно простое и может быть выполнено с использованием большинства методов построения схем, включая макет, картон, монтажную плату и печатную плату.

Схема в этом проекте показывает использование простой цепи регулятора мощности (с использованием 7805), которую обеспечивает устройство ATMEGA 5В, но оказывается, что программатор USBASP обеспечивает приблизительно 3,3 В. Несмотря на это, лучше обеспечить внешнее питание, чтобы USBASP не потреблял слишком много тока из любого USB-порта.

Программатор USBASP, который я купил, также шел с конвертером, который преобразует 10-контактный разъем в более удобный 6-контактный программный разъем. Тем не менее, header использует двухрядный шаг 2,54 мм, что означает, что он не может быть подключен к макету. Чтобы обойти это, я просто подключил разъем к проводам, которые соединяются с различными пинами на макете.

Функциональное развитие периферии

На рис. 7 приведена обобщенная диаграмма перспективных планов Atmel Corp. по развитию семейства микроконтроллеров AVR. В основном эти планы касаются увеличения объемов массивов памяти на кристалле, а также добавления принципиально новых для AVR крупных функционально законченных периферийных блоков — CAN, USB, RF, Ethernet и др.

Анонсирован к выпуску в феврале 2004 года AVR-микроконтроллер mega128CAN11 с аппаратным узлом CAN. Узел CAN имеет 15 независимых буферов входных сообщений и поддерживает скорость передачи данных до 1 Мбит/с при тактовой частоте 8 МГц. Микроконтроллер будет выпускаться в индустриальном (-40…+85°С) и автомобильном (-40…+125°С) температурных диапазонах и опрессовываться в корпуса TQFP64, QFN64 и BGA64. В mega128CAN11 используется такой же узел CAN, как и в микроконтроллере AT89C51CC01 разработки Temic, производимого на фабрике в г. Нант (Франция).

Разрабатывается специальный микроконтроллер семейства «mega», предназначенный для управления электронным балластом флуоресцентных ламп. Он пока позиционируется как изделие класса ASSP с предварительным обозначением «Mballast», но впоследствии Atmel Corp. планирует выпускать этот кристалл и как стандартный микроконтроллер для всех потребителей AVR.

Для специальных приложений — систем управления напряжением питания, зарядных устройств для аккумуляторов различных типов, портативных блоков питания носимых электронных устройств (сотовые телефоны, ноутбуки, плейеры, PDA и пр.) — по заказу японской фирмы разрабатывается и будет производиться еще одно семейство класса ASSP со встроенным ядром AVR. Оно будет иметь обобщенное название Heimdall. Главной отличительной особенностью Heimdall является новая технология изготовления высоковольтных CMOS-ячеек, которая позволит портам ввода-вывода и процессорному ядру AVR работать при напряжении питания до 24 В.

В 2005 году планируется выпустить микроконтроллеры AVR с USB-интерфейсом на кристалле, используя апробированный блок USB для микроконтроллера AT89C5131 разработки Temic. Также в 2005 году Atmel намеревается расширить линейку AVR с радиочастотным блоком на кристалле.

В планы развития AVR на ближайшее будущее также включен специализированный микроконтроллер с аппаратным блоком Ethernet 10/100T, включая MAC. Этот кристалл уже находится в разработке во Франции. В качестве аппаратного контроллера Ethernet выбрана известная микросхема W3100A производства корейской компании WIZnet (www.wiznet.co.kr).

Что такое микроконтроллер

Прежде всего, разберемся с самим понятием  «микроконтроллер». Микроконтроллер можно определить как миниатюрный компьютер на базе одного-единственного чипа,  включающий, помимо процессора ряд вспомогательных элементов, таких, как ОЗУ, ППЗУ, таймер, и.т.д. Микроконтроллер предназначен для выполнения каких-либо заранее определенных заданий.

Проще всего сравнить микроконтроллер с персональным компьютером. Как и ПК, микроконтроллер имеет процессор, оперативную и постоянную память. Однако, в отличие от ПК, все эти элементы расположены на одном-единственном чипе.

Но означает ли это, что микроконтроллер равноценен персональному компьютеру? Разумеется, нет. ПК создан для того, чтобы выполнять задачи общего назначения. Например, вы можете использовать компьютер, для набора текста, хранения и запуска мультимедиа-файлов, серфинга в Интернет, и.т.д. Микроконтроллеры предназначены для выполнения специальных заданий, например, выключения кондиционера, когда температура в комнате опускается ниже определенного значения, или наоборот, его включения, когда температура повышается.

Существует несколько популярных семейств микроконтроллеров, которые используются для различных целей. Наиболее распространенными из них являются  семейства микроконтроллеров 8051, PIC и AVR. И о последнем семействе мы и собираемся вам рассказать подробнее.

How to install

Boards Manager Installation

This installation method requires Arduino IDE version 1.6.4 or greater.

  • Open the Arduino IDE.
  • Open the File > Preferences menu item.
  • Enter the following URL in Additional Boards Manager URLs:
  • Open the Tools > Board > Boards Manager… menu item.
  • Wait for the platform indexes to finish downloading.
  • Scroll down until you see the MegaCore entry and click on it.
  • Click Install.
  • After installation is complete close the Boards Manager window.

Manual Installation

Click on the «Download ZIP» button in the upper right corner. Extract the ZIP file, and move the extracted folder to the location «~/Documents/Arduino/hardware». Create the «hardware» folder if it doesn’t exist.
Open Arduino IDE, and a new category in the boards menu called «MegaCore» will show up.

Возможно, вам также будет интересно

Появление в конце 1990-х первого 8-разрядного микроконтроллера AVR показало, как за счет оптимизации архитектуры процессорного ядра можно добиться улучшения производительности и снизить энергопотребление. Архитектура AVR позволяла выполнять большинство инструкций за один машинный цикл, таким образом достигая практически на порядок лучшей производительности относительно популярного на тот момент ядра 8051. В 2006 году Atmel представила свою новую

Для изготовления кремниево-германиевых (SiGe) полупроводников сейчас используются хорошо отработанные на протяжении десятилетий технологические процессы. Параметры и характеристики SiGe-компонентов сравнимы с возможностями КМОП-структур, созданных на основе фосфида индия (InP) или арсенида галлия (GaAs). Анализируя потенциал этих трех основных направлений развития элементной базы с точки зрения создания ЦЗО, следует отметить, что лишь SiGe и InP могут обеспечить более высокую полосу пропускания и быстродействие. Однако

Статья посвящена практическим вопросам конфигурации ПЛИС фирмы Lattice Semiconductor через диагностический интерфейс JTAG в составе цепочки из кристаллов различных производителей. Рассмотрена схема загрузочного кабеля ispDOWNLOAD Cable, сопрягающего персональный компьютер или рабочую станцию с интерфейсом внутрисхемного программирования через параллельный порт LPT. Описан пример смешанной цепочки кристаллов, в составе которой присутствует конфигурируемая ПЛИС. Подробно продемонстрирован порядок конфигурации ПЛИС в пакете программ LSC ispVM System.

Последовательные порты

Последовательный периферийный интерфейс SPIИмеется во всех моделях МК
Мы его в большинстве случаях применяем для программирования МК.
Кроме программирования МК, интерфейс SPI позволяет:
– обмениваться данными между МК и внешними устройствами
– обмениваться данными нескольким МК между собой

Универсальный приемопередатчик UARTИмеют все модели МК, но разных типов:– USART– UART
Предназначены для обмена данными по последовательному каналу по двухпроводным линиям связи. Прием и передача могут вестись одновременно.

Последовательный двухпроводный интерфейс TWI (I2C)Встречается только в серии Mega.
Предназначен для обмена данными по двухпроводной линии. Всего к такой линии можно подключить до 128 устройств.
TWI является полным аналогом интерфейса I2C.

Общее устройство микроконтроллеров AVRОбщее устройство микроконтроллеров AVR семейства megaAVR и tinyAVR
Published by: Мир контроллеров

Date Published: 05/03/2015

Структурная схема работы микроконтроллера

Арифметико-логическое устройство

Основой любого МК является АЛУ, в этом узле производятся все возможные арифметические — сложение, вычитание, сравнение и логические операции. В зависимости от того с каким числом разрядов может работать МК , они бывают 8-ми, 16-ти и 32-разрядные.

Если например микроконтроллера имеет 8-ми разрядное АЛУ, то он может выполнить какую либо операцию только с 8-ми разрядными числами и выдать такой-же результат.

К логическим операциям относятся:

  • умножение-логическое «И»;
  • сложение — логическое «ИЛИ»;
  • отрицание — логическое «НЕ»;
  • исключающее «ИЛИ»;
  • сдвиг влево;
  • сдвиг вправо;

Также и МК есть и другого рода операции такие как сброс в «0» или установка в «1» которые не относятся ни к арифмитическим не к логическим операциям.

Регистр общего назначения (РОН)

Произведенные в АЛУ операции возвращают результат вычисления- тоже число которое нужно где то хранить.

Хранение таких результатов осуществляется в регистрах общего назначения (РОН) — такие регистры выполняют своего рода роль временной памяти. У каждого микронтроллера кол-во таких РОН может быть разным. На примере структурной схемы МК указаны 32 регистра общего назначения.

Но такие регистры имеют очень небольшой объем памяти и предназначены для временного хранения данных в процессе работы АЛУ. Для более длительного времени хранения информации используются ОЗУ, которая имеет больший объем нежели РОН.

Постоянно запоминающее устройство(ПЗУ)

Инструкции или последовательность команд для AЛУ хранятся в постоянной памяти — ПЗУ которая представляет собой Flash-память, именно в нее мы записываем исполняемый код написанной нами программы. Каждой команде в ПЗУ соответствует определенный адрес.

Если мы хотим получить какую либо команду то мы должны обратиться к адресу этой команды, обращение к адресам ПЗУ осуществляет счетчик команд.

После того как мы обратитиль к адресу той или иной командны, данные из ПЗУ поступает в регистр команд. АЛУ мониторит наличие команды в регистре и при ее наличии начинает ее выполнять.

Порты ввода/вывода

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

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

Также очень важным узлом любого микронтроллера является тактовый генератор, который синхронизирует работы всего МК. Он может быть как внешним так и внутренним.

Установка драйвера для USBASP в Windows 10

Если вы используете интерфейс JTAG, вам может потребоваться установка драйвера для USBASP если он не установился автоматически. Если вы не установите этот драйвер, то вы не сможете найти порт USBASP в программе Atmel Studio. Скачать драйвер USBASP можно по этой ссылке — http://www.mediafire.com/file/z576zrku371qyjs/windows-8-and-windows-10-usbasp-drivers-libusb_1.2.4.0-x86-and-x64-bit.zip/file.

После скачивания драйвера выполните следующую последовательность действий:

1. Распакуйте из архива скачанные файлы и поместите их на рабочий стол.

2. Подсоедините модуль USBASP v2.0 к своему компьютеру.

3. Откройте в Windows диспетчер устройств (Device Manager).

4. Теперь вы можете увидеть подсоединенный USBASP в списке устройств.

5. Кликните правой кнопкой мыши по “USBasp” и выберите “Обновить драйвер (Update Driver)”.

6. Select “Произвести поиск драйвера на своем компьютере (Browse my computer for driver software)”.

7. Найдите в открывшемся окне распакованную папку с драйвером для USBASP и щелкните «Открыть».

8. Если установка драйвера прошла успешно, то вы увидите сообщение примерно такое же как на нижеприведенном рисунке – в этом случае вам уже не нужно выполнять дальнейшие инструкции в этом разделе статьи.

9. Если вы увидите сообщение об ошибке как на приведенном рисунке, то вы в этом случае должны отключить цифровую подпись драйвера.

Чтобы сделать выполните следующие шаги:

— нажмите кнопку Shift и удерживая ее нажатой перезагрузите свой компьютер (кликните Restart в меню Windows пока держите ее нажатой);

— когда ваш компьютер перезагрузится не отпускайте кнопку Shift до тех пор пока не увидите “Advanced Options (Расширенные настройки)” на синем экране;

— отпустите кнопку Shift и кликните на “Startup Settings”;

— кликните на “Troubleshoot (Устранение проблем)”;

— выберите “Advanced Options (Расширенные настройки)”;

— после этого вы увидите на экране список расширенных опций и кнопку “Restart” в правом нижнем углу – кликните на ней;

— подождите пока компьютер снова перезагрузится. После этого вы увидите на экране ряд настроек;

— в открывшемся списке настроек выберите пункт “Disable Driver Signature Enforcement (Отключить цифровую подпись драйвера)”. Чтобы ее выбрать просто нажмите кнопку «7» на вашей клавиатуре (не путать с кнопкой «F7»);

— после нажатия этой кнопки компьютер перезагрузится и цифровая подпись драйвера будет отключена;

— после этого снова выполните шаги 1-8 из данного раздела статьи и драйвер для программатора USBASP будет успешно установлен.

Управление микроконтроллером

Микроконтроллеры AVR оснащены Гарвардской архитектурой. Каждая из областей памяти располагаются в своем адресном пространстве. Память данных в контроллерах осуществляется посредством регистровой, энергонезависимой и оперативной памяти.

Микроконтроллер AVR

Регистровая память предусматривает наличие 32 регистров общего назначения, которые объединены в файл, а также служебные регистры для ввода и вывода. И первые, и вторые располагаются в пространстве ОЗУ, однако не являются его частью.

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

Конденсаторы по питанию

Перед тем, как подать на микроконтроллер питающее напряжение, выполним правило, которое обязательно для всех цифровых микросхем: в непосредственной близости от выводов питания микросхемы должен быть керамический конденсатор емкостью 0,06 — 0,22 мкф. Обычно устанавливают конденсатор 0,1 мкф. Его часто называют блокировочным конденсатором.

В схему необходимо установить и электролитический конденсатор емкостью 4-10 мкф. Он также является блокировочным фильтром, но на менее высоких частотах. Такой конденсатор можно устанавливать один для нескольких микросхем. Обычно на 2-3 корпуса микросхем.

Дело в том, что микроконтроллер (как и другие цифровые микросхемы) состоит из транзисторных ячеек, которые в процессе работы постоянно переключаются из открытого состояния в закрытое, и наоборот. При этом изменяется потребляемая транзисторными ячейками энергия. В линии питания возникают кратковременные «провалы» напряжения. Этих ячеек в микроконтроллере сотни тысяч (думаю, что сейчас уже миллионы!), поэтому по питающим проводам начинают гулять импульсные помехи с частотами от единиц до десятков тысяч Герц.

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

Конденсатор для постоянного тока является изолятором. Но при установке конденсатора в цепи с непостоянным током он делается сопротивлением. Чем выше частота, тем меньшее сопротивление оказывает конденсатор. Следовательно, блокировочный конденсатор с малой емкостью пропускает через себя (шунтирует) высокочастотные сигналы (десятки и сотни Герц), а конденсатор с бОльшей емкостью — низкочастотные. Об этом я писал еще в статье

AVR 8-Bit RISC — IEEE 802.15.4™/ZigBee

Решение AVR Z-Link представляет собой связку радиочастотной части — AT86RF230 с AVR совместимыми микроконтроллерами ATmega1281 или ATmega 2561. Устройство отличается крайне низкой потребляемой мощностью и высокой чувствительностью, работает на частоте 2.4 GHz и полностью совместимо со стандартом IEEE 802.15.4. Такая комбинация микросхем позволяет уменьшить потребляемую мощность и получить более широкий рабочий диапазон, в отличие от других 802.15.4 решений, предлагаемых сегодня на рынке.

Технические характеристики выпускаемых AVR Z-Link — контроллеров приведены в таблице.

Таблица. Технические характеристики AVR Z-Link — контроллеров

Микросхема Тип AVR RF-чип Flash (КБ) EEPROM (КБ) RAM (КБ) ISM диапазон Чувстви-тельность Выходная мощность Напряже-ние питания Vcc I/Os Корпус
ATmega64RZAV mega644 RF230 64 1 4 2.4 -101 3 1.8-3.6 32 TQFP44 MLF44 PDIP42
ATmega128RZAV mega1281 RF230 128 4 8 2.4 -101 3 1.8-3.6 54 TQFP64 MLF64
ATmega128RZBV mega1280 RF230 128 4 8 2.4 -101 3 1.8-3.6 86 TQFP100
ATmega256RZAV mega2561 RF230 256 4 8 2.4 -101 3 1.8-3.6 54 TQFP64 MLF64
ATmega256RZBV mega2560 RF230 256 4 8 2.4 -101 3 1.8-3.6 86 TQFP100

AT86RF230 — Приемопередатчик ZigBee/IEEE 802.15.4

Главная —
Микросхемы —
DOC —
ЖКИ —
Источники питания —
Электромеханика —
Интерфейсы —
Программы —
Применения —
Статьи

Микроконтроллер Atmel Atmega328p

Параметр

Значение

Тип процессора

8-битный AVR

Флэш-память

32 КБ

SRAM

2 КБ

EEPROM

1 КБ

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

28 или 32 контакта:

Максимальная рабочая частота

20 МГц

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

2

Интерфейс USB

Технические характеристики

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

Микроконтроллер Atmega328p

Микроконтроллер состоит из нескольких вычислительных блоков:

Арифметико-логическое устройство (АЛУ) (англ. arithmetic logic unit, ALU) — блок процессора, который под управлением устройства управления служит для выполнения арифметических и логических преобразований над данными.

 Блок управления процессором (УУ) (control unit, CU) — блок, устройство, компонент аппаратного обеспечения компьютеров. Представляет собой конечный дискретный автомат. Структурно устройство управления состоит из: дешифратора команд (операций), регистра команд, узла формирования (вычисления) текущего исполнительного адреса, счётчика команд. УУ современных процессоров обычно реализуются в виде микропрограммного автомата и в этом случае УУ включает в себя ПЗУ микрокоманд. УУ предназначено для формирования сигналов управления для всех блоков машины.

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

Микроконтроллер Atmega328P и Arduino

В классической линейке устройств Arduino в основном применяются микроконтроллеры Atmel AVR. Следующие МК можно встретить на указанных распространённых платах:

  • ATmega2560 (16 МГц, 256к Flash, 8к RAM, 54 порта, из них до 15 с ШИМ и 16 АЦП). Платы Mega.

  • ATmega32U4 (16 МГц, 32к Flash, 2,5к RAM, 20 портов, из них до 7 с ШИМ и 12 АЦП). Платы Leonardo, Micro, Yun.

  • ATmega328 (16 МГц, 32к Flash, 2к RAM, 14 портов, из них до 6 с ШИМ и 8 АЦП). Платы UnoR3, Mini, NanoR2, Pro, Pro mini, различные варианты плат uno и nano, такие как Wifi Uno и nano + nrf42l01

  • ATtiny85 (20Мгц, 8к Flash, 512б RAM, 6 портов, из них 4 ШИМ и 4 аналоговых). Платы Digispark, также часто применяются вне плат.

  • ATmega168(16Мгц, 16к Flash, 1к RAM, порты и распиновка аналогично ATmega328) Платы Uno R1, Uno R2, Pro mini, NanoR1.

Заключение

Начало работы с устройствами AVR может показаться несколько сложным, если вы не используете официальный программатор, который может работать «из коробки» с Atmel Studio 7. Однако в инструментах программирования требуется определить только одну командную строку (тип устройства, биты и т.п.). И все будущие проекты могут использовать один и тот же инструмент/компилятор, который нужно настроить только один раз.

Т.е. следующий проект ATMEGA168, который вы будете делать, сможет использовать тот же компилятор и внешний инструмент, что и в этом проекте и не потребуется никаких дополнительных настроек. Конечно, в более сложных проектах может потребоваться замена бит (англ. fuse), например, но в данном материале я хотел просто помочь вам освоить работу с устройствами AVR.

Заключение, или Почему рекомендуется использовать AVR ?

Во-первых, архитектура Flash-микроконтроллеров AVR 8-bit RISC является одной из самых удачных на мировом рынке микроконтроллеров. Наличие трех типов памяти на кристалле, высокая производительность, низкое энергопотребление, отличная адаптивность к языкам программирования высокого уровня (С/С++), разнообразные периферийные модули, широкий диапазон напряжений питания и совместимость кристаллов семейства «снизу вверх» снискали заслуженное уважение и авторитет во всем мире.

Во-вторых, семейство микроконтроллеров AVR поддержано полноценным, профессиональным и доступным набором средств поддержки разработок — как аппаратных, так и программных. AVR обеспечивается также квалифицированной технической поддержкой специалистов корпорации Atmel.

В-третьих, объемы производства и продаж AVR постоянно увеличиваются, что является гарантией их развития и соответствия мировым требованиям, предъявляемым к современным микроконтроллерам. Легкий выбор нужного универсального микроконтроллера для конкретного приложения из относительно небольшого, но сбалансированного семейства AVR, хорошая совместимость микроконтроллеров по коду и расположению выводов, отличное соотношение «цена — производительность — энергопотребление» для 8-разрядных микроконтроллеров являются хорошими аргументами для выбора платформы.