Платы atmel
Содержание
- 1 Установка драйвера для USBASP в Windows 10
- 2 Пояснение части кода программы
- 3 Описание архитектуры
- 4 Вопросы программирования микроконтроллеров
- 5 Система команд
- 6 Как установить AVR Studio
- 7 Частотомер-тестер кварцев на atmega8
- 8 Графическая оболочка для avrdude под MacOS
- 9 История семейства
- 10 Что такое программа
- 11 Как настроить Atmel Studio 7 и WinAVR
- 12 Семейства микроконтроллеров
- 13 Что такое АЦП (аналого-цифровой преобразователь)
- 14 Средства разработки
- 15 Архитектура контроллера
- 16 Заключение
- 17 Заключение
Установка драйвера для 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 будет успешно установлен.
Пояснение части кода программы
Мы напишем программу для включения/выключения светодиода удаленно, использую связь через радиочастотные модули. В этой части статьи мы рассмотрим лишь ключевые особенности кода программы, текст всей программы будет приведен в конце статьи.
Код для передающей части
Первым делом подключите заголовочный файл delay.h чтобы использовать функции задержки в программе.
Теперь рассмотрим главный цикл в конце тела программы. В этом цикле While мы будем передавать 0x10 байт на PORTD когда кнопка нажата и байт 0x20 когда кнопка не нажата. Можно использовать любые другие значения – но их необходимо будет изменить и на приемном конце.
Код для приемной части
Первым делом здесь необходимо объявить переменные, которые будут использоваться для хранения символов, принимаемых от приемного радиочастотного модуля.
Теперь рассмотрим главный цикл в конце программы. В этом цикле мы будем хранить принимаемые байты в переменной символьного типа (char) и сравнивать их с теми, которые мы передавали на передающей стороне. Если результат сравнения положительный, то мы в соответствии с их значениями будем включать/выключать светодиод, подключенный к PORTB.0.
Описание архитектуры
Микроконтроллеры AVR имеют гарвардскую архитектуру (программа и данные находятся в разных адресных пространствах) и систему команд, близкую к идеологии RISC. Процессор AVR имеет 32 8-битных регистра общего назначения, объединённых в регистровый файл. В отличие от «идеального» RISC, регистры не абсолютно ортогональны:
- Некоторые команды работают только с регистрами r16…r31. К ним относятся команды, работающие с непосредственным операндом: ANDI/CBR, ORI/SBR, CPI, LDI, LDS (16-бит), STS (16-бит), SUBI, SBCI, а также SER и MULS;
- Команды, увеличивающие и уменьшающие 16-битное значение (в тех моделях, где они доступны) с непосредственным операндом (ADIW, SBIW), работают только с одной из пар r25:r24, r27:r26 (X), r29:r28 (Y), или r31:r30 (Z);
- Команда копирования пары регистров (в тех моделях, где доступна) работает только с соседними регистрами, начинающимися с нечётного (r1:r0, r3:r2, …, r31:r30);
- Результат умножения (в тех моделях, в которых есть модуль умножения) всегда помещается в r1:r0. Также только эта пара используется в качестве операндов для команды самопрограммирования (где доступна);
- Некоторые варианты команд умножения принимают в качестве аргументов только регистры из диапазона r16…r23 (FMUL, FMULS, FMULSU, MULSU).
Вопросы программирования микроконтроллеров
Для программирования МК ваш код нужно компилировать, для этого есть множество программного обеспечения, пример одного из них – это компилятор IAR. Использование этого компилятора не ограничено одними лишь Atmel. 8051, AVR, AVR32, ARM – это лишь небольшой перечень из более чем 20 поддерживаемых архитектур.
IAR – это универсальное решение для программирования микроконтроллеров различного типа и уровня. Хотя компиляторов есть большое количество, например, WinAVR и CodeVision, но они не осуществляют компилирование программ для тех же АРМов и других архитектур.
IAR Embedded Workbench – полное название этой мощной рабочей среды. Применение ИАРА позволяет добиться меньше размера и большего быстродействия кода; он набирает всё большую популярность из-за своих огромных возможностей.
Пример экрана IAR Embedded Workbench
Работа с микроконтроллерами требует постоянного выполнения одинаковых действий, таких как компиляция, прошивка, сброс к заводским установкам; для автоматизации этих процессов нужно использовать Makefile – набор инструкций для компилятора, в нём записаны обозначения действий с файлами программного кода и другие команды.
Для отладки готовых программ был разработан Atmel ice. Он нужен для внутрисхемной отладки программирования и прошивки устройств. Имеет два разъёма:
- Универсальный AVR, поддерживающий любой интерфейс;
- ARM.
Судя по отзывам реальных пользователей, работает он быстрее аналогов – AVR Dragon, например, при этом захватывает архитектуру АРМов и имеет больше функций.
Система команд
Система команд микроконтроллеров AVR весьма развита и насчитывает в различных моделях от 90 до 133 различных инструкций.
Большинство команд занимает только 1 ячейку памяти (16 бит).
Большинство команд выполняется за 1 такт.
Всё множество команд микроконтроллеров AVR можно разбить на несколько групп:
- команды логических операций;
- команды арифметических операций и команды сдвига;
- команды операции с битами;
- команды пересылки данных;
- команды передачи управления;
- команды управления системой.
Управление периферийными устройствами осуществляется через адресное пространство данных. Для удобства существуют «сокращённые команды» IN/OUT.
Как установить AVR Studio
Устройства AVR программируются с использованием специально модифицированной Visual Studio 2015 под названием AVR Studio 7, которую можно найти на сайте AVR. Первым шагом в программировании устройств AVR является скачивание установщика (небольшого приложения, которое загружает потом необходимые файлы). После скачивания нужно запустить установщик.
Первое, что он вас спросит, будет текст лицензионного соглашения и вопрос про отправку анонимной информации. Я лично рекомендую вам не отправлять анонимные данные по ряду причин (из-за крайней паранойи).
На следующей странице спрашивается какую архитектуру вы хотите установить. Поскольку наш материал охватывает только устройства из диапазона 8-битных микроконтроллеров AVR, то это будет единственная выбранная опция. Однако, если у вас приличная скорость загрузки (у меня всего 4 Мбит/с), тогда выбор всех опций может пригодиться в будущем.
После выбора поддерживаемого устройства на следующей странице будет задан вопрос про расширения — Atmel Software Framework и примеры проектов. Убедитесь, что галочка стоит.
Следующая страница просто проверяет ваш компьютер на наличие потенциальных проблем, таких как отложенный перезапуск (из-за обновления), или если система не сможет запустить IDE. Если все проверено и ОК, жмите «Далее».
Если вы уже установили более раннюю версию AVR IDE, вы можете увидеть следующее окно. Если это так, просто нажмите «Установить».
Теперь нужно подождать пока IDE загрузит все необходимые компоненты и установит их.
После этого вам будет предложено запустить Atmel Studio 7.0. Убедитесь, что стоит галочка перед закрытием окна установки.
Частотомер-тестер кварцев на atmega8
Опубликовано чт, 01/18/2018 — 19:49 пользователем trol
Частотомер — полезный прибор в лаборатории радиолюбителя (особенно, при отсутствии осциллографа).
Кроме частотомера лично мне часто недоставало тестера кварцевых резонаторов — слишком много стало приходить брака из Китая. Не раз случалось такое,
что собираешь устройство, программируешь микроконтроллер, записываешь фьюзы, чтобы он тактировался от внешнего кварца и всё — после записи фьюзов
программатор перестаёт видеть МК. Причина — «битый» кварц, реже — «глючный» микроконтроллер (или заботливо перемаркированый китайцами с добавлением,
например, буквы “А» на конце). И таких неисправных кварцев мне попадалось до 5% из партии.
Кстати, достаточно известный китайский набор частотомера с тестером кварцев на PIC-микроконтроллере и светодиодном дисплее с Алиэкспресса мне
категорически не понравился, т.к. часто вместо частоты показывал то ли погоду в Зимбабве, то ли частоты «неинтересных» гармоник
(ну или это мне не повезло).
Графическая оболочка для avrdude под MacOS
Опубликовано пн, 09/25/2017 — 21:48 пользователем trol
Программа avrdude поддерживает все актуальные программаторы микроконтроллеров AVR и является кроссплатформенной (Linux, Windows, MacOS). Это
консольная утилита и её удобно вызывать из shell/bat-скриптов. Единожды написав такой файлик и положив его в директорию с проектом, получаем
возможность быстро прошить и проверить фьюзы, flash и eeprom микроконтроллера. Проблема только в том, чтобы написать этот скрипт. И тут основную
головную боль вызывают fuse-биты, т.к. надо правильно сформировать их значения нигде не ошибившись. Иначе, устройство, в лучшем случае,
может не заработать совсем или работать неправильно. Ну а в худшем случае можно «окипрпичить» микроконтроллер.
Для avrdue написано много разных графических оболочек под Windows, но среди всего этого многообразия не так просто найти удобный и не сильно глючный
софт. Основное требование к оболочке — возможность работать с fuse-битами не как с числами или набором непонятных чекбоксов, а в нормальном
человекочитаемом формате. Под MacOS вариантов оболочек совсем не много, но, к счастью, есть open-source проект AVRFuses и с фьюзами там всё
относительно неплохо. Плюс открытый исходный код даёт возможность неограниченно затачивать этот инструмент под себя.
Существенный недостаток подобных оболочек в том, что при одновременной работе с несколькими проектами и частым переключением между ними, приходится
каждый раз заново вбивать пути к файлам, и настраивать по памяти значения фьюзов, что скучно и отнимает время. Поэтому в оболочку была добавлена
работа с проектами. Выбрав путь к прошивке и настроив фьюзы, можно сохранить эту конфигурацию чтобы в будущем можно было быстро загрузить её из меню.
История семейства
Семейство микроконтроллеров AVR было создано в 1996 г. корпорацией Atmel, а разработчиками архитектуры микроконтроллеров являются Alf-Egil Bogen и Vegard Wollan. Отсюда и происходит название семейства – от первых букв имен разработчиков – A и V, и первой буквы аббревиатуры RISC – типа архитектуры, на которой базируется архитектура микроконтроллера. Также эту аббревиатуру часто расшифровывают как Advanced Virtual RISC (модернизированный эффективный RISC).
Первым микроконтроллером в серии был AT90S8515, однако первым микроконтроллером, выпущенным на рынок, стал AT90S1200. Это случилось в 1997 г.
На сегодняшний день доступны 3 линейки микроконтроллеров:
TinyAVR – небольшой объем памяти, небольшие размеры, подходит для самых простых задач.
Внешний вид микроконтроллера TinyAVR
MegaAVR – наиболее распространенная линейка, имеющая большой объем встроенной памяти (до 256 КБ), множество дополнительных устройств и предназначенная для задач средней и высокой сложности.
Внешний вид микроконтроллера MegaAVR
XmegaAVR – используется в сложных коммерческих задачах, требующих большого объема памяти и высокой скорости.
Пример микроконтроллера XmegaAVR
Сравнительные характеристики различных линеек:
Название серии | Число контактов | Объем флэш-памяти | Особенность |
TinyAVR | 6-32 | 0,5 – 8 КБ | Небольшой размер |
MegaAVR | 28-100 | 4-256 КБ | Периферийные устройства |
XmegaAVR | 44-100 | 16-384 КБ | Система прерываний, поддержка DMA |
Что такое программа
Какие задачи вы возлагаете на микроконтроллер, и как он будет их выполнять, определяется заложенной в него программой – программой которую для микроконтроллера составляете вы сами.
К примеру, мы хотим, чтобы микроконтроллер помигал светодиодом. Довольно простая задача, но тем не менее, для того, чтобы микроконтроллер выполнил ее, мы, предварительно, должны шаг за шагом описать все действия микроконтроллера — написать программу, которую он должен выполнить для получения нужного нам результата – мигающий светодиод.
Что-то вроде такого:
Зажечь светодиод:
— настроить вывод микроконтроллера,к которому подключен светодиод, для работы на вывод информации
— подать на этот вывод логический уровень, который позволит зажечь светодиод
Подождать некоторое время:
— перейти к подпрограмме формирующей паузу (которую тоже нужно “прописать”)
— по выполнению подпрограммы паузы вернуться в основную программу
Погасить светодиод:
— подать на вывод микроконтроллера логический уровень, гасящий светодиод
и так далее.
С термином Программа неразрывно связан другой термин – Алгоритм.
Как настроить Atmel Studio 7 и WinAVR
Atmel Studio 7 не будет изначально использовать WINAVR или AVRDUDE, поэтому мы должны настроить её для этого. Это может показаться пугающим, но не паникуйте; для программирования устройства AVRDUDE необходима только одна строка инструкций, и только один каталог требуется определить. Фактически, вы должны быть в состоянии скопировать и вставить код в этой статье для любого проекта на базе ATMEGA168.
Итак, первый шаг — сообщить Atmel Studio 7 какой компилятор она должна использовать. Для этого откройте Atmel Studio 7 (если она еще не открыта) и нажмите: Инструменты -> Параметры (англ.: Tools -> Options).
В открывшемся окне используйте список слева, чтобы перейти к: Набор инструментов -> Конфигурация пакета (англ.: Toolchain -> Package Configuration) и в опциях, которые теперь должны быть доступны справа, выберите Atmel AVR 8-bit (язык C) (Atmel AVR 8-bit (C language)) из раскрывающегося списка, а затем нажмите: Добавить особенность (англ.: Add Flavour).
Предполагая, что вы установили WINAVR в папку по умолчанию на диске C и что у вас та же версия, что и в WINAVR, как в этой статье, во всплывающем окне мы пишем так, как показано ниже. После заполнения полей нажмите «Добавить» (англ. add), а когда вы вернетесь в предыдущее окно, нажмите «ОК».
Atmel Studio 7 теперь может использовать WINAVR для компиляции программ AVR, но все равно не может программировать устройства. Для этого нам нужно добавить внешний инструмент в Atmel Studio 7 и настроить его для устройства ATMEGA168.
Первый шаг — перейти в: Инструменты -> Внешние инструменты (англ. Tools -> External tools). Открывшееся окно — единственное окно, необходимое для работы программатора USBASP. Скрин ниже показывает большинство деталей, которые вам нужно будет заполнить.
Поле «Аргументы» (англ. Arguments) не полностью отображает всю информацию, которая необходима, и поэтому приведу ниже то, что было заполнено:
avrdude -c usbasp -p atmega168 -U lfuse:w:0x26:m -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:i
Большая часть информации в этом не важна для нас, кроме двух фрагментов текста. Первый — это -p atmega168;, который говорит AVRDUDE, что мы программируем ATMEGA168. Если в вашем проекте используется другой чип, замените текст atmega168 на используемое вами устройство (например, atmega88).
Второй параметр -U lfuse:w:0x26:m, который специфичен для ATMEGA168. Эта инструкция указывает AVRDUDE настроить устройство на использование внешнего кристалла, и после программирования устройство будет работать только при подключении к схеме кристалла
Обратите внимание, что это также означает, что устройству требуется кристалл при программировании. Этот аргумент будет работать только для ATMEGA168
Семейства микроконтроллеров
Стандартные семейства:
- tinyAVR (ATtinyxxx):
- Флеш-память до 16 Кб; SRAM до 512 б; EEPROM до 512 б;
- Число линий ввода-вывода 4-18 (общее количество выводов 6-32);
- Ограниченный набор периферийных устройств.
- megaAVR (ATmegaxxx):
- Флеш-память до 256 Кб; SRAM до 16 Кб; EEPROM до 4 Кб;
- Число линий ввода-вывода 23-86 (общее количество выводов 28-100);
- Аппаратный умножитель;
- Расширенная система команд и периферийных устройств.
- XMEGA AVR (ATxmegaxxx):
- Флеш-память до 384 Кб; SRAM до 32 Кб; EEPROM до 4 Кб;
- Четырёхканальный DMA-контроллер;
- Инновационная система обработки событий.
Как правило, цифры после префикса обозначают объём встроенной flash-памяти (в КБ) и модификацию контроллера. А именно — максимальная степень двойки, следующая за префиксом, обозначает объём памяти, а оставшиеся цифры определяют модификацию (напр., ATmega128 — объём памяти 128 КБ; ATmega168 — объём памяти 16 КБ, модификация 8; ATtiny44 и ATtiny45 — память 4 КБ, модификации 4 и 5 соответственно).[источник не указан 2906 дней]
На основе стандартных семейств выпускаются микроконтроллеры, адаптированные под конкретные задачи:
- со встроенными интерфейсами USB, CAN, контроллером LCD;
- со встроенным радиоприёмопередатчиком — серии ATAxxxx, ATAMxxx;
- для управления электродвигателями — серия AT90PWMxxxx;
- для автомобильной электроники;
- для осветительной техники.
Кроме указанных выше семейств, ATMEL выпускает 32-разрядные микроконтроллеры семейства AVR32, которое включает в себя подсемейства AT32UC3 (тактовая частота до 66 МГц) и AT32AP7000 (тактовая частота до 150 МГц).
Версии контроллеров
AT (mega/tiny)xxx — базовая версия.
ATxxxL — версии контроллеров, работающих на пониженном (Low) напряжении питания (2,7 В).
ATxxxV — версии контроллеров, работающих на низком напряжении питания (1,8 В).
ATxxxP — малопотребляющие версии (до 100 нА в режиме Power-down), применена технология picoPower (анонсированы в июле 2007), повыводно и функционально совместимы с предыдущими версиями.
ATxxxA — уменьшен ток потребления, перекрывается весь диапазон тактовых частот и напряжений питания двух предыдущих версий (также, в некоторых моделях, добавлены новые возможности и новые регистры, но сохранена полная совместимость с предыдущими версиями). Микроконтроллеры «А» и «не-А» обычно имеют одинаковую сигнатуру, что вызывает некоторые трудности, так как Fuse-bit’ы отличаются.
Номер модели дополняется индексом, указывающим вариант исполнения. Цифры (8,10,16,20) перед индексом означают максимальную частоту, на которой микроконтроллер может стабильно работать при нормальном для него напряжении питания).
Первая буква индекса означает вариант корпуса:
АТxxx-P — корпус DIP
АТxxx-A — корпус TQFP
АТxxx-J — корпус PLCC
АТxxx-M — корпус MLF
АТxxx-MA — корпус UDFN/USON
АТxxx-C — корпус CBGA
АТxxx-CK — корпус LGA
АТxxx-S — корпус EIAJ SOIC
АТxxx-SS — узкий корпус JEDEC SOIC
АТxxx-T — корпус TSOP
АТxxx-TS — корпус (ATtiny4/5/9/10)
АТxxx-X — корпус TSSOP
Следующая буква означает температурный диапазон и особенности изготовления:
АТxxx-xC — коммерческий температурный диапазон (0 °C — 70 °C)
АТxxx-xA — температурный диапазон −20 °C — +85 °C, с использованием бессвинцового припоя
АТxxx-xI — индустриальный температурный диапазон (-40 °C — +85 °C)
АТxxx-xU — индустриальный температурный диапазон (-40 °C — +85 °C), с использованием бессвинцового припоя
АТxxx-xH — индустриальный температурный диапазон (-40 °C — +85 °C), с использованием NiPdAu
АТxxx-xN — расширенный температурный диапазон (-40 °C — +105 °C), с использованием бессвинцового припоя
АТxxx-xF — расширенный температурный диапазон (-40 °C — +125 °C)
АТxxx-xZ — автомобильный температурный диапазон (-40 °C — +125 °C)
АТxxx-xD — расширенный автомобильный температурный диапазон (-40 °C — +150 °C)
последняя буква R означает упаковку в ленты (Tape & Reel) для автоматизированных систем сборки.
Что такое АЦП (аналого-цифровой преобразователь)
В электронике под АЦП (в переводе с англ. от ADC — analog-to-digital converter) понимают устройство которое конвертирует аналоговый сигнал (например, ток или напряжение) в цифровой код (двоичную форму). В реальном мире большинство сигналов являются аналоговыми, но все микроконтроллеры и микропроцессоры способны понимать только двоичные (бинарные) сигналы – 0 или 1. То есть чтобы заставить микроконтроллер понимать аналоговые сигналы необходимо конвертировать их в цифровую форму – это и делает АЦП. Существуют различные типы АЦП, каждый тип удобен для конкретных приложений. Наиболее популярные типы АЦП используют такие типы аппроксимаций как приближенная, последовательная и дельта-аппроксимацию.
Самые дешевые АЦП – с последовательной аппроксимацией, их мы и будем рассматривать в данной статье. В данном случае для каждого фиксированного аналогового уровня последовательно формируется серия соответствующих им цифровых кодов. Внутренний счетчик используется для их сравнения с аналоговым сигналом после конверсии. Генерация цифровых кодов останавливается когда соответствующий им аналоговый уровень становится чуть-чуть больше чем аналоговый сигнал на входе АЦП. Этот цифровой код и будет представлять собой конвертированное значение аналогового сигнала.
Мы в данной статье будем использовать встроенный в микроконтроллер AVR ATmega16 аналого-цифровой преобразователь – практически все микроконтроллеры семейства AVR оснащаются встроенным АЦП. Но вместе с тем следует помнить о том, что существуют и другие типы микроконтроллеров, у которых нет собственных АЦП – в этом случае необходимо использовать внешний АЦП. Как правило, внешние АЦП сейчас выпускаются в виде одной микросхемы.
Средства разработки
Свободные
- 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 (ядро реального времени).
Архитектура контроллера
Всего контроллер AVR имеет 32 8-битных регистра общего назначения. В течение цикла процессор берет данные из двух регистров и помещает их в арифметико-логическое устройство (АЛУ), которое производит операцию над данными и помещает их в произвольный регистр. АЛУ может выполнять как арифметические, так и логические действия над операндами. Также АЛУ может выполнять и действия с одним операндом (регистром). При этом контроллер не имеет регистра-аккумулятора, в отличие от контроллеров семейства 8051 – для операций могут использоваться любые регистры, и результат операции также может быть помещен в любой регистр.
Контроллер соответствует Гарвардской вычислительной архитектуре, согласно которой компьютер имеет отдельную память для программ и данных. Поэтому в то время, пока выполняется одна инструкция, происходит предварительное извлечение из памяти следующей инструкции.
Котроллер способен выполнять одну инструкцию за цикл. Отсюда следует, что если тактовая частота контроллера составляет 1 МГц, то его производительность составит 1 млн. оп./c. Чем выше тактовая частота контроллера, тем выше будет его скорость. Однако при выборе тактовой частоты контроллера следует соблюдать разумный компромисс между его скоростью и энергопотреблением.
Помимо флэш-памяти и процессора контроллер имеет такие устройства, как порты ввода-вывода, аналого-цифровой преобразователь, таймеры, коммуникационные интерфейсы – I2C, SPI и последовательный порт UART. Все эти устройства могут контролироваться программно.
Типовая архитектура микроконтроллеров AVR
Заключение
Начало работы с устройствами AVR может показаться несколько сложным, если вы не используете официальный программатор, который может работать «из коробки» с Atmel Studio 7. Однако в инструментах программирования требуется определить только одну командную строку (тип устройства, биты и т.п.). И все будущие проекты могут использовать один и тот же инструмент/компилятор, который нужно настроить только один раз.
Т.е. следующий проект ATMEGA168, который вы будете делать, сможет использовать тот же компилятор и внешний инструмент, что и в этом проекте и не потребуется никаких дополнительных настроек. Конечно, в более сложных проектах может потребоваться замена бит (англ. fuse), например, но в данном материале я хотел просто помочь вам освоить работу с устройствами AVR.
Компания Atmel Corporation представила обновленную версию интегрированной платформы разработки ( или как принято ее «обзывать» – IDP) для создания и отладки Atmel SMART ARM и микроконтроллера Atmel AVR (MCU). Итак, перед вами интегрированная платформа разработки от Microchip. Она обеспечивает современную и мощную среду для разработки AVR и ARM. Начните с изучения включенных примеров, после установки и запуска обязательно с ними ознакомьтесь. Программируйте и отлаживайте свой проект с включенным симулятором или используйте один из мощных средств отладки и программирования на чипе от Microchip. Получайте производительность с помощью различных функций навигации, рефакторинга и intellisense в включенном редакторе.
Если кто понял о чем идет речь, так как я далеко от этого и почти ничего не понял, можете скачать Atmel Studio и как всегда данная программа идет с кряком или ключом в архиве, а вообще версия программы полная, установили и можете смело пользоваться сколько вам захочется.
Компания Atmel Corporation представила обновленную версию интегрированной платформы разработки ( или как принято ее «обзывать» – IDP) для создания и отладки Atmel SMART ARM и микроконтроллера Atmel AVR (MCU). Итак, перед вами интегрированная платформа разработки от Microchip. Она обеспечивает современную и мощную среду для разработки AVR и ARM. Начните с изучения включенных примеров, после установки и запуска обязательно с ними ознакомьтесь. Программируйте и отлаживайте свой проект с включенным симулятором или используйте один из мощных средств отладки и программирования на чипе от Microchip. Получайте производительность с помощью различных функций навигации, рефакторинга и intellisense в включенном редакторе.
Если кто понял о чем идет речь, так как я далеко от этого и почти ничего не понял, можете скачать Atmel Studio и как всегда данная программа идет с кряком или ключом в архиве, а вообще версия программы полная, установили и можете смело пользоваться сколько вам захочется.
Заключение
Построение процессора на основе микропрограммного управления имеет свои плюсы и минусы. Оно позволяет настраивать процессор на выполнение различных наборов команд. То есть, один и тот же базовый кристалл может использоваться для разных моделей процессоров и микроконтроллеров. Достаточно изменить содержимое памяти микрокоманд.
Если процессор допускает загрузку, полностью или частично, памяти микрокоманд из внешней памяти, то мы можем изменять набор команд прямо во время выполнения программы. А еще, появляется возможность исправлять ошибки в работе процессора, если они были допущены при его его разработке и изготовлении.
При этом микропрограммное управление усложняет структуру процессора и делает время выполнения команд переменным. А для сохранения быстродействия процессора требуется повышать частоту работы его ядра.
Использует ли используемый Вами микроконтроллер или процессор микропрограммное управление? Если это не описано в документации, Вы можете никогда этого не узнать. Разное время выполнения разных команд не обязательно является признаком того, что используются микрокоманды. Точно так же, постоянная длительность машинного цикла не обязательно говорит об их отсутствии.
Повлияет ли на Ваше использование микроконтроллера то, что он сделан на основе жесткой логики или с микропрограммным управлением? В большинстве случаев нет. Поэтому и статья факультативная. Но иметь представление о концепции микропрограммного управления полезно. Однако, в некоторых случаях, например, при использовании сложных микроконтроллеров в системах реального времени или с жесткими требованиями по соблюдению временных параметров, микропрограммное управление может оказывать влияние, которое уже потребуется учитывать.
На сегодня все. В следующей статье начнем знакомство с понятием архитектуры ЭВМ, что имеет непосредственное отношение практике использования микроконтроллеров.