AVR123:Введение — различия между версиями
=DeaD= (обсуждение | вклад) |
=DeaD= (обсуждение | вклад) |
||
Строка 6: | Строка 6: | ||
Основные законы: [[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-переход, Транзистор]]|Основы, которые надо знать}} | Основные законы: [[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| | + | {{InfoBlock|Книги по электронике и AVR - [[http://lord-n.narod.ru/walla.html http://lord-n.narod.ru/walla.html]]|Дополнительная литература}} |
{{InfoBlock|Используйте онлайн перевод ([[http://www.Translate.ru www.Translate.ru]])!|При работе с иностранными текстами}} | {{InfoBlock|Используйте онлайн перевод ([[http://www.Translate.ru www.Translate.ru]])!|При работе с иностранными текстами}} | ||
Версия 13:02, 15 сентября 2009
Проект по переносу курса из источника avr123.nm.ru
Основы, которые надо знать | |
Что такое - электрический ток, напряжение, закон Ома, резистор, конденсатор, индуктивность, транзистор - читайте в школьных учебниках по физике. Например в отличных интерактивных учебниках: [Физика], [Математика], [Он-лайн лаборатория по физике]. Основные законы: [Закон Ома], [Последовательное и параллельное соединение проводников], [Правила Кирхгофа для разветвленных цепей], [Работа и мощность тока], [NP-переход, Транзистор] |
Дополнительная литература | |
Книги по электронике и AVR - [http://lord-n.narod.ru/walla.html] |
При работе с иностранными текстами | |
Используйте онлайн перевод ([www.Translate.ru])! |
Важная информация перед началом курса
Соблюдайте технику безопасности!
Используйте средства защиты. Думайте и только потом делайте. Всегда защищайте глаза ! Не работайте с приборами под высоким или сетевым напряжением, а если все же придется то не работайте в одиночку и одну руку всегда держите за спиной.
Чайникам от Чайника!
Я постарался написать самое основное для начала применения микроконтроллеров простым языком с примерами и конечно с картинками !
Цель курса: Помочь вам быстрей научиться применять микроконтроллеры AVR в ваших радио электронных устройствах. Чтобы научиться вам придется поработать - внимательно читать и главное повторять, выполнять то, что написано.
В этом курсе по МК AVR подробно рассказано и показано
- как сделать самые первые шаги, с чего начать конкретно - ШАГ за ШАГОМ
- какие программы загрузить и где, как установить и как использовать
- как устроен микроконтроллер, как AVR взаимодействует с внешними компонентами
- как написать первую, простейшую программу для AVR и как управлять его модулями
- как запустить программу в программе-симуляторе МК AVR и увидеть как она работает не покупая МК и радиодеталей, а значит без риска спалить что-то или испортить ПК
- как сделать нужное вам электронное устройство, печатную плату
- как загрузить программу в реальный МК
- как отладить реальное устройство - т.е. найти причины не правильной работы и добиться его функционирования в соответствии с поставленной задачей.
Начинаем разрабатывать программы для МК AVR
Шаг 1. Скачайте всего две программы
- Компилятор CodeVisionAVR (2 Мб всего)
Бесплатный DEMO до 2 кб кода, а полный CVAVR на сайте автора на сером фоне. - Симулятор AVR и электроники VMLAB (4,2 Мб FREE)
Теперь у вас есть качественное и удобное программное обеспечение для ПОЛНОГО цикла разработки устройств на МК (микроконтроллерах) AVR !
От интерактивного помошника для создания начального кода, скелета программы - инструмент бесценен для начинающего!
До написания и отладки полной программы с постоянным контролем её работы на всех этапах ее создания на компьютерной модели нужного вам микроконтроллера AVR совместно с популярными электронными компонентами подключенными к нему виртуально.
Вам не нужно будет тратить деньги и время
на поиски и покупку радио деталей и микроконтроллеров
пока вы не убедитесь в работоспособности устройства
которое вы делаете !
Вы не сожжете по неопытности что либо !
Не попадете в спешке, в азарте отладки устройства под высокое напряжение!
Это очень важно для начинающего электронщика Техника безопасности - ТБ!
Шаг 2. Попробуйте - всё ОЧЕНЬ просто !
Лучше один раз увидеть чем сто раз услышать.
- Загрузите файлы к задаче упражнению 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" то данные поступившие от МК будут записываться в файл на ПК.