Atmel Studio и программатор USBasp
В прошлой статье я уже писал, что совместно с программой Atmel Studio мы будем использовать простой и недорогой программатор USBasp и программу для прошивки микроконтроллеров AVRDUDE_Prog. Конечно, если у вас есть программатор, совместимый с Atmel Studio, вы сможете пользоваться и им.
Эта статья для тех, кто имеет только USBasp (хотя и не только для них).
Ближайший родственник USBasp программатора, который совместим с Atmel Studio — STK500. Есть программаторы несколько сложнее USBasp — USBisp, которые можно прошить прошивкой от STK500, но у нас такой возможности нет. Мы можем только, для удобства работы с программой AVRDUDE_Prog интегрировать ее в меню Atmel Studio (вставим в меню кнопку вызова программы). Так как Atmel Studio у нас уже имеет русский интерфейс, то картинок уже не будет.
Итак, вставляем кнопку вызова программы AVRDUDE_Prog в меню:
1. Выбираем меню «Сервис»
2. В открывшемся окне выбираем «Внешние инструменты»
3. В открывшемся окне, в графе «Название» прописываем USBasp, а в графе «Команда» указываем путь до файла запуска программы AVRDUDE_Prog и нажимаем ОК. Теперь, если снова открыть меню «Сервис», мы увидим перед «внешними инструментами» наш USBasp. Можно программу запускать и отсюда.
4. Выбираем меню «Сервис» а в нем «настройка»
5. В открывшемся окне будет два подраздела «Панели инструментов» и «Команды». В «панели инструментов» нажимаем «Создать». В появившемся окне прописываем имя панели инструментов — USBasp и ОК. Сразу увидите как, среди прочего, появилась новая панель USBasp.
6. Переходим в подраздел «Команды» и ставим галочку (точку) напротив надписи «Панель инструментов». В «панели инструментов» (в окне) выбираем USBasp и ОК. Далее нажимаем «Добавить команду». В открывшемся окне выбираем категорию «Сервис». В открывшемся окне «Команды» выбираем «Внешняя команда 1» и ОК. Закрываем окно «Настроить».
После столь долгого пути и многих манипуляций, в самом конце меню (в 1 или 2 строке) вы должны увидеть кнопку «USBasp». Но можете и не увидеть, все зависит от разрешения вашего экрана, она может быть спрятана внутри раскрывающегося меню
Ищем, где находится наша кнопка
И перетягиваем раскрывающееся меню на вторую строчку
Теперь мы можем запускать программу AVERDUDEProg из меню Atmel Studio.
Таким же образом можно прописать и любую другую программу
Предыдущие статьи
Проблемы, связанные с русификацией и русификация интерфейса программы Atmel Studio 7
Published by: Мир Микроконтроллеров
Date Published: 10/16/2016
Сроки обучения
Арифметические операции работают с регистрами R0 – R31, но не непосредственно с ОЗУ, и занимают один тактовый цикл, за исключением умножения и сложения по всему слову (ADIW и SBIW), которые занимают два цикла.
Доступ к ОЗУ и пространству ввода-вывода можно получить только путем копирования в регистры или из них. Косвенный доступ (включая необязательный постинкремент, прединкремент или постоянное смещение) возможен через регистры X, Y и Z. Все обращения к ОЗУ занимают два тактовых цикла. Перемещение между регистрами и вводом-выводом — один цикл. Перемещение восьми или шестнадцати битовых данных между регистрами или константой в регистр также составляет один цикл. Чтение памяти программ (LPM) занимает три цикла.
Microchip Studio (Atmel Studio 7)
Все, кто хоть раз имел дело с разработкой программного кода для микроконтроллеров, наверняка слышали о среде Atmel Studio. После того как Microchip завершила сделку по покупке компании Atmel в 2016 году, все права на среду разработки (как и на сами микроконтроллеры) перешли к новому правообладателю, а сама IDP стала носить гордое название Microchip Studio.
Microchip Studio представляет собой интегрированную платформу разработки (IDP) для создания и отладки приложений на базе микроконтроллеров AVR и SAM. Atmel Studio влилась в широкое портфолио средств разработки от Microchip и предлагает пользователям простой в использовании функционал для написания, сборки и отладки приложений, написанных на языках C/C++ или ассемблере (Рисунок 8).
Рисунок 8. | Пример работы с проектом в среде Microchip Studio. |
Несмотря на то, что среда получила новое название и слегка измененный внешний вид, пользователи по-прежнему могут свободно использовать документацию, курсы и видеоуроки, созданные для Atmel Studio. То же касается и аппаратной части, в частности программаторов AVR и SAM.
Microchip Studio устанавливается вместе с компиляторами avr-gcc, avr32-gcc и arm-none-eabi-gcc, в дополнение к которым был также добавлен MPLAB XC8. Его расширенная версия MPLAB XC8 PRO включает в себя улучшенную степень оптимизации, уменьшенный размер кода и успешно конкурирует с более дорогими представленными на рынке решениями.
Ключевые особенности среды Microchip Studio:
- Поддержка более 500 устройств AVR и SAM;
- Встроенный компилятор MPLAB XC8;
- Более 1600 примеров проектов с исходными кодами, доступными через Advanced Software Framework (ASF);
- Расширение возможностей IDE через Microchip Gallery – онлайн-магазин инструментов разработки и встроенного программного обеспечения от Microchip и сторонних производителей;
- QTouch Composer – набор инструментов для разработки и настройки емкостных сенсорных устройств, проверки производительности системы, мониторинга энергопотребления с возможностью работы в режиме реального времени;
- Wireless Composer набор инструментов для разработки и настройки беспроводных устройств;
- Расширенные функции отладки, включая степпинг и точки останова, поддержку трассировки (SAM3 и SAM4), статистическое профилирование кода, отслеживание/мониторинг прерываний, отслеживание значений переменных в режиме реального времени и многое другое;
- Встроенный редактор кода, менеджер проектов, виртуальный симулятор, модуль внутрисхемной отладки и интерфейс командной строки;
- Возможность написания кода и моделирования прерываний, работы периферийных устройств и других внешних воздействий для конкретной модели контроллера;
- Возможность создания дизайна приложений с низким энергопотреблением;
- Отслеживание данных о потребляемой мощности во время отладки программы при помощи Power Debugger.
Еще одной особенностью является возможность импорта в Microchip Studio проектов Arduino, что позволяет значительно упростить и ускорить процесс перехода от создания прототипа к организации полноценного производства. Microchip Studio поддерживает работу с Arduino Zero и платами расширения Arduino Shield.
Programming interfaces
There are many means to load program code into an AVR chip. The methods to program AVR chips varies from AVR family to family.
ISP
The In-system programming (ISP) programming method is functionally performed through SPI, plus some twiddling of the Reset line. As long as the SPI pins of the AVR aren’t connected to anything disruptive, the AVR chip can stay soldered on a PCB while reprogramming. All that’s needed is a 6-pin connector and programming adapter. This is the most common way to develop with an AVR.
The Atmel AVR ISP mkII device connects to a computer’s USB port and performs in-system programming using Atmel’s software.
AVRDUDE (AVR Downloder UploaDEr) runs on Linux, FreeBSD, Windows, and Mac OS X, and supports a variety of in-system programming hardware, including Atmel AVR ISP mkII, Atmel JTAG ICE, older Atmel serial-port based programmers, and various third-party and «do-it-yourself» programmers.
PDI
The Program and Debug Interface (PDI) is an Atmel proprietary interface for external programming and on-chip debugging of XMEGA devices. The PDI supports high-speed programming of all non-volatile memory (NVM) spaces; flash, EEPROM, fuses, lock-bits and the User Signature Row. This is done by accessing the XMEGA NVM controller through the PDI interface, and executing NVM controller commands. The PDI is a 2-pin interface using the Reset pin for clock input (PDI_CLK) and a dedicated data pin (PDI_DATA) for input and output.
High voltage
High-voltage serial programming (hvsp) is mostly the backup mode on smaller AVRs. An 8-pin AVR package doesn’t leave many unique signal combinations to place the AVR into a programming mode. A 12 volt signal, however, is something the AVR should only see during programming and never during normal operation.
Parallel
Parallel programming is considered the «final resort» and may be the only way to fix AVR chips with bad fuse settings. Parallel programming may be faster and beneficial when programming many AVR devices for production use.
Bootloader
Most AVR models can reserve a bootloader region, 256 B to 4 KB, where re-programming code can reside. At reset, the bootloader runs first, and does some user-programmed determination whether to re-program, or jump to the main application. The code can re-program through any interface available, it could read an encrypted binary through an Ethernet adapter like PXE. Atmel has application notes and code pertaining to many bus interfaces.
ROM
The AT90SC series of AVRs are available with a factory mask-ROM rather than flash for program memory. Because of the large up-front cost and minimum order quantity, a mask-ROM is only cost-effective for high production runs.
Техническое состояние сайта
Возраст домена
30 лет
Молодые и новые домены плохо продвигаются в высококонкурентных тематиках. Также важна история домена и сайта. Старые домены с плохой историей сложно продвинуть. Поисковые системы любят старые, тематические домены с хорошей историей (без фильтров, спама, черного сео и т.п.).
Обновлено 17.05.2021 16:10
Окончание домена
Домен продлен до 04.03.2022
Не забывайте продлевать доменное имя. Лучше включить автоматическое продление у своего регистратора. После окончания регистрации домена есть шанс потерять доступ к домену.
Обновлено 17.05.2021 16:10
SSL-сертификат
Cайт доступен по HTTPS.
Описание:
Для продвижения сайтов коммерческой направленности важна конфиденциальность обмена информацией междусервером и посетителями. Это повышает лояльность потенциальных клиентов к ресурсу, увеличивает уровеньдоверия, влияет на конверсию и рост позиций в выдаче практически по всем запросам.
Cтатьи по теме:
- Заявление Google
Обновлено 11.02.2017 20:07
Технологии, которые используются на сайте
Web фреймворк
Microsoft ASP.NET
IP
192.199.1.43
Местоположение сервера
Соединенные Штаты
Расположение сервера имеет значение для поисковых роботов. При ранжировании они отдают предпочтение сайтам, чьи серверы находятся в той же стране, что и целевая аудитория ресурса.
Обновлено 11.02.2017 20:07
Датацентр
ATMEL Corporation
Ошибки HTML кода
Найдено 100 ошибок и 109 предупреждений.
Описание:
Код без ошибок — это код, который соответствует стандартам W3C. Страницы с корректным кодом правильно отображаются в браузере, то есть имеют хорошие поведенческие факторы, и занимают более высокие позиции в выдаче.
Дополнительная информация:
Сервис W3C — проверка страниц на ошибки кода
Обновлено 11.02.2017 20:07
Установка драйвера для 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 Pocket
Драйвер Windows для программатора AVR Pocket – тот же, что используется программатором Adafruit USBTiny. Перейдите на страницу Adafruit и нажмите на ссылку для подписанного драйвера USBtinyISP, созданного с помощью libusb v1.12. Это позволит вам загрузить zip-файл, содержащий два файла installer.exe: один для 32-разрядных систем, второй для 64-разрядных. Дважды кликните по тому, что подходит для вашего компьютера с ОС Windows, и драйвер будет установлен.
Только после установки правильного драйвера Windows вы можете в первый раз подключить программатор AVR Pocket к компьютеру. Вам понадобится кабель USB-A на miniUSB-B. Когда вы подключитесь, загорится синий светодиод PWR и красный светодиод Stat1; два синих светодиода могут также загореться и/или замигать. Windows попытается найти драйвер, при необходимости, вы должны указать Windows расположение правильного драйвера. После правильной установки программатор AVR Pocket появится в диспетчере устройств в устройствах libusb-winXX как «USBtiny»; он не будет перечисляться как COM-порт. Смотрите скриншот ниже:
Программатор AVR Pocket в диспетчере устройств Windows
Atmel Studio 7
Как и многие фирмы-разработчики микроконтроллеров, Atmel имеет собственную интегрированную среду разработки (IDE), которая работает с их аппаратными предложениями: Atmel Studio 7. Хотя это не единственный способ программирования микроконтроллеров Atmel, но это наиболее полнофункциональный способ для Windows 7, 8 и 10 (и для 32-х, и для 64-х разрядных вервий); к сожалению, она не может использоваться с операционными системами Linux и Mac.
Количество опций в Atmel Studio 7 может показаться для нового пользователя огромным. Таким образом, поэтапный подход, представленный в данной статье, значительно упростит процесс знакомства. Начните с загрузки и установки IDE на ваш компьютер. Руководство пользователя Studio 7 и большое количество дополнительной информации также доступны для загрузки.
В Studio 7 включена поддержка нескольких аппаратных программаторов, но точный выбор зависит от того, какой микроконтроллер Atmel вы собираетесь использовать. На скриншоте ниже справа перечислены программаторы, поддерживающие ATmega328P.
Программаторы, поддерживающие ATmega328P
Как вы можете видеть, программатор AVR Pocket отсутствует в списке. Однако его всё еще можно использовать с Studio 7 с помощью программного обеспечения под названием AVRDude.
AVRDude
AVRDude – это утилита командной строки, которая используется для скачивания и загрузки данных с микроконтроллеров Atmel. Существуют версии, доступные и на Linux, и на Windows. На момент написания статьи последняя доступная версия – 6.3; ее можно скачать здесь. Пользователи Windows должны скачать avrdude-6.3-mingw32-zip (нажатие на ссылку запустит скачивание zip-файла!), распаковать файлы и установить AVRDude
Обратите внимание, что установка программы в корневой каталог диска необязательна, но упростит ее использование с Atmel Studio 7. Если доступна версия, более новая, чем 6.3, то вы можете установить ее по своему усмотрению
Руководство пользователя AVRDude доступно здесь.
Чтобы проверить правильность установки и работы AVRDude, выполните следующие действия:
- нажмите кнопку «Пуск» Windows;
- в поле поиска введите cmd и нажмите Enter. Откроется окно командной строки DOS;
- в командной строке перейдите в каталог, в котором установили AVRDude;
- введите и нажмите Enter. Если всё хорошо, AVRDude вернет список поддерживаемых устройств Atmel.
Смотрите скриншот ниже для примера процедуры
Обратите внимание, что скриншот был усечен и отображает только часть списка поддерживаемых устройств Atmel
Список поддерживаемых устройств
Как установить 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. Убедитесь, что стоит галочка перед закрытием окна установки.
Какие бывают микроконтроллеры Atmel
Начнем с самого популярного, для освоения микроконтроллеров в целом, – Atmel AVR. Его можно разделить на два направления:
- 8-битные микроконтроллеры.
- 32-битные микроконтроллеры.
Среди простых проектов для любителей электроники особую популярность снискала именно 8-битная часть семейства. Есть хорошая справочная литература «Микроконтроллеры AVR семейства classic фирмы Atmel», в которой описана вся архитектура, назначение отдельных узлов, регистров и прочего. Не стоит беспокоиться, что она посвящена уже устаревшему семейству AVR Classic – в наши дни оно вытеснено контроллерами Attiny и Atmega, хотя самая маленькая и быстрая модель – AT90S2313 выпускается и по сей день, слегка в модернизированном виде – Attiny 2313.
Современные семейства программно и функционально совместимы с более старыми, а переход с Classic на Mega и Tiny требует минимальных трудозатрат и изменений программного кода. Среди семейства особенную популярность заслужил микроконтроллер с маркировкой Atmega 328p, применяемый во многих популярных платах Arduino. Почти все они имеют небольшое количество энергонезависимой памяти с ограниченным числом циклов записи (до 100 000) – EEPROM.
Такая память нужна не для текущих вычислений, потому что быстро закончится её ресурс, а для хранения данных в долгосрочной перспективе. Энергонезависимость EEPROM памяти обеспечивает сохранность всей информации после обесточивания микроконтроллера.
Семейство Atmel Smart базируется на архитектуре ARM. Компания правообладатель ARM свободно продает лицензии на разработку контроллеров со своей архитектурой разным производителям, что ускоряет распространение и популяризацию первых. Стоит отметить яркого представителя – микроконтроллер AT91SAM3X8E, является сердцем Arduino DUE, 32-бита. Это позволяет очень легко начать знакомство с такой архитектурой и разработку устройств энтузиастам электроники. Atmel ARM по характеристикам превосходит большинство микроконтроллеров Atmel AVR
Семейство Atmel 8051 – основано на по-настоящему легендарной архитектуре. Intel 8051 является одним из первых массовых микроконтроллеров с широчайшей сферой применения. Позволяет проектировать высокопрецизионные устройства с огромным быстродействием, практически сравнимым с быстродействием схем на логике. В линейке есть микроконтроллеры, работающие на частотах в 100 МГц, при этом выполняющие 100 миллионов операций в секунду, а это отличные показатели для этой архитектуры. Вы можете добиться быстродействия в долях микросекунд.
Установка WinAVR в Atmel Studio
1. В пункте меню “Tools (Инструменты)” выберите “External Tools (Внешние инструменты)”.
2. У вас откроется окно, где вы должны будете ввести имя вашего инструментального средства.
3. В пункте “Title (название)” введите имя вашего внешнего инструментального средства. Можно выбрать любое имя, но в рассматриваемом примере мы выбрали имя “USBasp”. Поставьте галочку в пункте ”Use Output Window” и снимите галочку с пункта “Prompt for arguments” как показано на нижеприведенном рисунке.
4. Теперь ведите “Command”. Там будет необходимо указать путь к “avrdude.exe” – его вы можете найти в папке где установлена WinAvr. Просто найдите “WinAVR-20100110” на диске “C” вашего компьютера – куда вы устанавливали WinAvr.
5. Введите аргументы. Это самый важный шаг в этой последовательности действий поскольку от них будет во многом зависеть корректность работы приложения. Поскольку в рассматриваемом нами случае мы используем внешние инструментальные средства, то можно ввести следующие аргументы:
6. Больше аргументов можно найти по этой ссылке.
7. Введите аргументы в поле для ввода аргументов. Оставьте поле “Initial directory (Начальный директорий)” без изменений.
8. После заполнения всех полей нажмите “Apply” и затем “Ok”.
В результате этих шагов вы сможете использовать внешние инструментальные средства чтобы загружать программы в микроконтроллер. Проверим это с помощью тестового проекта (программы) “blink.c”. Файл main.c вы можете найти в конце этой статьи. Теперь скопируйте main.c в Atmel studio.
WinAVR
Мощная среда разработки с открытым исходным кодом, созданная с целью написания программ для микроконтроллеров серии AVR от компании Atmel.
WinAVR состоит из GNU GCC компилятора, поддерживающего языки C, C+ и Objective-C, обеспечивая полный цикл разработки для AVR/AVR32 и дополнительных инструментов, каждый из которых выполняет определенную задачу, помогая написанию программного обеспечения для микроконтроллеров. Наиболее важные из них: • Programmers Notepad – текстовый редактор для создания программ; • AVR-LibC – библиотека микроконтроллеров AVR; • AVRDUDE – утилита, предназначенная для программирования микросхем и использующая SPI-интерфейс; • GNU Debugger (GDB) – отладчик с командной строкой; • Insight – отладчик с графическим интерфейсом; • Simulavr – симулятор микроконтроллеров AVR с поддержкой отладчика GDB; • SRecord – целый набор утилит для работы с загрузочными файлам EPROM разных форматов.
Работать с WinAVR очень просто, в возникающих вопросах помогает разобраться полный набор документации. Программа создает компактный, довольно приличный код, по синтаксису напоминающий классический язык С. Среди недостатков – отсутствие настройки аппаратуры AVR с помощью исходного кода и интерфейса с другими устройствами. WinAVR может объединяться с фирменным программным обеспечением микроконтроллеров Atmel Studio. Вместе эти пакеты позволяют проводить разработку и интуитивную отладку программ, поддерживая все возможности чипов Atmel.
Программное обеспечение выпущено под лицензией GNU и распространяется абсолютно бесплатно. Каждый пользователь может изменить или доработать программу по своему усмотрению. Кроме этого существует портативная версия пакета, не требующая установки, для хранения на внешнем носителе информации. Адресная строка места инсталляции WinAVR не должна содержать пробелы и кириллические символы. После установки программы появляется целая коллекция ярлыков, запускающая различные утилиты пакета. Основным из них является «Programmers Notepad». Инструкция и примеры лежат в папке WinAVR\doc\avr-libc. Разработчик программного комплекса – Eric B. Weddington. Его сайт http://winavr.sourceforge.net/ содержит всю необходимую информацию по WinAVR. В настоящее время дальнейшее развитие программы была приостановлено в связи с тем, что Эрик работает над Atmel Studio, являющейся прямым продолжением WinAVR.
Язык интерфейса WinAVR английский и русификатора к нему нет.
Программа поддерживает все 32-битные операционные системы Windows. Существует версия для работы в Linux-системах.
Распространение программы: Freeware (бесплатная)
Источник
Регистры процессора
Имеется 32 8-битных регистра общего назначения, R0 – R31. Все арифметические и логические операции работают с этими регистрами; только инструкции загрузки и хранения обращаются к ОЗУ.
Ограниченное количество инструкций работает с 16-битными парами регистров. Регистр с младшим номером пары содержит младшие значащие биты и должен быть четным. Последние три пары регистров используются как регистры-указатели для адресации памяти. Они известны как X (R27: R26), Y (R29: R28) и Z (R31: R30). Режимы адресации постинкремент и прединкремент поддерживаются всеми тремя. Y и Z также поддерживают шестибитное положительное смещение.
Команды, которые разрешают немедленное значение, ограничены регистрами R16 – R31 (8-битные операции) или парами регистров R25: R24 – R31: R30 (16-битные операции ADIW и SBIW). Некоторые варианты операции MUL ограничены восемью регистрами, с R16 по R23.
Регистры специального назначения
Помимо этих 32 регистров общего назначения, ЦП имеет несколько регистров специального назначения:
- ПК: 16- или 22-битный счетчик программ
- SP: 8- или 16-битный указатель стека
- SREG: 8-битный регистр состояния
- RAMPX, RAMPY, RAMPZ, RAMPD и EIND: 8-битные сегментные регистры, которые добавляются к 16-битным адресам для формирования 24-битных адресов; доступен только в частях с большими адресными пространствами.
Биты состояния
Биты регистра состояния:
- C Флаг переноски . Это флаг заимствования при вычитании. В и инструкциях не не изменить флаг переноса, так что они могут быть использованы для перебора многобайтных арифметических операций.
- Z нулевой флаг . Устанавливается в 1, когда арифметический результат равен нулю.
- N Отрицательный флаг . Устанавливается в копию самого старшего бита арифметического результата.
- V Флаг переполнения . Устанавливается при переполнении дополнения до двух.
- S Знак флага. Уникальный для AVR, это всегда N⊕V, и это верный признак сравнения.
- H Флаг полупереноса . Это внутренний перенос из дополнений и используется для поддержки арифметики BCD .
- T Битовая копия. Этот бит используется в специальных инструкциях по загрузке и хранению битов.
- I Флаг прерывания . Устанавливается, когда разрешены прерывания.
Atmel START
Atmel START представляет собой онлайн-инструмент для конфигурирования и настройки проектов встраиваемого программного обеспечения при помощи графического интерфейса. Atmel START основан на последнем поколении Advanced Software Framework и дает возможность разработчику выбирать и настраивать программные компоненты, драйверы и промежуточное ПО, а также подбирать примеры проектов, специально адаптированных под потребности создаваемого решения. При работе в Atmel START пользователь может просматривать зависимости между программными компонентами, предотвращая тем самым конфликты и аппаратные ограничения. В случае возникновения конфликта Atmel START автоматически предложит решения, подходящие для данной конкретной конфигурации.
Начиная работу с Atmel START, пользователь может создать новый проект или начать работу с уже существующим примером. После завершения конфигурирования программного обеспечения пользователь может загрузить сгенерированный проект и открыть его в IDE, установленной на персональном компьютере, например, Microchip Studio 7, IAR Embedded Workbench, Keil µVision (Рисунок 9).
Рисунок 9. | Процесс работы с онлайн-инструментом Atmel START. |
Atmel START предоставляет пользователю следующие преимущества:
- Дает возможность найти и протестировать примеры для своего решения;
- Позволяет сконфигурировать микроконтроллер, настроить драйверы и промежуточное ПО;
- Позволяет настроить параметры таймеров и тактирование;
- Дает возможность подготовить проект для работы на современной IDE;
- И многое другое.
Отдельно следует отметить TrustZone Manager – графический интерфейс для настройки параметров безопасной (защищенной) зоны, также интегрированный в Atmel START.
Технология Arm TrustZone обеспечивает аппаратное разделение так называемых защищенных и незащищенных зон. Данное разделение позволяет обезопасить критически важные функции или конфиденциальную информацию, хранящуюся в защищенной зоне, от доступа из компонентов, расположенных вовне. Технология TrustZone, в частности, доступна при работе с микроконтроллерами SAM L11.
Среда программирования
Итак, осталось последнее — среда программирования. Есть множество различных программных продуктов, в которых можно писать программки, но нужно выбрать подходящую для себя. Для тех кто знает программирование на среднем уровне подойдёт программа Atmel Studio. Для начинающих лучше будет использовать программу CodeVision AVR версии 1.24.
Она простая в использовании, но имеет один минус — английский интерфейс. Но в интернете есть много книжек где идёт описание на русском, к тому же очень понятное. Итак, начнем с простого. Напишем простейшую программу для управления светодиодом, подключенном к одному из вывода микроконтроллера.
В меню File выбираем команду New. С помощью этой команды мы создадим наш будущий проект. После выбора этой команды откроется диалоговое окно Create New File. В этом окне нужно выбрать тип файла, который мы хотим создать. Нужно выбрать Source. Тогда в программе появится окно редактора в котором можно писать программу. Назовём этот файл LED. И пишем простую программку:
#include //библиотека для работы с микроконтроллером Аtiny2313 #include // библиотека задержки void main(void) { // главная функция, в которой пишется сама программа DDRB=0b11111111; // настройка порта В что б он отправлял информацию на выход while(1){ // создаём цикл, что б наша прога работала по кругу PORTB=0b0000001; // выставляем, чтоб 0-й бит порта В отправлял 1 на выход ножки delay_ms(600); //задаём задержку PORTB=0b00000000; //выставляем что б на выводы порта В подавался на выход 0 delay_ms(1000); //задаём задержку
После написания программы нужно будет сохранить файл. После этого в меню File выбираем команду:
New → Create New File → Project
Программа предложит нам воспользоваться Code Wizard AVR. Пока что не используйте его. После этого откроется чистое окно и предложит сохранить Ваш проект.
Сохраните его в какое-то место, где сами захотите. Далее меню Project выберете пункт Configure. Там выберете свой файл, в котором Вы писали свою программу и нажмите Add.
После этого действия в Ваш проект буден включён файл с программой. После этого сохраните весь проект.
Далее из программного кода нужно создать HEX-файл, который уже непосредственно загружается в память микроконтроллера. Для этого в меню Project выберете команду Make. Программа проверит Ваш код на наличие ошибок, если их не будет, то в меню Project выберете команду Compile.
После этого ваша программа будет находиться в файле LED.hex в месте, которое вы задали, во время сохранения проекта. Затем с помощью многих программ заливаем файл LED.hex на контроллер, подключаем светодиод ножкой «+» к выводу микроконтроллера, для которого мы писали программу, а « — » к общей земле и подаём питание к нашему контроллеру.
Если вы всё правильно сделали, то светодиод будет мигать.