Atmel studio как прошить микроконтроллер

от admin

AVR Programming

ATMEL’s AVR Series of Microcontrollers is a very good option for those who wish to use the microcontrollers to their true potential, exploiting every bit of functionality they can offer. Learning them requires you to sometimes indulge into the internal aspects of microcontrollers. Registers, Binary Numbers all play a major role in operating these microcontrollers in their hardcore form. They form the heart of the Arduino Microcontrollers you might have learned earlier.

The AVR Series has many microcontrollers which vary in their processing capacity(Speed) and Memory. Throughout this tutorial we shall consider ATMega16 as our sample.

(ATMega32: 8-bit AVR Processor, 16 kbytes flash memory)

Contents:

  • 1: Installation
    • 1.1: Download Atmel Studio
    • 1.2: Install Drivers
    • 1.3: Install on Linux
    • 2.1: Pins
    • 2.2: Registers
    • 2.3: Using the Datasheet
    • 3.1: Controlling Output
    • 3.2: Reading Input
    • 4.1: Boolean Algebra
    • 4.2: Bit Shifting
    • 4.3: Bit Masking
    • 5.1: Pre-scaling
    • 5.2: Registers for controlling timers/counters
    • 5.3: LED Blink Code
    • 6.1: Timer triggered interrupt
    • 9.1: Anatomy
    • 9.2: Controlling the LCD

    Installation

    In order to write the code for AVR, and to burn it to the microcontroller, we use the software provided by ATMEL: ATMEL Studio.

    We also need something that connects the microcontroller and the computer (by USB). This was very simple in case of Arduino because among its peripherals, there was an in-built USB slot. Here we will use a “Development Board”.

    In the picture above, observe 2 main things:

    1. The Programmer, which is plugged in the computer USB slot: It is used for the development board-to-USB Slot interface.
    2. The Development Board: Provides an interface to connect pins with Jumpers to further circuitry and with the input of the programmer.

    After this let us move on to installation of ATMEL Studio.

    Download Atmel Studio
    Install Drivers

    After installing Atmel Studio 7, we need to install Drivers for the programmer. Refer to the following videos for the procedure.

    And for configuring the USBasp tool: Microcontroller Installing Atmel Studio

    Atmel Studio has the environment for writing and compiling the code for AVR Microcontrollers, but in order to program the microcontroller with a programmer (the chip with an LED at the USB slot in the above picture), we need to configure the software with a new tool. For this configuration, we must set up avrdude (Video 1).

    Now, for configuring the USBasp tool we need to set certain things since it is different than the normal USBs which we use at the ports. For this we need to configure the new external programming tool as specified in Video 2.

    These two steps are very important and it will not be possible to write the code to the AVR Microcontroller properly without getting these configurations right. Refer the given links properly and if you have any doubts you can ask on the Electronics Club Gitter Rooms.

    Installation for Linux

    You need to install three packages, gcc-avr , avr-libc and avrdude for compiling and burning to AVR microcontrollers

    On ubuntu you can run the command

    After that we have prepared a Makefile to compile and burn AVR code on linux. You can download the Makefile here.

    Copy this Makefile into your project folder and open it in a text editor. You need to edit the first line of the file to be PROJECT = <filename> . For eg. if the name of your main C file is test.c , your first line should be

    to compile the code and generate HEX file. Then run

    to burn HEX file to AVR after connecting USBasp.

    Basics of AVR

    Confronting the Pin Diagram of ATMega16 at this stage can be a little dangerous for your enthusiasm, so please proceed slowly.

    Apart from the Power pins, all the pins on AVR can be configured as Input or Output. These pins are present in four groups, or “Ports”, namely PortA, PortB, PortC, PortD. Every pin is given a name, like PA0,PB5 etc associated with its port. Besides every pin, its special function is mentioned in brackets. For example, all pins of PORTA can be used for ADC purpose apart from regular digital input/output. In this way each pin has a special function. So, we have 8×4=32 normal I/O pins, and 8 different pins meant for power supply, ADC voltage reference, reset etc.

    Pinout for ATmega16

    image

    Registers

    The microcontrollers(uC) use Registers to store the data describing the state(or mode) of certain operations(in most of our cases). For example, there is a register to store the “state/mode” of pins in every port, whether they are input or output pins. The Timer/Counter Control Registers(TCCR1A/B) store information regarding timers and counters(certain parameters etc). Similarly, there are many registers and they store bytes that control most of the functions of the microcontroller, so, the High/Low states of bits of those registers enable/disable interrupts, ADC etc.

    The first register we will see is the one I just described. It is called the Data Direction Register(DDR). Hence DDRA is the register(8-bits of data) showing Input/output states of the 8 pins in port A.

    Using the Datasheet

    Though very intimidating to look at, the datasheet can provide you with just the right information if you know how to use it, and if you know that you have to use ‘IT’.

    It is not at all necessary to read the complete datasheet, but there are portions in it which are at our level of understanding and there is also useful information which we will certainly need on our way.

    It contains the code for every register, i.e. which bit of the register stores data for what function and lot of other information which we will use.

    So keep the datasheet handy!

    Controlling Input and Output

    As stated earlier, one of the registers called Data Direction Register is used to control whether the pin acts as an Input pin or an Output pin.

    Thus we have four 8-bit registers:

    DDRA/B/C/D for controlling 8 pins each, of Ports A/B/C/D.

    The convention for setting the input/output bit is:

    1 — Output pin i.e. Controlled by Microcontroller

    0 — Input pin i.e. Controlled by external circuit

    Controlling the Output

    Now, for the Output Pins, in order to set them to the value we wish, we use another register PORTA/B/C/D. Thus PORTA is a 8-bit register, which stores the 8 bits corresponding to each pin of Port A(effectively only the Output pins) for whether to give it a HIGH or LOW state.

    Let us convey all this through a code snippet.

    Note: The order of pins is 76543210, i.e. Most Significant Bit corresponds to pin 7

    This tells the microcontroller that:

    • Line 1: Pins 0,2,3 of Port A should be declared as output pins and rest as input.
    • Line 2: Pins 0,2 should should give HIGH(Vin) and 3 should give LOW(0) output.

    The bits corresponding to input pins of present in PORTA don’t matter, that is PORTA is an Output only Register

    Reading the input

    For the input values, there is a similar Input only Register, PINA/B/C/D.

    The values of inputs are stored onto this 8-bit register, and in the code, we use this register with the comparison operator.

    Checks if the inputs on pins 7,6,5,4 and 1 are High,High,Low,Low and High respectively.

    Bitwise Operations

    Bit masking refers to accessing specific bits in a data and modifying them according to our needs. Bit operations are a way to implement masking.

    Bitwise Operators available in C are: AND ( & ), OR ( | ), XOR ( ^ ) and NOT (

    ). There are also bit shift operators viz. Bit left shift ( << ) and Bit right shift ( >> ) operators.

    Bitwise operators are the ones that are defined on 2 bits and hold for large binary number through bit-by-bit binary operations and defined on 2 bits.

    Boolean Algebra

    Works like regular logical AND(A.B). So, for PORTA = 0b01101111 = 0x6f and PORTB = 0b10011001 = 0x99 ,

    ) work in the same way. They are same as their logical functions for 2 bit operations, and for larger numbers(many bits) they are executed bit by bit using binary model for each bit pair(as shown in bitwise AND example).

    Bit Shifting

    As the name suggests these operation are used to shift the position of a bit by some particular places. If you use << then the bits are shifted to the left, and if you use >> then the bits are shifted to the right and the bits are shifted by the number of places return besides these symbols.

    Binary Left Shift Operator

    This shifts left operand value to left by number of bits specified in the right operand. In other words, Binary left shift moves bits to a specified number of places to the left. The least significant bit is appended with 0 and most significant bit is dropped. The value of the variable gets multiplied by 2 for every left shift that occurs.

    Then PORTA << 3 = 01111000;

    Binary Right Shift Operator

    This shifts left operand value to right by number of bits specified by the right operand. The most significant bit is appended with 0 and least significant bit is dropped.The value of the variable gets divided by 2 for every right shift that occurs.

    Usage in AVR

    Bit Operations are used very often, wherever the logical operations are required.

    Bit Shifting is very useful in setting only specific bits of registers without worrying about everything else on the register.

    If you wanted to turn on the lowest bit on PORTA, then you can simply write a 1 to PORTA because a 1, in 8 bit binary, is really 00000001.

    However, if you wanted to turn on the second lowest bit on PORTA, then an easy way to do it is with a bit shift:

    Means the same as

    Bit Masking

    Bits in registers are given names. We will discuss TCCR1B later here, but for the time being assume that a register has a bit named CS10. The usefulness comes out of the fact that you can set the CS10 bit High just by executing:

    That is, “CS10” acts as its numeric location on the register! Bit Masking is used to carry out operations on only specific bits from a number of many bits.

    Instead of TCCR1B = 1<<CS10 | 1<<CS11 , It is better to write: TCCR1B |= 1<<CS10 | 1<<CS11 . It lets the other bits stay as they are(OR with 0) and only sets the selected bits high(from low).

    Timers and Counters

    The operations in any microcontroller are “sequential” at heart, and so they all rely on clock-pulses. Hence the microcontrollers have internal clocks that keep ticking at the given rate, irrespective of anything else happening around them. They can also use external clocks for this same purpose.

    The timer and counter functions in the microcontroller simply count in sync with the microcontroller clock. But the counter has limitations due to its bit-capacity, i.e. a 8-bit counter can count only up to 256(or 0 to 255). So generally there is a 16-bit counter(65536 counts). The counts are stored in the most important Timer/Counter Register, TCNT1 (16-bit, by default).

    Pre-scaling

    Now compare the maximum count of a counter and the clock-ticks of a microcontroller. Standard AVR Microcontrollers generally operate at 1 Mhz, that is 1,000,000 ticks per second, which is much more than 65536!

    Hence, we need “prescaling” to increase the time-range of one cycle of the counter(they start all over again after attaining the max value) to a time comparable to our physical time domain(seconds). Prescaling is a way for the counter to skip some clock ticks.

    AVR Microcontrollers allow prescaling of: 8, 64, 256 and 1024.

    So, by setting a “Prescaler” of 8, the counter counts only once for every 8 ticks of the microcontroller clock, i.e. it runs at F_CPU/8 ( F_CPU = Frequency of uC).

    Registers for controlling timers/counters

    The register TCCR1A and TCCR1B (Timer/Counter Control Registers) are used for this. Please refer the datasheet for the description of the registers.

    image

    As you can see, all the 8-bits in the register are named.

    (No need of knowing the function of all the 8 bits at this stage, the relevant ones will be discussed next)

    Let us understand this through our first code on ATMEL Studio.

    First code: LED Blink

    Using the concepts learnt till now, we will write a program to toggle an LED 7 times a second.

    We will proceed in a way in which you will have to, when you are doing it yourself. That is, we will use the Datasheet for reference instead of direct steps given to you.

    How to choose the correct prescaler?

    The uC ticks 1,000,000 times a second. We want to toggle the LED 7 times a second. So, we want the LED to toggle on every 142857th clock pulse. Now, since 65536 (highest value of count) is smaller than 142857, we want to set a prescaler such that “the highest count comes well after the time when the original uC clock reaches 142857” (Read this line twice :p). 8, 64 are suitable prescalers. Let us take 64.

    Okay. I got the prescaler. Now how do I set that?

    Search “prescaler” and after some experience you will know where to look, among the numerous results you get for “prescaler” :p.

    image

    In the relevant table you will find the bit combination of CS12 / 11 / 10 required to set the prescaler we want. In our case: CS12 / 11 / 10 = 0 / 1 / 1 respectively. So we set the bits accordingly, using concepts of bit shifting and bit masking as discussed earlier.

    (I told you about TCCR1A / B earlier, but ideally you first discover CS12 / 11 / 10 and then find out that these bits are present on TCCR1B , going by the datasheet approach :p)

    When to toggle the LED?

    On every 142857th pulse of the uC clock. That is, when TCNT1 is at the 142857/64 = 2232 th count (for prescaler=64).

    After this background have a look at the actual code required for this.

    Theory of Interrupts

    Interrupts are events that have the highest priority for the microcontroller(it pays immediate attention to them). That is, when an interrupt event occurs, the microcontroller Pauses its current task and attends to the interrupt. This is done by executing a routine called Interrupt Service Routine(ISR). At the end of the ISR, the microcontroller returns to the task it had paused and continues normally. So ISR or Interrupt Handler is the piece of code that must be executed when an interrupt is triggered.

    Now, for enabling the execution of interrupts, we need to give appropriate values to certain bits, in certain specific registers. One compulsory bit is the Global Interrupt Enable bit. That is, when an interrupt flag is raised, the global interrupt bit must be High, in order to forward that interrupt request. So it is like an And-filter: “Request an interrupt if that specific interrupt flag is raised AND the global interrupt is enabled.”

    A “flag” is like the abstract-physical representation of a bit for an event :p

    Apart from the global interrupt enable bit, we have interrupt enabling bits for all the ways in which interrupts can be triggered. They can be triggered through the following ways:

    • ADC
    • Timer matching a given count
    • Pin being High/Low
    • Serial Communication

    image

    Timer triggered interrupt

    Now let us apply our theory in writing a code for triggering an interrupt when the timer reaches a certain count.

    We still need to know about the specific bits to be set for triggering an interrupt by comparison with timer. This is done by Clear Timer on Compare Mode.

    image

    See option 4. This mode clears(resets) the timer on matching with a given value.

    We also need to enable the time-match-triggered interrupt.

    image

    We will set OCIE1A bit High, thus enabling it. So, when the timer reaches the value specified(stored) in OCR1A , timer will be cleared (“Clear on Compare”) and the Output Compare Match Interrupt Enable becomes high (Interrupt flag raised).

    Once the and interrupt is requested(global interrupt must be enabled), uC will go into the ISR, so we will specify the code for the ISR also.

    Analogue-Digital Conversion

    Microcontrollers are capable of detecting binary signals i.e is the button pressed or not?.

    It interprets five volts as 1 and zero volts as 0. The world however is not so simple and likes to use shades of gray. What if the signal is 2.72V? A 5V analog sensor may output 0.01V or 4.99V or anything inbetween. Microcontrollers have a device built into them that allows us to convert these voltages into values that we can use in a program to make a decision.

    The ADC reports a ratiometric value. This means that if the ADC is a 10 bit ADC then it assumes 5V is 1023 and anything less than 5V will be a ratio between 5V and 1023. Hence we can see analog to digital conversions are dependant on the the reference voltage(which is by default the system voltage).

    In microcontrollers we have the flexibility of setting the reference analog voltage for the ADC.There’s a pin available on the microcontroller called as AREF which can be set to desired values and you can have your customized ADC. For example in a 10 bit ADC if the input voltage is equal to AREF then the ADC output is 1023. If the input voltage is less than AREF voltage then the ADC output is somewhere between 0 — 1023.

    As you know, we need to set certain bits in some registers in order to use ADC.

    • ADC Multiplexer Selection Register ( ADMUX ): For selecting the reference voltage and the input channel.
    • ADC Control and Status Register A ( ADCSRA ): As the name says it has the status of ADC and is also used for controlling it.
    • ADC Data Register ( ADCL and ADCH ): The final result of conversion is here.

    Here’s the logic flow for algorithm for using ADC:

    • Enable global interrupts
    • Selecting the correct clock frequency for maximum resolution ( 50 – 200 KHz)
    • Selecting the input pin
    • Set the ADC Interrupt Enable
    • Enabling the ADC
    • Start the ADC conversion

    The descriptions of these registers, and the relevant tables for deciding the bit combinations as given in the datasheet are shown below.

    Based on the tables that follow, which bits are set to what value for achieving what setting is mentioned in the code comments.

    Программирование микроконтроллеров AVR с помощью программатора USBASP и Atmel Studio 7.0

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

    USBASP и Atmel Studio 7.0 - инструменты для программирования микроконтроллеров AVR

    В данной статье будут рассмотрены следующие вопросы:

    1. Установка драйвера USBASP.
    2. Скачивание и установка Atmel Studio.
    3. Установка WinAVR для Atmel Studio.
    4. Установка микроконтроллера Atmega16 с кварцевым генератором и одним светодиодом.
    5. Создание и загрузка программного кода в Atmega16.

    Рассмотрим подробно все эти вопросы. Установку драйвера для программатора USBASP будем рассматривать на примере операционной системы Windows10 – но все сказанное в этом разделе будет справедливо и для других версий Windows.

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

    USBASP в диспетчере устройств

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

    Меню обновления драйвера для USBASP

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

    Выбор способа обновления драйвера для USBasp

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

    Выбор папки с драйвером для USBASP

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

    Драйвер для USBASP успешно установлен

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

    Произошла ошибка при установке драйвера для USBASP

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

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

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

    Выбор расширенных настроек

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

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

    Выбор устранения проблем

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

    Выбор расширенных настроек при устранении проблем

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

    Список расширенных опций перезагрузки

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

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

    Отключение цифровой подписи драйвера при перезагрузке

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

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

    Скачивание и установка Atmel Studio

    Выполните следующую последовательность действий:

    2. Также вам необходимо скачать приложение WinAVR чтобы иметь возможность загружать программы в микроконтроллер AVR с помощью USBASP.

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

    3. Подсоедините USBASP v2.0 к USB порту вашего компьютера и подождите пока он правильно определится.

    4. Откройте Atmel Studio.

    5. Выберите пункт меню “File”, в нем “New” и выберите “project”.

    Создание нового проекта в Atmel Studio

    6. Теперь назовите ваш проект, выберите место расположения проекта и выберите компилятор “GCC C Executable Project”. Кликните на “Ok” и продолжайте.

    Выбор компилятора в Atmel Studio

    7. После этого вам будет необходимо выбрать ваше устройство для программирования. В нашем случае это будет микроконтроллер Atmega16A. Если вы будете программировать другие микроконтроллеры, например, Atmega8, Atmega32, то для их программирования также можно использовать программатор USBASP.

    Выбор типа микроконтроллера в Atmel Studio

    8. После этого для вас будет создан файл main.c, где вы можете писать ваш программный код.

    Но после создания проекта финальный шаг, который вам необходимо выполнить – это установить внешние инструментальные средства (WinAVR).

    Установка WinAVR в Atmel Studio

    1. В пункте меню “Tools (Инструменты)” выберите “External Tools (Внешние инструменты)”.

    Выбор внешних инструментов в Atmel Studio

    2. У вас откроется окно, где вы должны будете ввести имя вашего инструментального средства.

    3. В пункте “Title (название)” введите имя вашего внешнего инструментального средства. Можно выбрать любое имя, но в рассматриваемом примере мы выбрали имя “USBasp”. Поставьте галочку в пункте ”Use Output Window” и снимите галочку с пункта “Prompt for arguments” как показано на нижеприведенном рисунке.

    4. Теперь ведите “Command”. Там будет необходимо указать путь к “avrdude.exe” – его вы можете найти в папке где установлена WinAvr. Просто найдите “WinAVR-20100110” на диске “C” вашего компьютера – куда вы устанавливали WinAvr.

    5. Введите аргументы. Это самый важный шаг в этой последовательности действий поскольку от них будет во многом зависеть корректность работы приложения. Поскольку в рассматриваемом нами случае мы используем внешние инструментальные средства, то можно ввести следующие аргументы:

    <avrdude -c usbasp -p atmega8 -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:i>

    6. Больше аргументов можно найти по этой ссылке.

    7. Введите аргументы в поле для ввода аргументов. Оставьте поле “Initial directory (Начальный директорий)” без изменений.

    Окно для ввода аргументов

    8. После заполнения всех полей нажмите “Apply” и затем “Ok”.

    В результате этих шагов вы сможете использовать внешние инструментальные средства чтобы загружать программы в микроконтроллер. Проверим это с помощью тестового проекта (программы) “blink.c”. Файл main.c вы можете найти в конце этой статьи. Теперь скопируйте main.c в Atmel studio.

    Схема устройства с мигающим светодиодом для Atmega16

    Схема устройства, которую необходимо собрать, приведена на следующем рисунке. Соедините кварцевый генератор и светодиод с микроконтроллером Atmega16.

    Схема конструкции с мигающим светодиодом

    Внешний вид макетной платы в этом случае будет выглядеть следующим образом:

    Внешний вид макетной платы с собранной конструкцией

    Также вы должны соединить микроконтроллер и USBASP как показано на следующей схеме:

    Схема соединений USBASP и микроконтроллера AVR ATmega16

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

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

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

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

    Компоновка проекта в Atmel Studio

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

    Успешная компиляция проекта в Atmel Studio

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

    Выбор USBASP в Atmel Studio

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

    Загрузка программы в микроконтроллер AVR с помощью программатора USBASP и Atmel Studio 7.0

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

    Atmel studio как прошить микроконтроллер

    Как прошить микроконтроллер AVR? Именно этим мы и займемся в этой статье.

    Что такое “прошить” и “прошивка”?

    Давайте первым делом определимся, что означает слово “прошить”? Думаю, вы часто слышали такие словосочетания, как “прошить телефон”, “слетела прошивка”, “кривая прошивка” и тд. А что такое “прошивка”?

    Прошивка – это грубо говоря, операционная система для маленьких устройств, таких как мобильный телефон, MP3-плеер, цифровой фотоаппарат и тд. То есть это небольшая программка, которая управляет этим устройством. Также часто можно услышать и такое:” У меня “глючит” сотовый телефон, его надо срочно “перепрошить“.

    В данном случае это означает, что надо заново установить операционную систему на мобильный телефон. Значит, “прошить МК” означает закачать во внутрь него программу, которая бы управляла этим МК, а МК уже управлял бы каким-нибудь устройством. То есть по идее, МК – это посредник между программой и каким-либо устройством, которым надо управлять ��

    Оборудование для прошивки МК

    Итак, что нам потребуется, чтобы прошить МК?

    1. Cам микроконтроллер.
    2. Компьютер, с заранее установленным программным обеспечением (ПО).
    3. Программатор.
    4. Несколько джамперов.
    5. Макетная плата. Я бы порекомендовал сразу купить набор для начинающего AVRщика. Этот набор питается от USB.
    6. Прямые руки, растущие из нужного места.

    Мы с вами договорились использовать МК Atiny2313 в корпусе DIP-20:

    Подготовка МК к прошивке

    В прошлых статьях мы с вами рассматривали программатор Громова. Главный его минус в том, что нам требуется COM-порт, который с трудом можно сейчас найти в компьютере, а разъем USB зато есть на каждом компьютере. Поэтому, было принято решение о покупке самого дешевого USB программатора для AVR МК. Называется такой программатор USBASP и выглядит он примерно вот так

    Если хорошенько порыться на Али, то можно найти очень сладкую цену на такой программатор. Например, здесь . Может быть найдете даже дешевле. Если будете брать у другого продавца, то внимательно смотрите, чтобы его надписи и радиоэлементы располагались именно так, как у меня на фото. В среднем его цена на момент написания статьи около 120 рублей. Такой программатор в корпусе обойдется чуток подороже.

    Вот его вид сзади:

    Его рабочий разъем выглядит примерно вот так:

    С программатором также в придачу идет шлейф

    который одним концом цепляется к рабочему разъему программатора:

    Другой конец шлейфа мы будем цеплять к МК.

    Если внимательно присмотреться, то можно узнать, какой вывод в разъеме является первым. Стрелка укажет на первый вывод разъема:

    После того, как узнали, где находится первый вывод, можно без труда определить остальные выводы:

    Дальше берем макетную плату с установленным на ней МК Tiny2313:

    Итак, наша задача – соединить выводы МК с выводами программатора.

    Для этого в разъем шлейфа втыкаем провода в гнезда MOSI, RST, SCK, MISO, VTG (VCC), GND. GND я взял 10 гнездо, можно и другое, где написано GND. Итого 6 проводков-джамперов:

    Далее качаем даташит на наш МК. В данном случае у нас Tiny2313. Ищем в даташите лист с его цоколевкой:

    VTG (он же VCC) цепляем к 20 ножке МК

    SCK(UCSK) цепляем на 19 ножку МК

    MISO цепляем к 18 ножке МК

    MOSI на 17 ножку

    GND на 10 ножку

    RST на первую ножку

    Должно получиться как-то вот так:

    После первого включения программатора в разъем USB ПК, Диспетчер устройств нам выдаст новое устройство:

    Не пугаемся, качаем вот этот архивчик, распаковываем его и указываем путь на него при установке “дров”. Когда “дровишки” на программатор установятся, то мы увидим что-то типа этого:

    Все ОК, программатор готов к бою.

    В этом же архиве находим папку “avrdudeprog”, открываем ее, находим там исполняемый файл AVRDUDEPROG и запускаем. Это и есть программная оболочка для прошивки МК с помощью нашего программатора.

    Она выглядит вот так. Не забываем выбрать наш МК в списке.

    Для того, чтобы прошить МК, нам надо выбрать файл с расширением HEX. Итак, вот мой файлик. Первым делом я нажимаю кнопочку “Стереть все”. А вдруг кто-то уже использовал МК и там залита уже какая-нибудь программа? Поэтому, перед прошивкой стираем память МК. Если “стирка” прошла удачно, то программка выдаст нам примерно такое сообщение:

    Прошиваем МК AVR

    Нажимаем на кнопку выбора файла:

    А теперь выбираем наш файл “Lesson 1.hex” . Это и есть наша программа.

    А теперь жмем кнопочку “Программирование”

    После того, как все прошло удачно, высветится что-то типа этого:

    Но это еще не все! Как вы помните, в прошлой статье мы выставили частоту кварца 8 Мегагерц. Чтобы не было неразберихи, нам эту частоту теперь надо поделить на 8. Для этого существует фьюз, который делит тактовую частоту именно на 8. Ставим маркер на “прямые фьюзы”, потом ставим галочку на CKDIV.

    После того, как сделали эти два шага, нажимаем на кнопку “Программирование”:

    Проверяем МК в железе

    Теперь собираем нашу схемку, о которой говорилось еще в прошлой статье:

    и наслаждаемся результатом:

    Прошиваем микроконтроллер AVR.

    Как и чем прошить avr микроконтроллер.

    1)Прежде всего для прошивки микроконтроллеров Atmel AVR необходим программатор, например для прошивки через USB-порт такой — USB ASP Программатор микроконтроллеров ATmega AVR

    2)Теперь нужно установить драйвера для вышеприведенного программатора

    Для этого устанавливаем программу eXtreme Burner — AVR, в процессе установки она автоматически установит правильные драйвера

    Скачать можно здесь eXtremeBurnerAV_LampCORE_ru

    3) Дальше требуется соединить микроконтроллер с программатором , быстрее и проще это сделать с Беспаечная макетная плата MB102 и с проводами-радугой с типом наконечников Male to Male или если программатор без шлейфа с наконечниками Female to Male

    Соединять в соответствии с картинкой , приведенной ниже(Это для микроконтроллеров ATMEGA8, у других мк смотрите соответствующую им распиновку!):

    Если беспаечной платы и проводов-радуги нет — то можно напрямую припаяться к выводам разъема программатора и к ножкам микроконтроллера для прошивки.

    Обратите внимание, что контакт 22 — GND находится напротив по другую сторону мс контакта 7 — VCC, исходя из этого не нужно отсчитывать ножки микросхемы, а просто соединить контакт напротив по другую сторону микросхемы соответственно.

    Соединение без макетной платы и с помощью обычных проводов

    Смотрим распиновку разъема программатора:

    Паяем к микроконтроллеру в соответствии с распиновкой.

    Удобнее паять таким паяльником — Паяльник GJ 907.

    Или можно просто запихать в разъем шлейфа обычные провода, но при таком соединении возможен плохой контакт или его отсутствие.

    Запускаем eXtreme Burner AVR , во вкладке Chip выбираем свой микроконтроллер(у нас ATmega8):

    (Если при запуске у вас выдается сообщение — «не удается продолжить выполнение кода поскольку система не обнаружила libusb0.dll» то необходимо скачать и установить эти драйвера

    вручную, запустив файл InstallDriver.exe )

    Затем выбираем вкладку Read и нажимаем Flash(считать прошивку(на многих коммерческих устройствах устанавливают бит защиты от считывания))

    (Если выдается ошибка Power On Failed

    Cannot Communicate with Target Chip! значит , что какая или какие-либо ножки микроконтроллера не контактируют с программатором, логично проверить наличие контактов и исправить их отсутствие)

    Flash — это прошивка

    EEPROM — энергонезависимая память

    Fuse Bits and Lock Bits — это настройка фьюзов, защиты, параметров микроконтроллера(например работать микроконтроллеру от внутренней частоты или от внешнего кварцевого резонатора, откуда брать опорное напряжение для АЦП и т.д.)

    Если драйвера установлены, подсоединено всё правильно то имеем такой результат:

    Мы считывали еще не прошитый микроконтроллер ATMEGA8, поэтому у нас будут считаны только нули(FFFF):

    Попробуем прошить микроконтроллер

    Прошивка микроконтроллера представляется в виде формата .HEX

    Она мигает светодиодом на любом выводе D микроконтроллера ATmega, так как в прошивке задана установка всех портов D как выход.

    Запускаем eXtreme Burner

    Нажимаем Open и в файлах выбираем прошивку в формате HEX

    Дальше должно быть так:

    Для запуска прошивки выбираем вкладку Write(Запись) и нажимаем Flash, должен пойти процесс прошивки

    Прошивка успешно завершилась:

    Теперь считаем её

    Жмем Read — Flash, получаем:

    Как видно нули заменились другими цифрами и видно оставшееся пустое мето в памяти для прошивки.

    Теперь отсоединим микроконтроллер от программатора и проверим работу прошивки на практике.

    Собираем все по такой схеме:

    Собрали, всё должно работать(светодиод мигает 2 раза в секунду):

    Если светодиод не горит или наоборот горит постоянно — проверьте надежность контактов.

    Внимание! Не вешайте напрямую нагрузку на ножки микросхемы с потреблением больше 25 мА!

    Не подавайте на микросхему больше 5.5 Вольт.

    Цикл перезаписи прошивки не бесконечен — есть определенный ресурс.Не стоит микроконтроллер использовать и перезаписывать как USB-флешку.

    Прошиваем микроконтроллер AVR.

    Как и чем прошить avr микроконтроллер.

    1)Прежде всего для прошивки микроконтроллеров Atmel AVR необходим программатор, например для прошивки через USB-порт такой — USB ASP Программатор микроконтроллеров ATmega AVR

    2)Теперь нужно установить драйвера для вышеприведенного программатора

    Для этого устанавливаем программу eXtreme Burner — AVR, в процессе установки она автоматически установит правильные драйвера

    Скачать можно здесь eXtremeBurnerAV_LampCORE_ru

    3) Дальше требуется соединить микроконтроллер с программатором , быстрее и проще это сделать с Беспаечная макетная плата MB102 и с проводами-радугой с типом наконечников Male to Male или если программатор без шлейфа с наконечниками Female to Male

    Соединять в соответствии с картинкой , приведенной ниже(Это для микроконтроллеров ATMEGA8, у других мк смотрите соответствующую им распиновку!):

    Если беспаечной платы и проводов-радуги нет — то можно напрямую припаяться к выводам разъема программатора и к ножкам микроконтроллера для прошивки.

    Обратите внимание, что контакт 22 — GND находится напротив по другую сторону мс контакта 7 — VCC, исходя из этого не нужно отсчитывать ножки микросхемы, а просто соединить контакт напротив по другую сторону микросхемы соответственно.

    Соединение без макетной платы и с помощью обычных проводов

    Смотрим распиновку разъема программатора:

    Паяем к микроконтроллеру в соответствии с распиновкой.

    Удобнее паять таким паяльником — Паяльник GJ 907.

    Или можно просто запихать в разъем шлейфа обычные провода, но при таком соединении возможен плохой контакт или его отсутствие.

    Запускаем eXtreme Burner AVR , во вкладке Chip выбираем свой микроконтроллер(у нас ATmega8):

    (Если при запуске у вас выдается сообщение — «не удается продолжить выполнение кода поскольку система не обнаружила libusb0.dll» то необходимо скачать и установить эти драйвера

    вручную, запустив файл InstallDriver.exe )

    Затем выбираем вкладку Read и нажимаем Flash(считать прошивку(на многих коммерческих устройствах устанавливают бит защиты от считывания))

    (Если выдается ошибка Power On Failed

    Cannot Communicate with Target Chip! значит , что какая или какие-либо ножки микроконтроллера не контактируют с программатором, логично проверить наличие контактов и исправить их отсутствие)

    Flash — это прошивка

    EEPROM — энергонезависимая память

    Fuse Bits and Lock Bits — это настройка фьюзов, защиты, параметров микроконтроллера(например работать микроконтроллеру от внутренней частоты или от внешнего кварцевого резонатора, откуда брать опорное напряжение для АЦП и т.д.)

    Если драйвера установлены, подсоединено всё правильно то имеем такой результат:

    Мы считывали еще не прошитый микроконтроллер ATMEGA8, поэтому у нас будут считаны только нули(FFFF):

    Попробуем прошить микроконтроллер

    Прошивка микроконтроллера представляется в виде формата .HEX

    Она мигает светодиодом на любом выводе D микроконтроллера ATmega, так как в прошивке задана установка всех портов D как выход.

    Запускаем eXtreme Burner

    Нажимаем Open и в файлах выбираем прошивку в формате HEX

    Дальше должно быть так:

    Для запуска прошивки выбираем вкладку Write(Запись) и нажимаем Flash, должен пойти процесс прошивки

    Прошивка успешно завершилась:

    Теперь считаем её

    Жмем Read — Flash, получаем:

    Как видно нули заменились другими цифрами и видно оставшееся пустое мето в памяти для прошивки.

    Теперь отсоединим микроконтроллер от программатора и проверим работу прошивки на практике.

    Собираем все по такой схеме:

    Собрали, всё должно работать(светодиод мигает 2 раза в секунду):

    Если светодиод не горит или наоборот горит постоянно — проверьте надежность контактов.

    Внимание! Не вешайте напрямую нагрузку на ножки микросхемы с потреблением больше 25 мА!

    Не подавайте на микросхему больше 5.5 Вольт.

    Цикл перезаписи прошивки не бесконечен — есть определенный ресурс.Не стоит микроконтроллер использовать и перезаписывать как USB-флешку.

    Программирование микроконтроллеров в AtmelStudio 6. Часть 1. Первые шаги

    Программирование микроконтроллеров в AtmelStudio 6. Часть 1. Первые шаги

    Если вы читаете эту статью, вероятно у вас возникло желание понять, как работают микроконтроллеры, и скорее всего появились вопросы:
    1. Какой микроконтроллер выбрать для работы?
    2. Какую среду разработки использовать для программирования выбранного микроконтроллера?
    3. Как прошивать контроллер, и какие дополнительные приборы и акссесуары нужны для удобной работы с ними?
    4. Какую литературу изучать?
    5. Где в интернете можно задавать вопросы и получать конкретные ответы?

    Попробуем ответить на эти вопросы.

    ↑ 1. Какой микроконтроллер выбрать для работы?

    Большой популярностью у радиолюбителей пользуются 8-битные микроконтроллеры PIC фирмы Microchip Technology и AVR фирмы Atmel, 16-битные MSP430 фирмы TI, а также 32-битные микроконтроллеры, архитектуры ARM.

    В промышленности, несколько иначе, первое место с большим отрывом занимает Renesas Electronics на втором Freescale, на третьем Samsung, затем идут Microchip и TI, далее все остальные.
    Популярность определяется ценой и доступностью, немалую роль играют наличие технической информации и стоимость программного сопровождения.

    Мы будем изучать 8-битные микроконтроллеры AVR, семейства ATMEGA 8 и 16 серии. Выбор определился, опять же доступностью, наличием множества любительских разработок, огромным количеством учебного материала. Наличием разнообразных встроенных компонентов и функциональностью этого семейства.

    ↑ 2. Какую среду разработки использовать для программирования выбранного микроконтроллера?

    Для AVR созданы разные интегрированные среды разработки (IDE, Integrated development environment).
    IDE – это система программных средств, используемая программистами для разработки программного обеспечения (ПО), в состав которой входят:
    • текстовый редактор,
    • компилятор и/или интерпретатор,
    • средства автоматизации сборки,
    • отладчик.

    Наиболее распространенные из них AVRStudio, ATmelStudio, WINAVR, CodeVision, IAR Embedded Workbench.
    Для того, чтобы писать программы, мы воспользуемся бесплатной IDE ATmelStudio версии 6 и выше.
    Скачать Atmel Studio можно с официального сайта после регистрации (регистрация абсолютно бесплатная и ни к чему не обязывает!)

    ATmelStudio позволяет создавать проекты, и писать программы как в ассемблере, так и на СИ.

    Изначально всегда стоит вопрос: какой язык программирования выбрать, чтобы писать эффективные программы?

    Отвечу просто: нужно уметь писать как минимум на двух языках ассемблере и СИ. Ассемблер просто необходим, когда нужно написать быстрые и компактные подпрограммы и макросы, различные драйверы устройств. Но, когда требуется создать объемный проект, построенный на сложных алгоритмах, без знания СИ может быть потрачено очень много времени, особенно в процессе отладки, а если возникнет желание перенести на другую платформу, например PIC18, или STM, может стать неразрешимой проблемой.
    Кроме этого, сейчас появились аппаратные вычислительные платформы Arduino, работа с которыми требует знаний языка СИ++.
    Поэтому будем писать программы как в ассемблере, так и на СИ.

    Чтобы наглядно видеть результат своей работы, не используя паяльник или макетную плату достаточно установить программу Proteus.

    ↑ 3. Как прошивать контроллер, и какие дополнительные приборы и акссесуары нужны для удобной работы с ними?

    Используем датагорский кит — программатор Project-005 «D-AVR910». Кроме этого, нужно будет приобрести макетные платы, блок питания с выходным напряжением 5 Вольт. Можно в качестве БП с малыми пульсациями использовать наш кит Project-006 «POWER FILTER», применив стабилитрон на 5 Вольт.
    Возможно, со временем мы с Игорем предложим проект для сборки отладочной платы.

    Программирование микроконтроллеров в AtmelStudio 6. Часть 1. Первые шаги

    ↑ 4. Какую литературу изучать?

    А вот, например:
    • Практическое программирование AVR на ассемблере. Ревич, 2011
    • 1000 и одна микроконтроллерная схема Вып. 1-2. Рюмик, 2010-2011
    • 10 практических устройств на МК AVR Книга 1-2. Кравченко, 2008-2009
    • Самоучитель разработчика устройств на МК AVR. Белов, 2008
    • МК AVR семейств Tiny и Atmega. Ефстифеев, 2008
    • CodeVisionAVR. Пособие для начинающих. Лебедев, 2008
    • Микропроцессорное управление устройствами, тиристоры, реле. Белов, 2008
    • Аналоговые интерфейсы МК. Стюард, Болл, 2007
    • Создаем устройства на МК AVR. Белов, 2007
    • МК AVR в радиолюбительской практике. Полный разбор ATTINY2313. Белов, 2007
    • Сетевой и межсетевой обмен данными с МК. Иди, 2007
    • МК AVR. практикум для начинающих. Хартов, 2007
    • Применение AVR Схемы, алгоритмы, программы. Баранов, 2006
    • Микроконтроллеры AVR. Вводный курс. Мортон, 2006
    • Измерение, управление и регулирование с помощью AVR. Трамперт, 2006
    • Программирование на языке С для AVR и PIC МК. Шпак, 2006
    • Конструирование устройств на МК. Белов, 2005
    • МK — это же просто, тома 1-3. Фрунзе, 2002-2003
    • Язык программирования Си, 2-е издание. Керниган, Ритчи, 2009
    • Программирование микроконтроллеров ATMEL на языке С. Прокопенко, 2012

    ↑ 5. Где в интернете можно задавать вопросы и получать конкретные ответы?

    Задавать вопросы вы можете на нашем или любом другом форуме, где так или иначе затронуты темы по микроконтроллерам. Главное на форумах правильно формулировать вопросы, чтобы четко получать ответы. Абстрактные вопросы не приветствуются, и скорее всего вместо ответа вы получите жесткую критику, или ваш вопрос останется без внимания!

    ↑ Теперь рассмотрим поближе нашего фаворита, микроконтроллер ATMEGA 8

    • 8-разрядный высокопроизводительный AVR микроконтроллер с малым потреблением
    • Прогрессивная RISC архитектура
    130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл
    32 8-разрядных рабочих регистра общего назначения
    Полностью статическая работа
    Приближающаяся к 16 MIPS (при тактовой частоте 16 МГц) производительность
    Встроенный 2-цикловый перемножитель

    • Энергонезависимая память программ и данных
    8 Кбайт внутрисистемно программируемой Flash памяти (In-System Self-Programmable Flash)
    Обеспечивает 1000 циклов стирания/записи
    Дополнительный сектор загрузочных кодов с независимыми битами блокировки
    Обеспечен режим одновременного чтения/записи (Read-While-Write)
    512 байт EEPROM
    Обеспечивает 100000 циклов стирания/записи
    1 Кбайт встроенной SRAM
    Программируемая блокировка, обеспечивающая защиту программных средств пользователя

    • Встроенная периферия
    Два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения
    Один 16-разрядный таймер/счетчик с отдельным предварительным делителем и режимами захвата и сравнения
    Счетчик реального времени с отдельным генератором
    Три канала PWM
    8-канальный аналого-цифровой преобразователь (в корпусах TQFP и MLF)
    6 каналов с 10-разрядной точностью
    2 канала с 8-разрядной точностью
    6-канальный аналого-цифровой преобразователь (в корпусе PDIP)
    4 канала с 10-разрядной точностью
    2 канала с 8-разрядной точностью
    Байт-ориентированный 2-проводный последовательный интерфейс
    Программируемый последовательный USART
    Последовательный интерфейс SPI (ведущий/ведомый)
    Программируемый сторожевой таймер с отдельным встроенным генератором
    Встроенный аналоговый компаратор

    • Специальные микроконтроллерные функции
    Сброс по подаче питания и программируемый детектор кратковременного снижения напряжения питания
    Встроенный калиброванный RC-генератор
    Внутренние и внешние источники прерываний
    Пять режимов пониженного потребления: Idle, Power-save, Power-down, Standby и снижения шумов ADC

    • Выводы I/O и корпуса
    23 программируемые линии ввода/вывода
    28-выводной корпус PDIP, 32-выводной корпус TQFP и 32-выводной корпус MLF

    • Рабочие напряжения
    2,7 — 5,5 В (ATmega8L)
    4,5 — 5,5 В (ATmega8)

    • Рабочая частота
    0 — 8 МГц (ATmega8L)
    0 — 16 МГц (ATmega8)

    отличия ATMEGA16 от 8
    • 16 Кбайт внутрисистемно программируемой Flash памяти (In-System Self-Programmable Flash)

    • Интерфейс JTAG (совместимый с IEEE 1149.1)
    Возможность сканирования периферии, соответствующая стандарту JTAG
    Расширенная поддержка встроенной отладки
    Программирование через JTAG интерфейс: Flash, EEPROM памяти, перемычек и битов блокировки

    • Четыре канала PWM / ШИМ

    • 8-канальный 10-разрядный аналого-цифровой преобразователь
    8 несимметричных каналов
    7 дифференциальных каналов (только в корпусе TQFP)
    2 дифференциальных канала с программируемым усилением в 1, 10 или 200 крат (только в корпусе TQFP)

    • Шесть режимов пониженного потребления: Idle, Power-save, Power-down, Standby, Extended Standby и снижения шумов ADC

    • 32 программируемые линии ввода/вывода

    • 40-выводной корпус PDIP и 44-выводной корпус TQFP

    ↑ AtmelStudio

    Если Вы только начинаете, то нужно скачать и установить программу AtmelStudio с официальной страницы atmel.com
    После установки программы AtmelStudio можно приступить к созданию проекта.
    Проект – это ваша программа, которую вы будете писать, отлаживать и прошивать, после компиляции, в память микроконтроллера.

    Чтобы создать проект, надо открыть программу, появиться такая заставка,

    и откроется страница создания проекта

    Чтобы создать новый проект, нужно кликнуть по «New Project…»
    В этом случае откроется новое окно, где можно выбрать язык программирования, название проекта, его месторасположение, название пакета с файлами проекта и возможность создания каталога для дальнейшего использования в других перекрестных проектах. Чтобы создать проект, где мы будем программировать в ассемблере, нужно выбрать — Assembler, после этого поменяем название проекта, его расположение, и выбираем ОК.

    Появится следующее окно

    Выбираем “megaAVR, 8-bit” и находим нужный нам микроконтроллер, мы выбрали ATmega8. В правой части заставки появляется список устройств, работающих с этим микроконтроллером, один из которых мы можем подключить. Выбираем ОК.

    Появляется страница редактора текста, которая позволяет редактировать и отлаживать программу. Пока страница чистая, указано время и дата создания и название файла проекта, имя пользователя. Есть дополнительные окно устройств ввода-вывода, окно отчетов компиляции программы. Теперь мы

    Выбираем семейство микроконтроллеров “megaAVR, 8-bit”

    Далее, наименование микроконтроллера и выбираем ОК.

    Появляется страница редактора текста. Здесь мы можем программировать в СИ.

    У нас есть возможность загрузить демонстрационные проекты для работы с платами разработки, выпускаемыми корпорацией ATMEL.
    Для этого нужно при создании проекта выбрать пункт “New Examle Project from ASF…”

    Откроется окно следующего вида:

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

    Так же есть возможность управлять проектом, для этого нужно выбрать название проекта под пунктом “Recent Projects” и кликнуть по правой клавише мыши. Появится меню из 3-х пунктов:

    Open Project – запускает проект.
    Open Containing Folder – просмотор содержимого папки проекта
    Remove From List – удаление из списка проектов. Сам проект не удаляется, и попытка создать новый проект с таким же именем выдаст ошибку. Полностью удалить проект можно в папке, где он был создан.

    Как создается новый проект и про перенос старых проектов, созданных в AVR Studio 4, можно посмотреть на видеоролике от Александра Писанца

    Читать:
    Как сделать ардуино своими руками

Похожие публикации