AVR123:Введение — различия между версиями
Setar (обсуждение | вклад) (отличие структуры папок CVAVR2) |
=DeaD= (обсуждение | вклад) (→Шаг 3. Симуляция - моделирование работы МК.) |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 42: | Строка 42: | ||
== Начинаем разрабатывать программы для МК AVR == | == Начинаем разрабатывать программы для МК AVR == | ||
=== Шаг 1. Скачайте всего две программы === | === Шаг 1. Скачайте всего две программы === | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{AttentionBlock|В CVAVR 2 имена и расположение файлов создаваемых компилятором отличается от того что было в CVAVR и в примерах курса.<br><br> | {{AttentionBlock|В CVAVR 2 имена и расположение файлов создаваемых компилятором отличается от того что было в CVAVR и в примерах курса.<br><br> | ||
В CVAVR 2 имя файла исходного кода на Си не изменяется, а файл прошивки .hex и файл с отладочной информацией .cof получают имя как у файла проекта .prj<br> | В CVAVR 2 имя файла исходного кода на Си не изменяется, а файл прошивки .hex и файл с отладочной информацией .cof получают имя как у файла проекта .prj<br> | ||
Строка 62: | Строка 55: | ||
'''нужно убрать Exe''' и ниже нажать "ОК" - теперь прошивка .hex будет появляться после компиляции в папке проекта. | '''нужно убрать Exe''' и ниже нажать "ОК" - теперь прошивка .hex будет появляться после компиляции в папке проекта. | ||
}} | }} | ||
+ | |||
+ | {{InfoBlock|Вам не нужно будет тратить деньги и время на поиски и покупку радио деталей и микроконтроллеров пока вы не убедитесь в работоспособности устройства которое вы делаете ! | ||
+ | |||
+ | Вы не сожжете по неопытности что либо ! | ||
+ | |||
+ | '''Не попадете в спешке, в азарте отладки устройства под высокое напряжение!'''<br> | ||
+ | Это очень важно для начинающего электронщика '''Техника безопасности - ТБ'''!|Преимущества виртуальной разработки}} | ||
+ | |||
+ | |||
# Компилятор [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> | ||
Строка 119: | Строка 121: | ||
=== Шаг 3. Симуляция - моделирование работы МК. === | === Шаг 3. Симуляция - моделирование работы МК. === | ||
# Нажмите мышкой светофор - это аналогично включению устройства, подаче питания на МК - программа зашитая в него начинает выполняться... И тут же остановка! Дело в том что VMLAB контролирует правильность работы МК и содержимое программы. Если ему что-то не нравится то симуляция прерывается и в окне Messages появляется сообщений о причине. Подробнее это будет обсуждаться позже, а пока ... | # Нажмите мышкой светофор - это аналогично включению устройства, подаче питания на МК - программа зашитая в него начинает выполняться... И тут же остановка! Дело в том что VMLAB контролирует правильность работы МК и содержимое программы. Если ему что-то не нравится то симуляция прерывается и в окне Messages появляется сообщений о причине. Подробнее это будет обсуждаться позже, а пока ... | ||
− | # Нажмите светофор еще пару или столько раз сколько потребуется до начала непрерывной симуляции. | + | # Нажмите светофор еще пару или столько раз сколько потребуется до начала непрерывной симуляции. |
+ | #:Понаблюдайте внимательно что происходит на экране. | ||
+ | #:*В окне SCOPE (это виртуальный осциллограф) вы видите как меняются напряжения на ножках МК указанных в файле проекта - vmlab.prj Верхняя осциллограмма - это сигнал на ножке TXD (PD1) по которой МК передает данные на COM порт ПК - что передает МК мы видим в виртуальном терминале TTY в панели Control Panel | ||
+ | #:*Там выводится значение ШИМ (PWM) сигнала создаваемого на ножке PD5 - а сам сигнал виден в окне SCOPE - посмотрите как он меняется в соответствии с сообщаемыми числовыми значениями... | ||
+ | #:*В файле проекта - vmlab.prj к ножке PD5 подключен простейший фильтр нижних частот (ФНЧ) из резистора и конденсатора - он преобразует ШИМ в постоянное напряжение которое можно увидеть в окне SCOPE сигнал DAC (ЦАП по-русски). | ||
+ | #:*Подробнее о фильтрации и усилении сигналов читайте в задаче 9б. | ||
# Остановите программу красной кнопкой STOP. В окне Messages появится сообщение о том что программа остановлена пользователем - User break | # Остановите программу красной кнопкой STOP. В окне Messages появится сообщение о том что программа остановлена пользователем - User break | ||
# Разверните окно Code - в нем отображается исходный код программы которая "прошита" в МК и выполняется при симуляции. Вы увидите что некоторые строки программы подсвечиваются желтым цветом - длина подсветки пропорциональна времени которое программа тратит на выполнение этой строки. | # Разверните окно Code - в нем отображается исходный код программы которая "прошита" в МК и выполняется при симуляции. Вы увидите что некоторые строки программы подсвечиваются желтым цветом - длина подсветки пропорциональна времени которое программа тратит на выполнение этой строки. |
Текущая версия на 08:50, 25 сентября 2009
Проект по переносу курса из источника avr123.nm.ru
Основы, которые надо знать! | |
Что такое - электрический ток, напряжение, закон Ома, резистор, конденсатор, индуктивность, транзистор - читайте в школьных учебниках по физике. Например в отличных интерактивных учебниках:
|
Дополнительная информация | |
Книги по электронике и AVR - [http://lord-n.narod.ru/walla.html]
|
Важная информация перед началом курса
Соблюдайте технику безопасности!
Используйте средства защиты. Думайте и только потом делайте. Всегда защищайте глаза ! Не работайте с приборами под высоким или сетевым напряжением, а если все же придется то не работайте в одиночку и одну руку всегда держите за спиной.
Чайникам от Чайника!
Я постарался написать самое основное для начала применения микроконтроллеров простым языком с примерами и конечно с картинками !
Цель курса: Помочь вам быстрей научиться применять микроконтроллеры AVR в ваших радио электронных устройствах. Чтобы научиться вам придется поработать - внимательно читать и главное повторять, выполнять то, что написано.
В этом курсе по МК AVR подробно рассказано и показано
- как сделать самые первые шаги, с чего начать конкретно - ШАГ за ШАГОМ
- какие программы загрузить и где, как установить и как использовать
- как устроен микроконтроллер, как AVR взаимодействует с внешними компонентами
- как написать первую, простейшую программу для AVR и как управлять его модулями
- как запустить программу в программе-симуляторе МК AVR и увидеть как она работает не покупая МК и радиодеталей, а значит без риска спалить что-то или испортить ПК
- как сделать нужное вам электронное устройство, печатную плату
- как загрузить программу в реальный МК
- как отладить реальное устройство - т.е. найти причины не правильной работы и добиться его функционирования в соответствии с поставленной задачей.
Начинаем разрабатывать программы для МК AVR
Шаг 1. Скачайте всего две программы
Внимание! | |
В CVAVR 2 имена и расположение файлов создаваемых компилятором отличается от того что было в CVAVR и в примерах курса. В CVAVR 2 имя файла исходного кода на Си не изменяется, а файл прошивки .hex и файл с отладочной информацией .cof получают имя как у файла проекта .prj Если проект был создан мастером кода CVAVR 2 то в папке проекта появляется несколько новых папок. В папке Exe создается прошивка для МК - {имя_вашего_файла_проекта_CVAVR2}.hex Но для VMLAB нужно что бы прошивка .hex была в папке проекта - поэтому в настройке проекта в CVAVR 2 - меню "Configure Project" в ярлыке "Output Directories" нужно убрать Exe и ниже нажать "ОК" - теперь прошивка .hex будет появляться после компиляции в папке проекта. |
Преимущества виртуальной разработки | |
Вам не нужно будет тратить деньги и время на поиски и покупку радио деталей и микроконтроллеров пока вы не убедитесь в работоспособности устройства которое вы делаете ! Вы не сожжете по неопытности что либо ! Не попадете в спешке, в азарте отладки устройства под высокое напряжение! |
- Компилятор CodeVisionAVR (2 Мб всего)
Бесплатный DEMO до 2 кб кода, а полный CVAVR на сайте автора на сером фоне. - Симулятор AVR и электроники VMLAB (4,2 Мб FREE)
Теперь у вас есть качественное и удобное программное
обеспечение для ПОЛНОГО цикла разработки устройств
на МК (микроконтроллерах) AVR - и реальных и виртуальных.
От интерактивного помошника для создания начального кода, скелета программы - инструмент бесценен для начинающего! - это мастер CVAVR CodeWizard.
До написания и отладки полной программы с постоянным контролем её работы на всех этапах ее создания на компьютерной модели нужного вам микроконтроллера AVR совместно с популярными электронными компонентами подключенными к нему виртуально. А при желании и в реальном микроконтроллере в устройстве.
Компилятор CVAVR имеет встроеный программатор для загрузки готовой программы в реальный микроконтроллер AVR
Шаг 2. Попробуйте - всё ОЧЕНЬ просто !
Лучше один раз увидеть как работают программы-инструменты для AVR чем сто раз услышать.
Сейчас вы попробуете установленные программы в деле, возможно не все сразу понимая - не волнуйтесь, читая и выполняя курс далее, вы во всём постепенно разберётесь.
Благодаря [энтузиасту программисту] VMLAB пополняется новыми компонентами | |
|
- Загрузите файлы к задаче упражнению 8 (это всего 14 Кб) в созданную папку - c:\VMLAB\z8 и распакуйте файлы архива в эту же папку.
- Запустите VMLAB и через меню Project -> open project откройте проект c:\vmlab\z8\vmlab.prj
- Сверните мешающее окно vmlab.prj и подправьте "мышкой" остальные окна чтобы получить такую картинку:
Вы видите:- 8 светодиодов,
- 3 переменных резистора,
- клавиатуру на 16 кнопок которые можно использовать и раздельно,
- виртуальный ЗАПОМИНАЮЩИЙ осциллограф
- виртуальный терминал с записью данных
- просмотр портов МК
- слежение за содержанием переменных
- отладка по коду программы на Си
- диаграмма PD1 - передача по USART
- Весь богатейший набор компонентов VMLAB будет рассмотрен позже и конечно описан в его HELP.
- Теперь в меню "Project" кликните "Re-build all" - проект нужно перекомпилировать при открытии и внесении каких либо изменений. В окне "Messages" появится сообщение "Success! All ready to run"
Это значит ошибок нет и все готово к моделированию микроконтроллера ATmega16. Вверху загорелся зеленым светом светофор.
Можно запускать симуляцию ...
Если появилось сообщение об ошибке и светофор не загорелся - вы допустили ошибку на каком то этапе.
Проделайте Шаг 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 и нажмите светофор для продолжения симуляции.
Дождитесь остановки программы на этой строке (на этой точке останова) - при остановке строка программы подсветится голубым цветом. Посмотрите на панели внизу справа текущее "чистое" время (без учета остановок) прошедшее с запуска программы - запомните. - Теперь продолжите симуляцию - надеюсь вы уже знаете как это сделать! (нажать зеленый светофор) Через некоторое время программа опять остановится на этой строке но время уже будет другим. Вычтите из него время прошлой остановки и вы получите время выполнения этого участка программы.
О более точном измерении интервалов времени я расскажу вам позже.
Информация об остановках программы отображается и в окне Messages.
Шаг 4. Как изменить программу?
Вам предстоит многократно менять создаваемые программы - в процессе отладки, пока они не начнут работать так как вы хотите.
- Запустите компилятор CodevisionAVR (CVAVR) и через меню File -> Open откройте файл проекта CVAVR - c:\vmlab\z8\cv.prj
- Разверните окно с текстом программы. Вы видите что программа начинается с оформленного в виде комментария краткого описания того что она делает и некоторых технических параметров. Программа написана на языке Си - который является пожалуй самым популярным и удобным при программировании для МК. Не пытайтесь сразу понять что написано в этой программе. Сейчас это вам не нужно ! Понимать программы и уметь их создавать вы будете после освоения всего курса. Пока просто внесем изменение в программу и утвердим их перекомпиляцией.
- Найдите в тексте программы в компиляторе 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>
- После внесения изменений в исходный текст программы ее нужно cкомпилировать. Компилятор должен превратить вашу программу в файл "прошивку" .hex который можно прошить (загрузить) в реальный МК или использовать в симуляторах.
- Для выполнения компиляции нажмите кнопку "Make the project"
После компиляции появится информационное окно в котором сообщается что наша программа содержит целых 5 ошибок!
В чем же дело?
Где найдены ошибки и каковы они написано красным цветом в левой части экрана в окне Navigator - навигации по проекту CVAVR
При наведении курсора можно увидеть описание ошибок. - Первая ошибка - "не могу открыть файл m8_128.h"
Все ясно. Этот файл включен в исходный текст программы строкой: <source lang="c">- include <m8_128.h>
Скачав, поместите его в папку INC компилятора CVAVR. - Снова компилируем программу кнопкой "Make the project" - теперь получаем сообщение об отсутствии ошибок и о размере программы и о том сколько это %%
от максимального размера программы для данного МК.
Посмотрите внимательно - хотя ошибок нет - есть "вонинг" - это замечание от компилятора. Вонинги не критичны, но можно посмотреть в навигаторе о чем они.
Закройте информационное окно кнопкой "ОК".
Вы выполнили всего 4 не сложных шажка
Но уже знаете что
Моделировать работу МК можно на компьютере не имея самого МК и электронной схемы вокруг него. При этом видеть не только то что происходит на ножках МК но и то что происходит внутри МК!!! с помощью нижних частей меню View и Window симулятора VMLAB.
Вы уже знаете как открыть проект в компиляторе, внести изменения, скомпили-ровать программу, увидеть ошибки, исправить их. Вы теперь знаете, что не нужно пытаться исправлять все ошибки сразу, а нужно начинать с первой и возможно после ее исправления другие ошибки тоже пропадут.
Шаг 5. Симуляция после правки
- Разверните окно симулятора VMLAB - выскочит сообщение о том что файл с текстом симулируемой программы изменен. Мы же его меняли в компиляторе. Закройте его кликнув "ОК".
- Сделайте "глубокий рестарт" симуляции кнопкой с круговой темно-синей стрелкой и перекомпилируйте весь проект как в Шаге 2 пункт 4 или нажав комбинацию: Shift+F9
Все готово к повторной симуляции. - Нажмите светофор 3 раза - начнется непрерывная симуляция и вы увидите результат правки программы в компиляторе CVAVR в окне виртуального терминала симулятора VMLAB - вот он:
Обратите внимание на то что симулятор показывает примерный расчетный ток потребления МК. Скорость симуляции можно снизить регулятором Speed. А частоту кварца можно поменять кнопками Clock.
Кроме того указаны текущие параметры настройки терминала которые можно изменить нажав кнопку "Set parameters". Кнопки "Clear" очищают окна. Вы можете набирать текст в окне TX и он будет передаваться в МК (см. пример к симулятору C:\VMLAB\AVR_demo\UART.PRJ) а можно передать в МК текстовый файл кнопкой "TX File". Если отметить чек-бокс "RX to file" то данные поступившие от МК будут записываться в файл на ПК.