AVR123:Введение

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск

Проект по переносу курса из источника 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" то данные поступившие от МК будут записываться в файл на ПК.