Макетирование и программирование atmega328p и attiny45 в atmel studio 7

Содержание

Установка драйвера для 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 будет успешно установлен.

Interesting tutorials

How to make an app with Android Studio

Studio:
Step 1
Download and install Android Studio … Microsoft Visual Studio. However,&nbsp …

How to set up OBS Studio

OBS Studio is … up OBS Studio so that … Launch OBS Studio on … up OBS Studio using this …

How to Convert STY to SMF with Awave Studio

… styles.
Awave Studio 11.0 ( … need to download the …
Conclusion
Awave Studio 11.0 …

How to make a QR code

… QR-Code Studio. Here’s what … .
QR-Code Studio Main Screen … QR-Code Studio works flawlessly …

How to record your screen on Mac

… can.
Camtasia Studio — Shareware …
Camtasia Studio
Camtasia offers … Camtasia Studio puts …

How to make birthday cards

… Hallmark Card Studio, Fantasy CardMaker … use the Download button from … you to download and …

How to convert DivX to 3GP with ABC 3GP Converter

… ;ABC Media Studio, as it … need to download the following …

Interesting tutorials

How to make an app with Android Studio

… compatible with Windows, macOS, … with Android Studio:
Step … Microsoft Visual Studio. However …

How to set up OBS Studio

… compatible with Windows, Mac, … Studio on your Windows … this Windows application. …

How to Convert STY to SMF with Awave Studio

… styles.
Awave Studio 11.0 (Shareware …
Conclusion
Awave Studio 11.0 (Shareware …

How to remove the write protection from a USB drive

… drive in Windows Explorer, right … ;the Windows Registry
… then «DWORD (32bit) value.» Name …

How to install custom themes on Windows 10

32bit and 64-bit versions of Windows … to bypass Windows‘ theme … to the Windows -> Resources …

How to convert MOV to AVI with Freemake Video Converter

… targeted towards Windows systems … associated with Windows Media Player … on both Windows and …

How to make a QR code

… .
QR-Code Studio Main Screen … QR-Code Studio works flawlessly … is: which Windows tool you …

Собираем всё вместе

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

Теперь следуйте следующим инструкциям:

  1. Запустите Atmel Studio 7.
  2. В стартовом окне слева нажмите New Project. Откроется окно нового проекта.
    Стартовое окно Atmel Studio 7
  3. В окне нового проекта нажмите GCC C Executable Project, назовите проект New Blink, как показано выше, и нажмите OK. Откроется окно выбора устройства Device Selection.
    Окно выбора устройства Device Selection
  4. В окне выбора устройства выберите AVR устройство, которое вы используете: ATmega328P или ATtiny45, как показано ниже. Нажмите OK. Будет создан новый проект, и будет открыто окно проекта New Blink.
    Окно проекта New Blink
  5. Нажмите на меню Tools, выберите External Tools…, и нажмите кнопку Add.
  6. В поле Title введите название инструмента, которой создаете; хорошо, если название описывает устройство. Например, вы можете ввести комбинацию названия программатора и названия устройства.
  7. В поле Comand введите путь к месту, куда установили AVRDude, плюс команду для запуска AVRDude.
  8. В поле Arguments введите одну из двух следующих строк, в зависимости от AVR контроллера, который используете.
    Для ATmega328P введите:

    Для ATtiny45 введите:

  9. В поле Initial directory введите путь к месту, куда установили AVRDude.
  10. Убедитесь, что поставлена галочка Use Output window, а в двух других чекбоксах галочки не стоят. Состояние окна должно быть похоже на скриншот ниже, но с учетом AVR контроллера, который вы используете.
    Окно добавления внешнего инструмента
  11. Нажмите Apply, а затем OK. Окно внешних инструментов должно закрыться.
  12. Скопируйте код программы, приведенный выше.
  13. Перейдите к окну New Blink.c в окне Atmel Studio 7 и вставьте в него код, приведенный выше.
    Код программы
  14. Если в правом верхнем углу Atmel Studio 7 не открыто окно менеджера проекта Solution Explorer, нажмите на выпадающее меню View и нажмите Solution Explorer. В правом верхнем углу должно появиться окно Solution Explorer.
  15. Кликните правой кнопкой на main.c и выберите «переименовать». Переименуйте файл main.c в New Blink.c.
  16. Нажмите на меню File и нажмите Save All.
  17. Нажмите на меню Build и нажмите Build Solution (собрать проект).
  18. Нажмите на меню Tools (инструменты) и нажмите на название инструмента, созданного в шагах с 5 по 11. Скомпилированный код New Blink должен будет быть загруже в AVR контроллер на вашей макетной плате, а светодиод LED1 должен начать мигать: ½ секунды включен, ½ секунды выключен, 60 раз в минуту.

Установка драйвера для 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 будет успешно установлен.

Не устанавливается Atmel Studio 7

Поражает криворукость программистов в Atmel. Напортачить в установщике крайне сложно, я бы сказал, нужно приложить парадоксальное количество ума, чтобы так облажаться. В моём случае, при попытке установить Atmel Studio произошло следующее. Я скачал установщик, запустил, выбрал практически всё, что было выбрано по умолчанию (по умолчанию нет только галочки согласия установить это кривое убожество). Он установил Visual Studio и всё, что к нему прилагалось, кроме своего комплекта ПО. Даже папку не создал в том месте куда предложил установиться. При попытке удалить стандартными методами запускается установка, которая выводит следующее:

По факту удалить нельзя. Запуск в режиме repair приводит к тому же эффекту, меня оповещают о том, что версия и так новая.

В общем, складывается ощущение, что с либерализацией отношений к ЛГБТ сообществу в Atmel экстренно наняли партию людей именно данной направленности. После Studio пятого релиза разработкой этого программного продукта занимаются исключительно ЛГБТ сообщество.

• Перейти в архив

404 Not Found

Тогда в свойствах компоновщика в SRAM segment добавляем: «.MySram=0x100», «.data=0x10a» (смещение 0x800000 тут добавлять не надо). И у всех своих переменных прописываем

И получается такая непонятность: во-первых, внутри секций порядок неочевидный. Во-вторых, секции могут перекрываться, но ошибки компиляции не возникает. В-третьих, я ещё не читал про malloc. В-четвёртых, надо ещё разобраться, что с секцией .bss.

Можно заводить свою секцию на каждую переменную. А можно завести структуру. Внутри структуры всё понятно. Но за размером всё равно придётся следить руками.

Выводы: получать адрес статической переменной из *.map-файла научились. А вот задавать свой адрес сложнее.

Актуальная версия – Atmel studio 7

Среду разработки кардинально использовал Visual Studio Isolated Shell 2015; с одной стороны, это решение не поддерживается на Windows XP, с другой – эти меры были предприняты для улучшения как внешнего вида программы, так и функционального.

Пожалуй, самым знаменательным стало добавление поддержки Arduino в Atmel studio 7. Это значит, что вы можете перейти от набора простейших скетчей к использованию всех функций C, отладки, симулятора МК и прочим функциям. Совмещение Arduino и Atmel studio 7 дало новый виток в развитии этой простой обучающей платформы.

Изучение Atmel studio с Arduino даст возможность перейти к полному и продуктивному освоению и более глубокому знакомству с сердцем ардуины – микроконтроллером Atmega.

Дополнительно с сайта Atmel можно скачать пакет для работы и подключения LCD. В качестве примера для освоения можно использовать LCD 1602, в интернете по нему много уроков, а разработчику на дисплее доступно 16 символов и 2 строки.

Programs for query ″atmel studio for windows 7 32 bit″

USB 8051 PROGRAMMER

Download

4 on 11 votes

ATMEL 89 series 8051 USB Programmer is a full featured low cost programmer for most common 8051 microcontrollers.

ATMEL 89 series … Windows 98, Windows ME, Windows 2000, Windows XP , Windows

PonyProg2000

Download

3.7 on 86 votes

PonyProg is an open source serial device programmer. Its purpose is reading and writing every serial device.

… EEPROM, the Atmel AVR and …

CodeVisionAVR

Download

3.8 on 65 votes

CodeVisionAVR is an Integrated Development Environment for the 8-bit Atmel AVR and XMEGA Microcontrollers.

… for the 8-bit Atmel AVR and … , such as bit, bool, char … , long, 64-bit long, float.

AVR Jungo USB

Download

3.6 on 19 votes

This installer will fix USB connection issues with AVR Studio 4.

Studio 4.18 SP3 and improve Windows … 7 64-bit stability …

WinCupl

Download

3.7 on 70 votes

Atmel-WinCUPL is a complete and easy to use design software suitable for all Atmel SPLDs and CPLDs.

Atmel-WinCUPL is a … for all Atmel SPLDs and … WinXP platforms. Atmel-WinCUPL supports …

EmbestIDE

Download

2 on 1 vote

Embest IDE for ARM is a complete solution for embedded arm development.

… provide a modern 32bit Windows-based C Integrated … examples for Atmel/Samsung/Cirrus …

mikroC PRO for AVR

Download

3.9 on 24 votes

mikroC PRO for AVR is an ANSI C compiler for Atmel AVR microcontrollers.

… C compiler for Atmel AVR microcontrollers …

AVR Simulator IDE

Download

3.9 on 14 votes

AVR Simulator IDE is a powerful application that supplies Atmel microcontroller users with user-friendly graphical …

… supplies Atmel microcontroller … for Windows with … from the Atmel 8-bit megaAVR and …

IAR Embedded Workbench Evaluation version for Atmel AVR

Download

4 on 2 votes

IAR Embedded Workbench with its optimizing C and C compiler is an integrated development environment for building …

… based on Atmel AVR. It … to various Atmel emulators and …

ATMEL ISP

Download

3.7 on 7 votes

The ISP flash application will update your firmware. This is an ISP module for ATMEL Microcontroller that support ISP such AT89SXXXX, AVR families etc.

… module for ATMEL Microcontroller that …

Programs for query ″avr studio 7″

AVRProjectIDE

Download

5 on 1 vote

AVR Studio Beta is out and it’s super awesome, go try it out.

… by AVR Studio are different from AVR Studio … (and older), and the AVR Studio

AVR LCD Visualizer

Download

3.3 on 3 votes

AVR LCD Visualizer helps create and modify your own LCD displays with the editor, debug and visualize inside AVR Studio 4.

AVR LCD … visualize inside AVR Studio 4. Run- … Minimum requirement: AVR Studio 4.07. Remove …

AVR Toolchain

Download

3.4 on 7 votes

AVR Toolchain is a set of programs used to create applications for AVR microcontrollers.

… for AVR microcontrollers. … AVR Toolchain is included with AVR Studio … the AVR Toolchain …

KamPROG for AVR

Download

3.8 on 4 votes

KamPROG for AVR is development/production programmer supporting most ISP microcontrollers (AVR family) from Atmel.

KamPROG for AVR is … ISP microcontrollers (AVR family) from … and Atmel AVR Studio as well …

Robokits AVR USB Programmer

Download

3.5 on 2 votes

Robokits AVR USB Programmer is an application that can program AVR devices in STK500V2(HID Mode) and STK500(CDC Mode) modes.

Robokits AVR USB … can program AVR devices in … compatible with AVR Studio, AVRDUDE, …

AVR Jungo USB

Download

3.6 on 19 votes

This installer will fix USB connection issues with AVR Studio 4.

… issues with AVR Studio 4.18 SP3 …

NIBObee Library

Download

3 on 1 vote

NIBObee Library is a set of C/C APIs for the Nibo 1, NIBO 2 and NIBObee robots.

… libraries for AVR Studio and Arduino …

AVR BAttery Studio

Download

4.3 on 3 votes

Atmel AVR Battery Studio is a software that monitors state of battery and sets parameters using ATAVRSB200/201/202.

Atmel AVR Battery Studio is a software … using Atmel AVR micro-controllers …

AVR QTouch Studio

Download

The Atmel QTouch Studio is a PC application providing real-time visualization of the QTouch debug data stream sent …

… Atmel QTouch Studio is a PC … contains QTouch Studio only and … 1 and Visual Studio Shell.

BASCOM-AVR

Download

3.6 on 97 votes

BASCOM-AVR is the original Windows BASIC COMPILER for the AVR family. It is designed to run on W95/W98/NT/W2000/XP and Vista

… in any AVR compiler, … with all AVR microprocessors … from BDMICRO.
o AVR robot controller …

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

Компоновка и загрузка программного кода в Atmega16

1. Сохраните файл main.c.

2. Подсоедините светодиод к контакту PORTA0 микроконтроллера Atmega16 как было показано на вышеприведенном рисунке.

3. Выберите пункт меню “Build” и затем выберите “Build Blink”.

4. Если программа не содержит ошибок, то вы увидите сообщение как на представленном рисунке.

5. Теперь выберите пункт меню “Tools” и выберите в ней созданные внешние инструментальные средства. В нашем случае это будет “USBasp”. Кликните по нему.

6. Если после этого вы увидите сообщение об успешности операции (как показано на рисунке ниже), то значит вы успешно загрузили программу в микроконтроллер. Если вы получили сообщение об ошибке, то проверьте правильность выполнения всех предыдущих шагов, а также проверьте исправность соединительных проводов между USBASP и Atmega16.

7. Вы успешно загрузили тестовую программу с мигающим светодиодом в микроконтроллер используя USBASP v2.0 and Atmel Studio 7.0 и можете увидеть как мигает светодиод в собранной схеме. Теперь вы можете аналогичным образом загружать в микроконтроллер любые другие программы.

Таймеры

0 = BOTTOM Clear Timer on Compare Match (CTC) Mode

Задача: вызывать прерывание с определённой частотой. Тут всё просто: прерывание срабатывает каждые OCRn + 1 тиков таймера. Единственная проблема — изменение OCRn без выключения таймера: если новое значение близко к BOTTOM, то можно его перескочить, и тогда придётся ждать переполнения.

Предделитель

У некоторых таймеров собственные предделители, у некоторых один общий. В последнем случае каждый таймер может иметь свой коэффициент деления. Общность предделителя выражается в том, что его сброс повлияет на всех, кто его использует. Ну, и источник частоты, естественно, один на всех.

Благодаря увеличенной производительности и легкости использования, Atmel Studio 7 значительно ускоряет разработку приложений на основе микроконтроллеров Atmel |SMART и AVR и подходит как профессиональным инженерам, так и радиолюбителям

Выполняя роль связующего звена от начальной идеи до выводы на рынок конечного продукта, и дополняя собой среду Studio 7, платформа Atmel START является графическим веб-интерфейсом, позволяющим разработчикам осуществить конфигурацию программных компонентов и драйверов, компиляцию исходного кода, воспользоваться демонстрационными приложениями и базовыми проектами, поднимая свою продуктивность на новый уровень

Компания Atmel Corporation, ведущий поставщик микроконтроллеров и сенсорных решений, объявила о выпуске Atmel Studio 7 — полнофункциональной, бесплатной интегрированной среды проектирования (IDE) систем на базе микроконтроллеров семейств Atmel | SMART и AVR. Помимо этого, компания анонсировала платформу Atmel START — новый, интуитивно понятный графический интерфейс для разработки и конфигурации встраиваемых приложений, позволяющий разработчикам создавать уникальные программные решения.

Постоянный рост сложности и системных требований встраиваемых приложений вынуждает инженеров все чаще прибегать к использованию интегрированных сред проектирования с целью получить более интеллектуальный, производительный и удобный инструмент разработки. Построенная на основе новейшей версии Microsoft Visual Studio Shell, среда Atmel Studio 7 значительно сокращает общее время проектирования, позволяя существенно увеличить эффективность разработки и отладки, за счет простого в использовании пользовательского интерфейса, и более оперативно реагировать на современные требования рынка потребительской и промышленной электроники. Atmel Studio 7 также предлагает мощный инструмент визуализации данных о работе и энергопотреблении системы в реальном масштабе времени для лучшей оптимизации производительности и мощности потребления.

Для сообщества радиолюбителей и изобретателей, работающих с платформой Arduino, Studio 7 предлагает возможность портировать свои скетчи, созданные в среде Arduino, в C++ проекты и легко переносить их в профессиональную среду Studio 7. Компания Atmel продолжает поддерживать независимых разработчиков на всем пути — от идеи до вывода на рынок конечного продукта.

Со стремительным развитием рынка Интернета вещей (IoT) и появлением миллиардов устройств, ожидаемых к 2020 году, качественное, высокоинтегрированное выстраиваемое ПО становится ключевым элементом, позволяющим создавать надежные коммуникационные решения, основанные на современных стандартах связи и безопасности. Анонсированная Atmel платформа Atmel START — это онлайн инструмент, помогающий разработчикам легко и быстро интегрировать базовые программные блоки и сконцентрироваться на создании собственных приложений.

Графический веб-интерфейс Atmel START позволяет пользователю выбрать нужные программные компоненты и сконфигурировать их для работы с обширным семейством отладочных плат Atmel или с собственной системой. Разработчики могут создавать программные платформы, включающие низкоуровневые драйверы, промежуточное ПО, операционную систему реального времени (RTOS), высокоуровневые стеки сетевых протоколов и многое другое. Помимо этого, Atmel START поддерживает графическую конфигурацию таблицы назначения выводов и системы тактирования. Сконфигурируемый программный пакет может быть загружен в любую поддерживаемую среду разработки, включая Atmel Studio 7, IAR Embedded Workbench и Keil µVision. Atmel START — это исключительно интернет приложение, не требующее предварительной установки, а доступный для скачивания контент всегда будет последней версии.

С чего начать освоение?

Начинать стоит, конечно же, с покупки программатора; самый бюджетный – это – USBASP. Программатор USBASP не поддерживается в Atmel Studio 7.

Скачивайте драйвера на программатор и программу AVRdude, а чтобы заставить это все работать вместе, можно через командную строку воспользоваться командой:

«avrdude -c usbasp -p atmega32 -U flash:w:название файла с прошивкой.hex -U lfuse:w:0x6a:m -U hfuse:w:0xff:m»

и подключить его поддержку, создав профиль в atmel studio 7 (title – external tools), а в пункт Arguments ввести «-c usbasp -p atmega32 -U flash:w:$(TargetName).hex» и так для каждого типа используемых вами микроконтроллеров.

Только таким образом можно связать студио и программатор USBASP. Будьте внимательны при перепрошивке – вы можете повредить сигнатуру микроконтроллера, а восстановить её можно будет только 12 В (высоковольтным) программатором.

Atmel Studio

Недавно вышла новая Atmel Studio версии 7.0. Как и все предыдущие IDE от Atmel, она не лишена ряда существенных недостатков:

  1. Отсутствие кроссплатформенности. Только Windows, причем, не ниже Windows 7
  2. Отсутствие поддержки популярных программаторов, JTAG-ов и т.д, только фирменные атмеловские инструменты
  3. Не умеет обновляться — каждую версию приходится ставить отдельно. Причем, если удалить предыдущую установленную версию, то может сломаться последняя.

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

Для сборки проекта студия использует утилиту make и генерит makefile. В принципе, makefile можно писать руками, но это
не совсем удобно и очень громоздко. Попытки использования разных известные аналогов make (cmake, scons и прочее) желаемого результата также не дали.
Хотелось своего велосипеда — чего-то предельно простого, гибкого и удобного. В качестве основы был выбран Python, т.к. его легко использовать не
только в качестве языка для написания системы сборки, но и в качестве удобного языка для написания сценариев компиляции.

Во-первых, аппаратное обеспечение

ATmega328P – это 28-контактный микроконтроллер от Atmel, один из линейки AVR. Вероятно, он наиболее известен, как наиболее часто используемый микроконтроллер в отладочных платах Arduino, но AT328P способен на гораздо большее, чем то, насколько он используется в Arduino. Если вы хотите увидеть некоторые доказательства этого утверждения, посмотрите на 660-страничное техническое описание.

ATtiny45 – 8-выводный микроконтроллер, который может считаться «младшим братом» ATmega328P. Он обладает многими из тех же функций, но у него не так много контактов ввода/вывода.

Для программирования ATmega328P и ATtiny45 используется последовательный периферийный интерфейс SPI; это трехпроводная (плюс общий провод) шина, состоящая из сигналов «Выход ведущего, вход ведомого» (Master Out, Slave In – MOSI), «Вход ведущего, выход ведомого» (Master In, Slave Out – MISO) и «Тактовый сигнал» (Serial Clock – SCK). Тактовый сигнал генерируется ведущим устройством (мастером) и используется для обеспечения синхронной связи между ведущим и ведомым (или ведомыми); поэтому SPI является «синхронной» шиной связи.

Схемы программирования

Схемы программирования показаны ниже

Обратите внимание, что резистор R2 и LED1 не требуются для программирования, но включены в схемы для тестирования, что будет описано ниже

Схема программирования ATmega328P с помощью AVR Pocket программатораСхема программирования ATtiny45 с помощью AVR Pocket программатора

Выбор программатора

Доступно несколько программаторов, работающих с ATmega328P и ATtiny45; Atmel-ICE находится в верхней части списка, является прекрасным программатором и будет рассмотрен в следующей статье. Пока что у нас есть менее дорогостоящие варианты, и скупым автором статьи использовался программатор Sparkfun AVR Pocket Programmer. Если вы предпочитаете что-то другое, не стесняйтесь выбирать тот, который соответствует вашим предпочтениям и вашему кошельку. Просто убедитесь, что он использует SPI интерфейс, как описано выше, и будьте готовы внести соответствующие изменения в информацию в этой статье.

ВНИМАНИЕ! Обязательно загрузите и установите на компьютер соответствующий драйвер для AVR Pocket Programmer, прежде чем подключать программатор в первый раз. Если Windows будет разрешено установить неправильный драйвер, то это будет сложно исправить

Инструкции для получения драйвера AVR Pocket Programmer приведены ниже.

AVR Pocket Programmer поставляется с шлейфовым кабелем, который должен быть подключен к микроконтроллеру Atmel. Он оснащен тремя разъемами: разъем 2×5 (мама), который вставляется в штырьковый разъем на AVR Pocket Programmer, еще один разъем 2×5 (мама) ниже на кабеле примерно через 23 см (в данной статье не используется), плюс разъем 2×3 (мама) на другом конце кабеля. Распиновка разъемов показана ниже.

Распиновка разъемов на кабеле программатора AVR Pocket Programmer

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

На следующих фотографиях показаны сборки схем программирования ATmega328P и ATtiny45 на беспаечных макетных платах. Шесть коротких перемычек используются для подключения необходимых проводов от разъема 2×3 (мама) к соответствующим контактам микроконтроллера на макете

Обратите внимание, что цвета проводов на фотографиях соответствуют обозначениям на схемах

Схема программирования ATmega328P с помощью AVR Pocket программатораСхема программирования ATtiny45 с помощью AVR Pocket программатора

Список комплектующих

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

Перечень элементов
Обозначение элемента Описание
U1 Микросхема, ATmega328P-PU, флеш 32 КБ, DIP-28, 1,8–5,5 В
U1 Микросхема, ATtiny45-PU, флеш 4 КБ, DIP-8, 2,7–5,5 В
R1 Резистор, 10 кОм, 0,25 Вт
R2 Резистор, 470 Ом, 0,25 Вт
LED1 Светодиод, T1 3/4, желтый
C1 Конденсатор керамический, 0,1 мкФ, 50 В
нет Программатор, AVR Pocket, PGM-09825
нет Макетная плата, беспаечная, 400 контактов

Прерывания

При входе в прерывание аппаратно сбрасывается флаг разрешения прерываний (cli), при выходе (reti) — устанавливается (sei). Таким образом, вложенных прерываний самих по себе нет.

Если же они нужны (и есть уверенность, что это безопасно), можно вызвать sei(). А в компиляторе avr-gcc проще прописать атрибут ISR_NOBLOCK (если это безопасно с самого начала, без дополнительных действий программиста).

Для атомарной работы с многобайтовыми переменными (в том числе некоторыми регистрами) можно использовать cli/sei, если оптимизация отключена. А с оптимизацией в avr-gcc для этого есть util/atomic.h. Дополнительно переменная должна быть volatile, а the standard level of the compiler (option —std=) is set to either c99 or gnu99.

Заключение

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

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