AVR123:Введение — различия между версиями
=DeaD= (обсуждение | вклад) (→Начинаем разрабатывать программы для МК AVR) |
=DeaD= (обсуждение | вклад) (→Шаг 2. Попробуйте - всё ОЧЕНЬ просто !) |
||
Строка 67: | Строка 67: | ||
=== Шаг 2. Попробуйте - всё ОЧЕНЬ просто ! === | === Шаг 2. Попробуйте - всё ОЧЕНЬ просто ! === | ||
+ | Лучше один раз увидеть как работают программы-инструменты для AVR чем сто раз услышать. | ||
+ | |||
+ | Сейчас вы попробуете установленные программы в деле, возможно не все сразу понимая - не волнуйтесь, читая и выполняя курс далее, вы во всём постепенно разберётесь. | ||
{{InfoBlock| | {{InfoBlock| | ||
* [[http://sites.google.com/site/thvortex/vmlab/avrlog AVR Studio Stimulus/Logger]] - Создание входных и захват выходных сигналов и их сохранение при симуляции в стиле AVR Studio | * [[http://sites.google.com/site/thvortex/vmlab/avrlog AVR Studio Stimulus/Logger]] - Создание входных и захват выходных сигналов и их сохранение при симуляции в стиле AVR Studio | ||
Строка 75: | Строка 78: | ||
* [[http://sites.google.com/site/thvortex/vmlab/comxch COM Port Exchanger]] - "Квази Уно Фантазия" теперь VMLAB может работать с ваши физическим COM портом в ПК ! Свершилось. Раньше такое только PROTEUS мог вытворять. Но PROTEUS конечно прекрасен. | * [[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://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''' и распакуйте файлы архива в эту же папку. | # Загрузите [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 и через меню '''Project''' -> '''open project''' откройте проект '''c:\vmlab\z8\vmlab.prj''' |
Версия 07:13, 16 сентября 2009
Проект по переносу курса из источника avr123.nm.ru
Основы, которые надо знать! | |
Что такое - электрический ток, напряжение, закон Ома, резистор, конденсатор, индуктивность, транзистор - читайте в школьных учебниках по физике. Например в отличных интерактивных учебниках:
|
Дополнительная информация | |
Книги по электронике и AVR - [http://lord-n.narod.ru/walla.html]
|
Важная информация перед началом курса
Соблюдайте технику безопасности!
Используйте средства защиты. Думайте и только потом делайте. Всегда защищайте глаза ! Не работайте с приборами под высоким или сетевым напряжением, а если все же придется то не работайте в одиночку и одну руку всегда держите за спиной.
Чайникам от Чайника!
Я постарался написать самое основное для начала применения микроконтроллеров простым языком с примерами и конечно с картинками !
Цель курса: Помочь вам быстрей научиться применять микроконтроллеры AVR в ваших радио электронных устройствах. Чтобы научиться вам придется поработать - внимательно читать и главное повторять, выполнять то, что написано.
В этом курсе по МК AVR подробно рассказано и показано
- как сделать самые первые шаги, с чего начать конкретно - ШАГ за ШАГОМ
- какие программы загрузить и где, как установить и как использовать
- как устроен микроконтроллер, как AVR взаимодействует с внешними компонентами
- как написать первую, простейшую программу для AVR и как управлять его модулями
- как запустить программу в программе-симуляторе МК AVR и увидеть как она работает не покупая МК и радиодеталей, а значит без риска спалить что-то или испортить ПК
- как сделать нужное вам электронное устройство, печатную плату
- как загрузить программу в реальный МК
- как отладить реальное устройство - т.е. найти причины не правильной работы и добиться его функционирования в соответствии с поставленной задачей.
Начинаем разрабатывать программы для МК AVR
Шаг 1. Скачайте всего две программы
Преимущества виртуальной разработки | |
Вам не нужно будет тратить деньги и время на поиски и покупку радио деталей и микроконтроллеров пока вы не убедитесь в работоспособности устройства которое вы делаете ! Вы не сожжете по неопытности что либо ! Не попадете в спешке, в азарте отладки устройства под высокое напряжение! |
- Компилятор 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 (ЦАП по-русски).
Подробнее о фильтрации и усилении сигналов там. - Остановите программу красной кнопкой 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" то данные поступившие от МК будут записываться в файл на ПК.