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

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
Строка 3: Строка 3:
 
[[Категория:Цифровая электроника]]
 
[[Категория:Цифровая электроника]]
  
Курс подробно рассказывает как сделать самые первые шаги,  
+
Курс подробно рассказывает как сделать самые первые шаги,
с чего начать не вообще,  а  конкретно - ШАГ за ШАГОМ ...  
+
с чего начать не вообще,  а  конкретно - ШАГ за ШАГОМ ...
  
 
* Как сделать нужное вам электронное устройство, печатную плату
 
* Как сделать нужное вам электронное устройство, печатную плату
 
* Как написать первую, простейшую программу для МК
 
* Как написать первую, простейшую программу для МК
 
* Как запустить эту программу в программе-симуляторе МК и увидеть как она работает не покупая МК и радиодеталей, а значит без риска спалить что-то или испортить порт вашего ПК !
 
* Как запустить эту программу в программе-симуляторе МК и увидеть как она работает не покупая МК и радиодеталей, а значит без риска спалить что-то или испортить порт вашего ПК !
* Как загрузить программу в реальный МК  
+
* Как загрузить программу в реальный МК
 
* Как отладить реальное устройство - т.е. найти причины не правильной работы и добиться его функционирования в соответствии с поставленной задачей.
 
* Как отладить реальное устройство - т.е. найти причины не правильной работы и добиться его функционирования в соответствии с поставленной задачей.
  
Строка 46: Строка 46:
 
# Загрузите [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'''
# Сверните мешающее окно 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]]
  
[[Image:avr123_00.png|400px]]
+
Это значит ошибок нет и все готово к моделированию микроконтроллера
 +
ATmega16. Вверху загорелся зеленым светом светофор.
 +
 
 +
Можно запускать симуляцию ...
 +
 
 +
 
 +
Если появилось сообщение об ошибке и светофор не загорелся - вы допустили ошибку на каком то этапе.<br>
 +
'''Проделайте Шаг 2 сначала и более внимательно.'''
 +
 
 +
== Шаг 3. Симуляция - моделирование работы МК. ==
 +
# Нажмите мышкой светофор - это аналогично включению устройства, подаче питания на МК - программа зашитая в него начинает выполняться... И тут же остановка! Дело в том что VMLAB контролирует правильность работы МК и содержимое программы. Если ему что-то не нравится то симуляция прерывается и в окне Messages появляется сообщений о причине. Подробнее это будет обсуждаться позже, а пока ...
 +
# Нажмите светофор еще пару или столько раз сколько потребуется  до начала  непрерывной симуляции.<br><br>Понаблюдайте внимательно что происходит на экране.<br><br>В окне SCOPE (это виртуальный осциллограф) вы видите как меняются напряжения на ножках МК указанных в файле проекта - vmlab.prj  Верхняя осциллограмма - это  сигнал на ножке TXD (PD1) по которой МК передает данные на COM порт ПК - что передает МК мы видим в виртуальном терминале TTY в панели Control Panel<br><br>Там выводится значение ШИМ (PWM) сигнала создаваемого на ножке PD5 - а сам сигнал виден в окне SCOPE  - посмотрите как он меняется в соответствии с сообщаемыми числовыми значениями...<br><br>В файле проекта - vmlab.prj  к ножке PD5 подключен простейший фильтр нижних частот (ФНЧ) из резистора и конденсатора - он преобразует ШИМ в постоянное напряжение которое можно увидеть в окне SCOPE сигнал DAC (ЦАП по-русски).<br><br>Подробнее о фильтрации и усилении сигналов <!--z09b-->там.
 +
# Остановите программу красной кнопкой  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|400px]]<br>
 +
После компиляции появится информационное окно в котором сообщается что наша программа содержит целых 5 ошибок!<br>
 +
<br>
 +
В чем же дело?<br>
 +
<br>
 +
Где найдены ошибки и каковы они написано красным цветом в левой части экрана в окне Navigator  - навигации по проекту CVAVR
 +
<br>[[Image:avr123_04.png|400px]]<br><br>
 +
При наведении курсора можно увидеть описание ошибок.
 +
</li>
 +
<li> Первая ошибка - "не могу открыть файл m8_128.h"<br>
 +
<br>
 +
Все ясно. Этот файл включен в исходный текст программы строкой:
 +
<source lang="c">
 +
#include <m8_128.h>
 +
</source>
 +
Этот файл я создал для возможности прямой вставки примеров на Си из даташита в текст программы в CVAVR. В инсталяции компилятора его нет. Но в тексте программы написано где можно взять этот файл - скачайте m8_128.h<br>
 +
Скачав, поместите его в папку INC компилятора CVAVR.
 +
</li>
 +
<li> Снова компилируем программу кнопкой "Make the project" - теперь получаем сообщение об отсутствии ошибок и о размере программы и о том сколько это %%
 +
от максимального размера программы для данного МК.<br>
 +
<br>
 +
Посмотрите внимательно - хотя ошибок нет - есть "вонинг" - это замечание от компилятора. Вонинги не критичны, но можно посмотреть в навигаторе о чем они.<br>
 +
<br>
 +
Закройте информационное окно кнопкой "ОК".
 +
</li>
 +
</ol>
 +
 
 +
 
 +
'''Вы выполнили всего 4 не сложных шажка'''<br>
 +
Но уже знаете что
 +
 
 +
Моделировать работу МК можно на компьютере не имея самого
 +
МК и электронной схемы вокруг него. При этом видеть не только
 +
то что происходит на ножках МК но и то что происходит внутри
 +
МК!!! с помощью нижних частей меню View и Window
 +
симулятора VMLAB. 
 +
 
 +
Вы уже знаете как открыть проект в компиляторе, внести
 +
изменения, скомпили-ровать программу, увидеть ошибки,
 +
исправить их. Вы теперь знаете, что не нужно пытаться
 +
исправлять все ошибки сразу, а нужно начинать с первой
 +
и возможно после ее исправления другие ошибки тоже пропадут.

Версия 18:12, 12 сентября 2007


Курс подробно рассказывает как сделать самые первые шаги, с чего начать не вообще, а конкретно - ШАГ за ШАГОМ ...

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

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

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

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

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

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


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

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

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


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

Лучше один раз увидеть чем сто раз услышать.

  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 (ЦАП по-русски).

    Подробнее о фильтрации и усилении сигналов там.
  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.

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