AVR123:Введение — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
(Шаг 3. Симуляция - моделирование работы МК.)
 
(не показано 39 промежуточных версий 4 участников)
Строка 2: Строка 2:
 
[[Категория:Микроконтроллеры]]
 
[[Категория:Микроконтроллеры]]
 
[[Категория:Цифровая электроника]]
 
[[Категория:Цифровая электроника]]
 +
Проект по переносу курса из источника [http://avr123.nm.ru avr123.nm.ru]
 +
{{InfoBlock|Что такое - электрический ток,  напряжение, закон Ома, резистор, конденсатор, индуктивность, транзистор - читайте в школьных учебниках по физике. Например в отличных интерактивных учебниках:
 +
* [[http://college.ru/physics/index.php Физика]],
 +
* [[http://college.ru/mathematics/index.php Математика]],
 +
* [[http://college.ru/modules.php?name=Practical Он-лайн лаборатория по физике]].
 +
 +
 +
Основные законы:
 +
* [[http://college.ru/physics/courses/op25part2/content/chapter1/section/paragraph8/theory.html Закон Ома]],
 +
* [[http://college.ru/physics/courses/op25part2/content/chapter1/section/paragraph9/theory.html Последовательное/параллельное соед. проводников]],
 +
* [[http://college.ru/physics/courses/op25part2/content/chapter1/section/paragraph10/theory.html Правила Кирхгофа для разветвленных цепей]],
 +
* [[http://college.ru/physics/courses/op25part2/content/chapter1/section/paragraph11/theory.html Работа и мощность тока]],
 +
* [[http://college.ru/physics/courses/op25part2/content/chapter1/section/paragraph14/theory.html NP-переход, Транзистор]]|Основы, которые надо знать!}}
 +
{{InfoBlock|Книги по электронике и AVR - [[http://lord-n.narod.ru/walla.html http://lord-n.narod.ru/walla.html]]
 +
 +
 +
При работе с иностранными текстами используйте онлайн перевод ([[http://www.Translate.ru www.Translate.ru]])!
 +
|Дополнительная информация}}
 +
 +
==Важная информация перед началом курса==
 +
===Соблюдайте технику безопасности!===
 +
Используйте средства защиты. Думайте и только потом делайте.  Всегда защищайте глаза ! Не работайте с приборами под высоким или сетевым напряжением, а если все же придется то не работайте в одиночку и одну руку всегда держите за спиной.
 +
 +
===Чайникам от Чайника!===
 +
Я постарался написать самое основное для начала применения микроконтроллеров простым языком с примерами и конечно с картинками !
 +
 +
'''Цель курса:'''  Помочь вам быстрей научиться применять микроконтроллеры AVR в ваших радио электронных устройствах.  Чтобы научиться вам придется поработать - внимательно читать и главное повторять, выполнять то, что написано.
 +
 +
===В этом курсе по МК AVR подробно рассказано и показано===
 +
* как сделать самые первые шаги, с чего начать конкретно - ШАГ за ШАГОМ
 +
* какие программы загрузить и где, как установить и как использовать
 +
* как устроен микроконтроллер, как AVR взаимодействует с внешними компонентами
 +
* как написать первую, простейшую программу для AVR и как управлять его модулями
 +
* как запустить программу в программе-симуляторе МК AVR и увидеть как она работает не покупая МК и радиодеталей, а значит без риска спалить что-то или испортить ПК
 +
* как сделать нужное вам электронное устройство, печатную плату
 +
* как загрузить программу в реальный МК
 +
* как отладить реальное устройство - т.е. найти причины не правильной работы и добиться его функционирования в соответствии с поставленной задачей.
 +
 +
== Начинаем разрабатывать программы для МК AVR ==
 +
=== Шаг 1. Скачайте всего две программы ===
 +
{{AttentionBlock|В  CVAVR 2  имена и расположение файлов создаваемых компилятором отличается от того что было в  CVAVR  и в примерах курса.<br><br>
 +
В CVAVR 2 имя файла исходного кода на Си не изменяется, а файл прошивки .hex и файл с отладочной информацией .cof получают имя как у файла проекта .prj<br>
 +
Для отладки по исходному коду на Си в симуляторах нужно использовать файл с названием:  {имя_вашего_файла_проекта_CVAVR2}.cof<br>
 +
Прошивка для МК будет назыаться:<br>
 +
{имя_вашего_файла_проекта_CVAVR2}.hex<br><br>
 +
 +
Если проект был создан мастером кода CVAVR 2 то в папке проекта появляется несколько новых папок. В папке Exe создается прошивка для МК - {имя_вашего_файла_проекта_CVAVR2}.hex<br>
 +
В папке List появляются файлы программы на ассемблере .asm и файл листинга .lst<br>
 +
Другие 2 папки Linker и Obj "чайнику" мало интересны.<br>
 +
 +
Но для VMLAB нужно что бы прошивка .hex была в папке проекта - поэтому в настройке проекта в CVAVR 2 - меню '''"Configure Project"''' в ярлыке '''"Output Directories"'''
 +
'''нужно убрать Exe''' и ниже нажать "ОК" - теперь прошивка .hex будет появляться после компиляции в папке проекта.
 +
}}
 +
 +
{{InfoBlock|Вам не нужно будет тратить деньги и время на поиски и покупку радио деталей и микроконтроллеров пока вы не убедитесь в работоспособности устройства которое вы делаете !
 +
 +
Вы не сожжете по неопытности что либо !
 +
 +
'''Не попадете в спешке, в азарте отладки устройства под высокое напряжение!'''<br>
 +
Это очень важно для начинающего электронщика '''Техника безопасности - ТБ'''!|Преимущества виртуальной разработки}}
  
Курс подробно рассказывает как сделать самые первые шаги,
 
с чего начать не вообще,  а  конкретно - ШАГ за ШАГОМ ...
 
  
* Как сделать нужное вам электронное устройство, печатную плату
 
* Как написать первую, простейшую программу для МК
 
* Как запустить эту программу в программе-симуляторе МК и увидеть как она работает не покупая МК и радиодеталей, а значит без риска спалить что-то или испортить порт вашего ПК !
 
* Как загрузить программу в реальный МК
 
* Как отладить реальное устройство - т.е. найти причины не правильной работы и добиться его функционирования в соответствии с поставленной задачей.
 
  
== Шаг 1. Скачайте всего две программы ==
 
 
# Компилятор  [http://www.hpinfotech.ro/cvavre.zip CodeVisionAVR] (2 Мб  всего)<br><small>Бесплатный DEMO до 2 кб кода, а полный CVAVR на сайте автора на сером фоне.</small>
 
# Компилятор  [http://www.hpinfotech.ro/cvavre.zip CodeVisionAVR] (2 Мб  всего)<br><small>Бесплатный DEMO до 2 кб кода, а полный CVAVR на сайте автора на сером фоне.</small>
 
# Симулятор AVR и электроники [http://www.amctools.com/download.htm VMLAB] (4,2 Мб FREE)
 
# Симулятор AVR и электроники [http://www.amctools.com/download.htm VMLAB] (4,2 Мб FREE)
 +
  
 
Теперь у вас есть качественное и удобное программное
 
Теперь у вас есть качественное и удобное программное
 
обеспечение для ПОЛНОГО цикла разработки устройств
 
обеспечение для ПОЛНОГО цикла разработки устройств
на МК (микроконтроллерах) AVR !
+
на МК (микроконтроллерах) AVR - и реальных и виртуальных.
  
 
От интерактивного помошника для создания начального кода,
 
От интерактивного помошника для создания начального кода,
скелета программы - '''инструмент бесценен для начинающего'''!
+
скелета программы - '''инструмент бесценен для начинающего'''! - это мастер CVAVR CodeWizard.
  
 
До написания и отладки полной программы с постоянным контролем её
 
До написания и отладки полной программы с постоянным контролем её
 
работы на всех этапах ее создания на компьютерной модели  нужного
 
работы на всех этапах ее создания на компьютерной модели  нужного
 
вам микроконтроллера AVR совместно с популярными электронными
 
вам микроконтроллера AVR совместно с популярными электронными
компонентами подключенными к нему виртуально.
+
компонентами подключенными к нему виртуально. А при желании и в реальном микроконтроллере в устройстве.
 +
 
 +
Компилятор CVAVR имеет  встроеный программатор    для загрузки готовой программы в реальный микроконтроллер AVR
 +
 
 +
=== Шаг 2. Попробуйте - всё ОЧЕНЬ просто ! ===
 +
Лучше один раз увидеть как работают программы-инструменты для AVR чем сто раз услышать.
 +
 
 +
Сейчас вы попробуете установленные программы в деле, возможно не все сразу понимая - не волнуйтесь, читая и выполняя курс далее, вы во всём постепенно разберётесь.
 +
{{InfoBlock|
 +
* [[http://sites.google.com/site/thvortex/vmlab/avrlog AVR Studio Stimulus/Logger]] - Создание входных и захват выходных сигналов и их сохранение при симуляции в стиле AVR Studio
 +
* [[http://sites.google.com/site/thvortex/vmlab/vcdlog Verilog VCD Logger]] - Компонент позволяет сохранять в файл данные длительной симуляции.
 +
* [[http://sites.google.com/site/thvortex/vmlab/wavlog WAV Analog Stimulus/Logger]] - Позволяет вводить в схему сигналы из звукового файла WAV и сохранять в таком же виде результат.
 +
* [[http://sites.google.com/site/thvortex/vmlab/break Break On Edge]] - Точки останова по изменению сигнала - очень мощно для симуляции.
 +
* [[http://sites.google.com/site/thvortex/vmlab/delay Digital Signal Delay]] - Цифровая пауза для сигналов - позволяет сдвигать сигнал на нужное время.
 +
* [[http://sites.google.com/site/thvortex/vmlab/comxch COM Port Exchanger]] - "Квази Уно Фантазия" теперь VMLAB может работать с ваши физическим COM портом в ПК !  Свершилось.  Раньше такое только PROTEUS мог вытворять. Но PROTEUS конечно прекрасен.
 +
* [[http://sites.google.com/site/thvortex/vmlab/led7seg LED 7-Segment Display]] - 7-сегментный индикатор с десятичной точкой - несколько. Очень популярные и недорогие средства индикации.|Благодаря [[http://sites.google.com/site/thvortex/vmlab энтузиасту программисту]] VMLAB пополняется новыми компонентами}}
 +
# Загрузите [http://avr123.nm.ru/z8/z8pwm_2.rar файлы]  к [[AVR123:Задача 8|задаче упражнению 8]]  (это всего 14 Кб) в созданную папку - '''c:\VMLAB\z8''' и распакуйте файлы архива в эту же папку.
 +
# Запустите VMLAB  и через меню '''Project''' -> '''open project''' откройте проект '''c:\vmlab\z8\vmlab.prj'''
 +
# Сверните мешающее окно vmlab.prj и подправьте "мышкой" остальные окна чтобы получить такую картинку:<br>[[Image:avr123_00.png|400px]]<br><br>Вы видите:
 +
#* 8 светодиодов,
 +
#* 3 переменных резистора,
 +
#* клавиатуру на 16 кнопок которые можно использовать и раздельно,
 +
#* виртуальный ЗАПОМИНАЮЩИЙ осциллограф
 +
#* виртуальный терминал с записью данных
 +
#* просмотр портов МК
 +
#* слежение за содержанием переменных
 +
#* отладка по коду программы на Си
 +
#* диаграмма PD1 - передача по USART
 +
#: Весь богатейший набор компонентов VMLAB будет рассмотрен <!--[[???|позже]] адрес 6ой стр. курса-->позже и конечно описан в его HELP.
 +
# Теперь в меню "Project" кликните "Re-build all" - проект нужно перекомпилировать при открытии и внесении каких либо изменений. В окне '''"Messages"''' появится сообщение '''"Success! All ready to run"'''<br>[[Image:avr123_01.png|400px]]
 +
 
 +
Это значит ошибок нет и все готово к моделированию микроконтроллера
 +
ATmega16. Вверху загорелся зеленым светом светофор.
 +
 
 +
Можно запускать симуляцию ...
 +
 
  
 +
Если появилось сообщение об ошибке и светофор не загорелся - вы допустили ошибку на каком то этапе.<br>
 +
'''Проделайте Шаг 2 сначала и более внимательно.'''
  
Вам не нужно будет тратить деньги и время
+
=== Шаг 3. Симуляция - моделирование работы МК. ===
на поиски и покупку радио деталей и микроконтроллеров
+
# Нажмите мышкой светофор - это аналогично включению устройства, подаче питания на МК - программа зашитая в него начинает выполняться... И тут же остановка! Дело в том что VMLAB контролирует правильность работы МК и содержимое программы. Если ему что-то не нравится то симуляция прерывается и в окне Messages появляется сообщений о причине. Подробнее это будет обсуждаться позже, а пока ...
пока вы не убедитесь в работоспособности устройства
+
# Нажмите светофор еще пару или столько раз сколько потребуется  до начала  непрерывной симуляции.
которое вы делаете !
+
#:Понаблюдайте внимательно что происходит на экране.
 +
#:*В окне SCOPE (это виртуальный осциллограф) вы видите как меняются напряжения на ножках МК указанных в файле проекта - vmlab.prj  Верхняя осциллограмма - это  сигнал на ножке TXD (PD1) по которой МК передает данные на COM порт ПК - что передает МК мы видим в виртуальном терминале TTY в панели Control Panel
 +
#:*Там выводится значение ШИМ (PWM) сигнала создаваемого на ножке PD5 - а сам сигнал виден в окне SCOPE  - посмотрите как он меняется в соответствии с сообщаемыми числовыми значениями...
 +
#:*В файле проекта - vmlab.prj  к ножке PD5 подключен простейший фильтр нижних частот (ФНЧ) из резистора и конденсатора - он преобразует ШИМ в постоянное напряжение которое можно увидеть в окне SCOPE сигнал DAC (ЦАП по-русски).
 +
#:*Подробнее о фильтрации и усилении сигналов читайте в задаче 9б.
 +
# Остановите программу красной кнопкой  STOP. В окне Messages появится сообщение о том что программа остановлена пользователем - User break
 +
# Разверните окно Code - в нем отображается исходный код программы которая "прошита" в МК и выполняется при симуляции. Вы увидите что некоторые строки программы подсвечиваются желтым цветом - длина подсветки пропорциональна времени которое программа тратит на выполнение этой строки.
 +
# Найдите строку в программе:<source lang="c">pwm_val = ((1023 * (u32)pwm)/100);</source>Щелкните по квадратику с зеленой вставочкой перед этой строкой - он превратится в красный знак STOP вы поставили "точку останова" (Break point) - теперь программа автоматически остановится перед выполнением этой строки.
 +
# Сверните окно Code и нажмите светофор для продолжения симуляции.<br>Дождитесь остановки программы на этой строке (на этой точке останова) - при остановке строка программы подсветится голубым цветом. Посмотрите на панели внизу справа текущее "чистое" время (без учета остановок) прошедшее с запуска программы - запомните.
 +
# Теперь продолжите симуляцию - надеюсь вы уже знаете как это сделать! (нажать зеленый светофор) Через некоторое время программа опять остановится на этой строке но время уже будет другим. Вычтите из него время прошлой остановки и вы получите время выполнения этого участка программы.
  
Вы не сожжете по неопытности что либо !
+
О более точном измерении интервалов времени я расскажу вам позже.
 +
 
 +
Информация об остановках программы
 +
отображается и в окне '''Messages'''.
 +
 
 +
=== Шаг 4.  Как изменить программу? ===
 +
Вам предстоит многократно менять создаваемые программы - в процессе отладки, пока они не начнут работать так как вы хотите.
 +
 
 +
<ol>
 +
<li> Запустите компилятор CodevisionAVR (CVAVR) и через меню '''File -> Open''' откройте файл проекта CVAVR - '''c:\vmlab\z8\cv.prj'''
 +
</li>
 +
<li> Разверните окно с текстом программы. Вы видите что программа начинается с оформленного в виде комментария краткого описания того что она делает и некоторых технических параметров. Программа написана на языке Си - который является пожалуй самым популярным и удобным при программировании для МК.
 +
 
 +
Не пытайтесь сразу понять что написано в этой программе.
 +
 
 +
Сейчас это вам не нужно !
 +
 
 +
Понимать программы и уметь их создавать вы будете после  освоения  всего  курса.
 +
 
 +
Пока просто внесем изменение в программу и утвердим их перекомпиляцией.
 +
</li>
 +
<li> Найдите в тексте программы в компиляторе CVAVR строки:
 +
<source lang="c">
 +
putchar('P'); // вывод в USART символа P
 +
putchar('W');
 +
putchar('M');
 +
</source>
 +
 
 +
Давайте заменим выводимое этими строками слово  PWM на слово  WOW  (типа вау! получилось!) - вот так:
 +
<source lang="c">
 +
putchar('W'); // вывод в USART символа W
 +
putchar('O');
 +
putchar('W');
 +
</source>
 +
</li>
 +
<li> После внесения изменений в исходный текст программы ее нужно cкомпилировать. Компилятор должен превратить вашу программу в файл "прошивку" '''.hex''' который можно прошить (загрузить) в реальный МК или использовать в симуляторах.
 +
</li>
 +
<li> Для выполнения компиляции нажмите кнопку '''"Make the project"'''
 +
<br>[[Image:avr123_03.png]]<br>
 +
После компиляции появится информационное окно в котором сообщается что наша программа содержит целых 5 ошибок!<br>
 +
<br>
 +
В чем же дело?<br>
 +
<br>
 +
Где найдены ошибки и каковы они написано красным цветом в левой части экрана в окне Navigator  - навигации по проекту CVAVR
 +
<br>[[Image:avr123_04.png]]<br><br>
 +
При наведении курсора можно увидеть описание ошибок.
 +
</li>
 +
<li> Первая ошибка - "не могу открыть файл m8_128.h"<br>
 +
<br>
 +
Все ясно. Этот файл включен в исходный текст программы строкой:
 +
<source lang="c">
 +
#include <m8_128.h>
 +
</source>
 +
Этот файл я создал для возможности прямой вставки примеров на Си из даташита в текст программы в CVAVR. В инсталяции компилятора его нет. Но в тексте программы написано где можно взять этот файл - скачайте [http://avr123.nm.ru/m8_128.h  m8_128.h]<br>
 +
Скачав, поместите его в папку INC компилятора CVAVR.
 +
</li>
 +
<li> Снова компилируем программу кнопкой "Make the project" - теперь получаем сообщение об отсутствии ошибок и о размере программы и о том сколько это %%
 +
от максимального размера программы для данного МК.<br>
 +
<br>
 +
Посмотрите внимательно - хотя ошибок нет - есть "вонинг" - это замечание от компилятора. Вонинги не критичны, но можно посмотреть в навигаторе о чем они.<br>
 +
<br>
 +
Закройте информационное окно кнопкой "ОК".
 +
</li>
 +
</ol>
 +
 
 +
 
 +
'''Вы выполнили всего 4 не сложных шажка'''<br>
 +
Но уже знаете что
  
'''Не попадете в спешке, в азарте отладки устройства под высокое напряжение!'''<br>
+
Моделировать работу МК можно на компьютере не имея самого
Это очень важно для начинающего электронщика '''Техника безопасности - ТБ'''!
+
МК и электронной схемы вокруг него. При этом видеть не только
 +
то что происходит на ножках МК но и то что происходит внутри
 +
МК!!! с помощью нижних частей меню View и Window
 +
симулятора VMLAB. 
  
 +
Вы уже знаете как открыть проект в компиляторе, внести
 +
изменения, скомпили-ровать программу, увидеть ошибки,
 +
исправить их. Вы теперь знаете, что не нужно пытаться
 +
исправлять все ошибки сразу, а нужно начинать с первой
 +
и возможно после ее исправления другие ошибки тоже пропадут.
  
 +
=== Шаг 5.  Симуляция после правки ===
 +
# Разверните окно симулятора VMLAB -  выскочит сообщение о том что файл с текстом симулируемой программы изменен. Мы же его меняли в компиляторе. Закройте его кликнув "ОК".
 +
# Сделайте "глубокий рестарт" симуляции кнопкой с круговой темно-синей стрелкой и перекомпилируйте весь проект как в Шаге 2 пункт 4 или нажав комбинацию: Shift+F9<br><br>'''Все готово к повторной симуляции.'''
 +
# Нажмите светофор 3 раза - начнется непрерывная симуляция и вы увидите результат правки программы в компиляторе CVAVR в окне виртуального терминала симулятора VMLAB - вот он:
  
== Шаг 2. Попробуйте - всё ОЧЕНЬ просто ! ==
+
[[Image:avr123_05.png|400px]]
Лучше один раз увидеть чем сто раз услышать.
 
  
# Загрузите [http://avr123.nm.ru/z8/z8pwm_2.rar файлы]  к [[AVR123:Задача 8|задаче упражнению 8]]  (это всего 14 Кб) в созданную папку - '''c:\VMLAB\z8''' и распакуйте файлы архива в эту же папку.
+
Обратите внимание на то что симулятор показывает примерный расчетный
# Запустите VMLAB  и через меню '''Project''' -> '''open project''' откройте проект '''c:\vmlab\z8\vmlab.prj'''
+
ток потребления МК. Скорость симуляции можно снизить регулятором Speed.
# Сверните мешающее окно vmlab.prj и подправьте "мышкой" остальные окна чтобы получить такую картинку:
+
А частоту кварца можно поменять кнопками Clock.
  
[[Image:avr123_00.png|400px]]
+
Кроме того указаны текущие параметры настройки терминала которые можно
 +
изменить нажав кнопку "Set parameters". Кнопки "Clear" очищают окна. Вы можете набирать текст в окне TX и он будет передаваться в МК (см. пример к симулятору C:\VMLAB\AVR_demo\UART.PRJ) а можно передать в МК текстовый файл кнопкой
 +
"TX File". Если отметить чек-бокс "RX to file" то данные поступившие от МК будут записываться в файл на ПК.

Текущая версия на 08:50, 25 сентября 2009

Проект по переносу курса из источника avr123.nm.ru

Информация
Основы, которые надо знать!

Что такое - электрический ток, напряжение, закон Ома, резистор, конденсатор, индуктивность, транзистор - читайте в школьных учебниках по физике. Например в отличных интерактивных учебниках:


Основные законы:



Информация
Дополнительная информация

Книги по электронике и AVR - [http://lord-n.narod.ru/walla.html]


При работе с иностранными текстами используйте онлайн перевод ([www.Translate.ru])!



Важная информация перед началом курса

Соблюдайте технику безопасности!

Используйте средства защиты. Думайте и только потом делайте. Всегда защищайте глаза ! Не работайте с приборами под высоким или сетевым напряжением, а если все же придется то не работайте в одиночку и одну руку всегда держите за спиной.

Чайникам от Чайника!

Я постарался написать самое основное для начала применения микроконтроллеров простым языком с примерами и конечно с картинками !

Цель курса: Помочь вам быстрей научиться применять микроконтроллеры AVR в ваших радио электронных устройствах. Чтобы научиться вам придется поработать - внимательно читать и главное повторять, выполнять то, что написано.

В этом курсе по МК AVR подробно рассказано и показано

  • как сделать самые первые шаги, с чего начать конкретно - ШАГ за ШАГОМ
  • какие программы загрузить и где, как установить и как использовать
  • как устроен микроконтроллер, как AVR взаимодействует с внешними компонентами
  • как написать первую, простейшую программу для AVR и как управлять его модулями
  • как запустить программу в программе-симуляторе МК AVR и увидеть как она работает не покупая МК и радиодеталей, а значит без риска спалить что-то или испортить ПК
  • как сделать нужное вам электронное устройство, печатную плату
  • как загрузить программу в реальный МК
  • как отладить реальное устройство - т.е. найти причины не правильной работы и добиться его функционирования в соответствии с поставленной задачей.

Начинаем разрабатывать программы для МК AVR

Шаг 1. Скачайте всего две программы

Внимание!
Внимание!

В CVAVR 2 имена и расположение файлов создаваемых компилятором отличается от того что было в CVAVR и в примерах курса.

В CVAVR 2 имя файла исходного кода на Си не изменяется, а файл прошивки .hex и файл с отладочной информацией .cof получают имя как у файла проекта .prj
Для отладки по исходному коду на Си в симуляторах нужно использовать файл с названием: {имя_вашего_файла_проекта_CVAVR2}.cof
Прошивка для МК будет назыаться:
{имя_вашего_файла_проекта_CVAVR2}.hex

Если проект был создан мастером кода CVAVR 2 то в папке проекта появляется несколько новых папок. В папке Exe создается прошивка для МК - {имя_вашего_файла_проекта_CVAVR2}.hex
В папке List появляются файлы программы на ассемблере .asm и файл листинга .lst
Другие 2 папки Linker и Obj "чайнику" мало интересны.

Но для VMLAB нужно что бы прошивка .hex была в папке проекта - поэтому в настройке проекта в CVAVR 2 - меню "Configure Project" в ярлыке "Output Directories" нужно убрать Exe и ниже нажать "ОК" - теперь прошивка .hex будет появляться после компиляции в папке проекта.



Информация
Преимущества виртуальной разработки

Вам не нужно будет тратить деньги и время на поиски и покупку радио деталей и микроконтроллеров пока вы не убедитесь в работоспособности устройства которое вы делаете !

Вы не сожжете по неопытности что либо !

Не попадете в спешке, в азарте отладки устройства под высокое напряжение!

Это очень важно для начинающего электронщика Техника безопасности - ТБ!




  1. Компилятор CodeVisionAVR (2 Мб всего)
    Бесплатный DEMO до 2 кб кода, а полный CVAVR на сайте автора на сером фоне.
  2. Симулятор AVR и электроники VMLAB (4,2 Мб FREE)


Теперь у вас есть качественное и удобное программное обеспечение для ПОЛНОГО цикла разработки устройств на МК (микроконтроллерах) AVR - и реальных и виртуальных.

От интерактивного помошника для создания начального кода, скелета программы - инструмент бесценен для начинающего! - это мастер CVAVR CodeWizard.

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

Компилятор CVAVR имеет встроеный программатор для загрузки готовой программы в реальный микроконтроллер AVR

Шаг 2. Попробуйте - всё ОЧЕНЬ просто !

Лучше один раз увидеть как работают программы-инструменты для AVR чем сто раз услышать.

Сейчас вы попробуете установленные программы в деле, возможно не все сразу понимая - не волнуйтесь, читая и выполняя курс далее, вы во всём постепенно разберётесь.

Информация
Благодаря [энтузиасту программисту] VMLAB пополняется новыми компонентами

  • [AVR Studio Stimulus/Logger] - Создание входных и захват выходных сигналов и их сохранение при симуляции в стиле AVR Studio
  • [Verilog VCD Logger] - Компонент позволяет сохранять в файл данные длительной симуляции.
  • [WAV Analog Stimulus/Logger] - Позволяет вводить в схему сигналы из звукового файла WAV и сохранять в таком же виде результат.
  • [Break On Edge] - Точки останова по изменению сигнала - очень мощно для симуляции.
  • [Digital Signal Delay] - Цифровая пауза для сигналов - позволяет сдвигать сигнал на нужное время.
  • [COM Port Exchanger] - "Квази Уно Фантазия" теперь VMLAB может работать с ваши физическим COM портом в ПК ! Свершилось. Раньше такое только PROTEUS мог вытворять. Но PROTEUS конечно прекрасен.
  • [LED 7-Segment Display] - 7-сегментный индикатор с десятичной точкой - несколько. Очень популярные и недорогие средства индикации.



  1. Загрузите файлы к задаче упражнению 8 (это всего 14 Кб) в созданную папку - c:\VMLAB\z8 и распакуйте файлы архива в эту же папку.
  2. Запустите VMLAB и через меню Project -> open project откройте проект c:\vmlab\z8\vmlab.prj
  3. Сверните мешающее окно vmlab.prj и подправьте "мышкой" остальные окна чтобы получить такую картинку:
    Avr123 00.png

    Вы видите:
    • 8 светодиодов,
    • 3 переменных резистора,
    • клавиатуру на 16 кнопок которые можно использовать и раздельно,
    • виртуальный ЗАПОМИНАЮЩИЙ осциллограф
    • виртуальный терминал с записью данных
    • просмотр портов МК
    • слежение за содержанием переменных
    • отладка по коду программы на Си
    • диаграмма PD1 - передача по USART
    Весь богатейший набор компонентов VMLAB будет рассмотрен позже и конечно описан в его HELP.
  4. Теперь в меню "Project" кликните "Re-build all" - проект нужно перекомпилировать при открытии и внесении каких либо изменений. В окне "Messages" появится сообщение "Success! All ready to run"
    Avr123 01.png

Это значит ошибок нет и все готово к моделированию микроконтроллера ATmega16. Вверху загорелся зеленым светом светофор.

Можно запускать симуляцию ...


Если появилось сообщение об ошибке и светофор не загорелся - вы допустили ошибку на каком то этапе.
Проделайте Шаг 2 сначала и более внимательно.

Шаг 3. Симуляция - моделирование работы МК.

  1. Нажмите мышкой светофор - это аналогично включению устройства, подаче питания на МК - программа зашитая в него начинает выполняться... И тут же остановка! Дело в том что VMLAB контролирует правильность работы МК и содержимое программы. Если ему что-то не нравится то симуляция прерывается и в окне Messages появляется сообщений о причине. Подробнее это будет обсуждаться позже, а пока ...
  2. Нажмите светофор еще пару или столько раз сколько потребуется до начала непрерывной симуляции.
    Понаблюдайте внимательно что происходит на экране.
    • В окне SCOPE (это виртуальный осциллограф) вы видите как меняются напряжения на ножках МК указанных в файле проекта - vmlab.prj Верхняя осциллограмма - это сигнал на ножке TXD (PD1) по которой МК передает данные на COM порт ПК - что передает МК мы видим в виртуальном терминале TTY в панели Control Panel
    • Там выводится значение ШИМ (PWM) сигнала создаваемого на ножке PD5 - а сам сигнал виден в окне SCOPE - посмотрите как он меняется в соответствии с сообщаемыми числовыми значениями...
    • В файле проекта - vmlab.prj к ножке PD5 подключен простейший фильтр нижних частот (ФНЧ) из резистора и конденсатора - он преобразует ШИМ в постоянное напряжение которое можно увидеть в окне SCOPE сигнал DAC (ЦАП по-русски).
    • Подробнее о фильтрации и усилении сигналов читайте в задаче 9б.
  3. Остановите программу красной кнопкой STOP. В окне Messages появится сообщение о том что программа остановлена пользователем - User break
  4. Разверните окно Code - в нем отображается исходный код программы которая "прошита" в МК и выполняется при симуляции. Вы увидите что некоторые строки программы подсвечиваются желтым цветом - длина подсветки пропорциональна времени которое программа тратит на выполнение этой строки.
  5. Найдите строку в программе:<source lang="c">pwm_val = ((1023 * (u32)pwm)/100);</source>Щелкните по квадратику с зеленой вставочкой перед этой строкой - он превратится в красный знак STOP вы поставили "точку останова" (Break point) - теперь программа автоматически остановится перед выполнением этой строки.
  6. Сверните окно Code и нажмите светофор для продолжения симуляции.
    Дождитесь остановки программы на этой строке (на этой точке останова) - при остановке строка программы подсветится голубым цветом. Посмотрите на панели внизу справа текущее "чистое" время (без учета остановок) прошедшее с запуска программы - запомните.
  7. Теперь продолжите симуляцию - надеюсь вы уже знаете как это сделать! (нажать зеленый светофор) Через некоторое время программа опять остановится на этой строке но время уже будет другим. Вычтите из него время прошлой остановки и вы получите время выполнения этого участка программы.

О более точном измерении интервалов времени я расскажу вам позже.

Информация об остановках программы отображается и в окне Messages.

Шаг 4. Как изменить программу?

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

  1. Запустите компилятор CodevisionAVR (CVAVR) и через меню File -> Open откройте файл проекта CVAVR - c:\vmlab\z8\cv.prj
  2. Разверните окно с текстом программы. Вы видите что программа начинается с оформленного в виде комментария краткого описания того что она делает и некоторых технических параметров. Программа написана на языке Си - который является пожалуй самым популярным и удобным при программировании для МК. Не пытайтесь сразу понять что написано в этой программе. Сейчас это вам не нужно ! Понимать программы и уметь их создавать вы будете после освоения всего курса. Пока просто внесем изменение в программу и утвердим их перекомпиляцией.
  3. Найдите в тексте программы в компиляторе CVAVR строки: <source lang="c"> putchar('P'); // вывод в USART символа P putchar('W'); putchar('M'); </source> Давайте заменим выводимое этими строками слово PWM на слово WOW (типа вау! получилось!) - вот так: <source lang="c"> putchar('W'); // вывод в USART символа W putchar('O'); putchar('W'); </source>
  4. После внесения изменений в исходный текст программы ее нужно cкомпилировать. Компилятор должен превратить вашу программу в файл "прошивку" .hex который можно прошить (загрузить) в реальный МК или использовать в симуляторах.
  5. Для выполнения компиляции нажмите кнопку "Make the project"
    Avr123 03.png
    После компиляции появится информационное окно в котором сообщается что наша программа содержит целых 5 ошибок!

    В чем же дело?

    Где найдены ошибки и каковы они написано красным цветом в левой части экрана в окне Navigator - навигации по проекту CVAVR
    Avr123 04.png

    При наведении курсора можно увидеть описание ошибок.
  6. Первая ошибка - "не могу открыть файл m8_128.h"

    Все ясно. Этот файл включен в исходный текст программы строкой: <source lang="c">
    1. include <m8_128.h>
    </source> Этот файл я создал для возможности прямой вставки примеров на Си из даташита в текст программы в CVAVR. В инсталяции компилятора его нет. Но в тексте программы написано где можно взять этот файл - скачайте m8_128.h
    Скачав, поместите его в папку INC компилятора CVAVR.
  7. Снова компилируем программу кнопкой "Make the project" - теперь получаем сообщение об отсутствии ошибок и о размере программы и о том сколько это %% от максимального размера программы для данного МК.

    Посмотрите внимательно - хотя ошибок нет - есть "вонинг" - это замечание от компилятора. Вонинги не критичны, но можно посмотреть в навигаторе о чем они.

    Закройте информационное окно кнопкой "ОК".


Вы выполнили всего 4 не сложных шажка
Но уже знаете что

Моделировать работу МК можно на компьютере не имея самого МК и электронной схемы вокруг него. При этом видеть не только то что происходит на ножках МК но и то что происходит внутри МК!!! с помощью нижних частей меню View и Window симулятора VMLAB.

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

Шаг 5. Симуляция после правки

  1. Разверните окно симулятора VMLAB - выскочит сообщение о том что файл с текстом симулируемой программы изменен. Мы же его меняли в компиляторе. Закройте его кликнув "ОК".
  2. Сделайте "глубокий рестарт" симуляции кнопкой с круговой темно-синей стрелкой и перекомпилируйте весь проект как в Шаге 2 пункт 4 или нажав комбинацию: Shift+F9

    Все готово к повторной симуляции.
  3. Нажмите светофор 3 раза - начнется непрерывная симуляция и вы увидите результат правки программы в компиляторе CVAVR в окне виртуального терминала симулятора VMLAB - вот он:

Avr123 05.png

Обратите внимание на то что симулятор показывает примерный расчетный ток потребления МК. Скорость симуляции можно снизить регулятором Speed. А частоту кварца можно поменять кнопками Clock.

Кроме того указаны текущие параметры настройки терминала которые можно изменить нажав кнопку "Set parameters". Кнопки "Clear" очищают окна. Вы можете набирать текст в окне TX и он будет передаваться в МК (см. пример к симулятору C:\VMLAB\AVR_demo\UART.PRJ) а можно передать в МК текстовый файл кнопкой "TX File". Если отметить чек-бокс "RX to file" то данные поступившие от МК будут записываться в файл на ПК.