Курс AVR123.nm.ru


Electronic Banner Exchange (ElBE)
 


 

 
         
 

- стр. 4 -

Краткий курс - Самоучитель - AVR - быстрый старт с нуля.


ПРОГРАММА  для  МК

Компиляторы

и     Симуляторы 

 

поиск   GOOGLE   по 
Краткому Курсу AVR

Книги и учебники по микроконтроллерам  AVR тут

 

Это уже 4-я страница краткого курса !

вы уже должны представлять себе 
 

1) что такое МК AVR и в чем его особенности 

2) как МК взаимодействует с электроникой подключенной к нему 

3) как МК преобразует напряжения на его ножках  в  "1" или "0"

4) что является посредником в общении программы с МК

5) какие напряжения на своих выводах может создавать МК  AVR

6) с чего нужно начать разработку эл. устройства

7) какая документация по МК особенно полезна и необходима

8) где найти книги и дополнительные материалы


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

Иначе понимание дальнейшего материала курса может оказаться затруднительным. 

 

Итак ...

- вы определились с тем какое электронное 
устройство творите, 

- понимаете что оно должно делать, 

- нарисовали схему устройства физически способную выполнить вашу задумку ! - например слепили из кусочков взятых в ДШ, АпНоутах, опираясь на аналогичные проекты других электронщиков найденные в интернете и по советам других радио Губителей. 

Пора создавать программу которая, будучи загруженной (зашитой, прожженной) в МК, будет изменять физическое состояние его внутренностей и ножек делая записи в регистры МК и узнавать о физическом состоянии содержимого МК читая его регистры. 

 

Регистры...  регистры...  регистры... 


Короче - 


хотите что-то включить, выключить, поменять в МК - найдите в ДШ те регистры и биты которые за это отвечают 
и выясните что именно нужно записать в них ! 

и у вас все получится...

 


Программу для МК удобно создавать в специальных программах - называются 
они компиляторы. 


Если кроме компилятора в пакете есть отладчик-симулятор и/или программатор то это уже IDE (интегрированная среда разработки). 

Компилятор позволяет написать программу для МК на универсальном языке программирования - одинаковом и для ПК и для различных МК (кстати для МК требуется всего 3-5% всех возможностей языка программирования). 

Текст программы набранный вами (или другими добрыми людьми) в компиляторе называют исходным кодом (или исходником или сырцом - англ: source code

Компилятор по вашей команде проверяет отсутствие ошибок в набранном исходнике и, если ошибок нет, преобразует исходник (компилирует его) в специальный файл обычно с расширением .hex  - его называют  "прошивка". 

Прошивку с помощью программатора  (для AVR это например 5 проводков с параллельного порта ПК) помещают во FLASH память программ МК и при необходимости частично в его EEPROM.

 

 

Очень трудно написать программу 
сразу правильно и без ошибок

поэтому 

Важнейшим этапом разработки электронного устройства является его отладка и особенно отладка программы МК  

(программа МК называется - firmware).

 

Для отладки вы : 

- включаете ваше устройство с прошитым МК (либо симулятор МК)
- находите отклонения от требуемого алгоритма вызванные ошибками проги, 
- выявляете хитрыми способами эти ошибки, 
- вносите соответствующие изменения в исходный текст программы  
- опять компилируете  
- прошиваете новый .hex в МК и опять на верхний пункт этого списка

И так до победного конца - т.е. до тех пор 
пока устройство заработает 
          так как вам нужно
.

 

Не всегда допустимо включить устройство не зная наверняка правильно ли работает программа МК - в некоторых случаях могут произойти серьезные и дорогостоящие повреждения обвязки МК и другой аппаратуры. 

Иногда требуется проверить работу МК не имея его и 
вообще какой либо реально спаянной схемы и самого МК. 

 

В этих случаях я рекомендую использовать 
специальные программы - Симуляторы. 

 

Симулятор моделирует на ПК работу "прошитого" вашей программой МК и его обвязки - т.е. электронных компонентов окружающих МК по схеме устройства. 

Кроме того симуляторы позволяют вам: 

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

- делать еще много полезного !

 

 

 

 

Теперь подробнее ...

 

 

Компиляторы Си для AVR


Не пугайтесь ! я не предлагаю вам изучить еще и язык Си - мы просто будем использовать несколько инструкций из него - как я говорил всего несколько % языка. 

Я сам начинал изучать и применять МК сразу 
на Си - и очень доволен результатом.

 

Считаю, что : 

Для начинающих наиболее удобен в работе 

компилятор Си для AVR   CodeVisionAVR  ( или CVAVR)

Вам нужно скачать и установить эту программу! 
демо-версия доступна с официального сайта
  (< 4 Мб)

Полную версию можно спросить в интернет конференциях по МК. 

 

Именно для начинающих ! - Компилятор содержит очень понятный и очень мощный генератор начального кода программы по вашим потребностям в конфигурации периферии МК AVR - называется он :

CodeWizardAVR

 

 

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

Затем  мастер ("визад") создаст файл проекта .prj и файл  исходного текста программы на языке Си с расширением .c - в нем уже будет содержаться код на Си конфигурирующий МК по сделанному вами "заказу". 

Вам нужно будет добавить лишь код реализующий нужный вам алгоритм работы устройства.

Используйте этот мастер и далее по ходу работы программы - точно так же как и в начале, но не генерируйте новые файлы а просто откройте меню "файлы - просмотр" и посмотрите нужный кусок программы на Си, возьмите что вам нужно и вставьте в вашу программу.

 

     
 

Подробно и с картинками работу с КодВизадом - мастером начального кода
CodeVisionAVR я описал в задаче 1

 
     

 

 

Обязательно читайте Help  к компилятору - по сути это одновременно и учебник  по Си для AVR и именно в нужном вам объеме ! 

Это относится и к другим используемым вами программам.  

Читайте инструкцию и помощь ! 

 

Компилятор CodeVisionAVR  имеет и встроенный программный модуль  для прошивки МК  и конфигурирования фьюзов прямо в схеме.

 


Компания Atmel подсказывает как начать работать 
с этим компилятором Си для AVR: 

AN AVR033  "Getting Started with the CodeVisionAVR C Compiler"

Кстати это один из АпНоутов Atmel - надеюсь вы их уже скачали. 

Если нет то скачайте хотя бы перечень с описаниями

но они все нужны ВАМ !!!

 

 

Для  полного цикла разработки устройства достаточно только одного компилятора CodeVisionAVR. 

Однако, я рекомендую вам, скачать 
еще один компилятор: 

ICC AVR  от компании  Imagecraft


Я использую и его генератор начального кода на Си - 
конфигуратор периферии AVR - в паре с CodeWizardAVR.

Работая в паре, два мастера конфигурирования МК - идеально дополняют друг друга! 

Например конфигурация Таймеров МК по моему лучше, понятней и наглядней сделана в мастере ICC. 

Atmel - подсказывает как начать работать и с этим 
компилятором Си для AVR в Апликейшн Ноуте: 

AN AVR031 "Getting Started with ImageCraft C for AVR"

 

     
 

В компиляторах есть отличные 
примеры программ на Си для 
наиболее часто встречающихся 
задач на МК 

в CodeVisionAVR примеры в папке - CVAVR\Examples 

в ICC примеры находятся в папке - ICC\examples.avr

Примеры - это исходные тексты программ на Си для управления периферией МК и интерфейса (общения) с популярными внешними устройствами. 

Исходники снабжены подробными комментариями! 

Комментарии это то что написано :
- после двух косых черточек
// - в одну строку !
- либо между 
/*  и  */  -  в одну или несколько строк 

Не забывайте и вы комментировать тексты ваших программ! 

Иначе, буквально через пару месяцев, вам будет очень затруднительно понять, что делает тот или иной кусок даже ВАШЕЙ программы!

 
     

 

 

 

Существуют и другие компиляторы.


БЕСПЛАТНЫЙ !

WinAVR (размер 14 Mb) - по честному бесплатный пакет на основе компилятора GCC - о нем очень хорошие отзывы, он создан и 
развивается энтузиастами. 

Создает очень правильный и компактный код!

Есть версия и под Linux.

Этот компилятор хорошо интегрируется 
с симулятором VMLAB
(о симуляторах ниже) 

Вы ставите на ПК WinAVR  и забываете о нем!  

Вся работа идет из симулятора VMLAB  - в нем 
есть пример такой интеграции, находится в папке:

C:\VMLAB\WinAVRdemo 

 

Работать с WinAVR без VMLAB  мне не нравится - потому что 
у WinAVR нет кнопки "компилировать" а компиляция запускается по особому через в ручную написанный make файл - потому
начинающему трудновато разобраться.

 

 

AtmanAvr C/C++ Compiler AVRGCC  - он как и WinAVR основан на GCC но 
имеет отладчик и
ГЛАВНОЕ для начинающего: прекрасный генератор начального кода ! 

и кнопку КОМПИЛИРОВАТЬ !

 

 

 

Самый лучший и дорогой !

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

Компилятор IAR генерирует самый 
быстрый и компактный код.

Demo версия на 30 дней - полностью рабочая без ограничений, нет только исходников включенных в пакет библиотек.  Вы можете скачать DEMO с сайта производителя - примерно 65 Мб. 

Лекарство спросите в конфе, там же и исходники библиотек от полной версии.

 

 

     
 

Примеры программ на Си подходят 
с незначительными изменениями
для 
любых компиляторов и для любых МК ! 

Так как язык Си машино не зависимый - т.е. программы мало 
зависят от того для какого процессора они написаны.

Огромное количество НУЖНЫХ исходников 
(примеры программ) для AVR на Си здесь -
AVRLib  
можно скачать все одним ZIP-архивом.
 

 
     

 

Скачивать большие файлы рекомендую программой ReGet (~ 1,5 Мб) - эта качалка позволяет докачивать файлы после обрыв соединения, в несколько приемов. 


 

 

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

- найдите в DataSheet (ДШ) регистры и устройства МК о которых шла речь, прочитайте о  них подробней.

- если вопросы остались перечитайте снова !

- если вопросы не разрешены, ищите ответ:

1) в help и документации компилятора, симулятора, других используемых программ!

2) поиском Windows в папках и help компилятора и симулятора.

3) поиском Windows в папке где сохранен у вас курс. 

4) в моем не структурированном AVRFAQ - это сборник ответов на часто задаваемые мне по курсу вопросы и советы по применению МК от знающих людей.

Если все же не найдете ответа - задавайте вопрос в конференцию 

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

 

 




 

 

 

Средства отладки программ 
и устройств содержащих МК 

 

 

Симуляторы для AVR 
и электроники


Вы скачали компилятор Си для AVR CodeVisionAVR  и АпНоуты  инсталлировали его и получили  файл прошивку для МК.

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

Для этого удобно использовать специальные 
программы для ПК называемые симуляторами. 


Не имея МК, не покупая эл. компонентов и без пайки 

Без риска спалить что либо ! 

Вы можете проверить работу не только программы загруженной в модель МК но и работу модели целого электронного устройства!

Записать на диск результат его работы для последующего анализа, поиска недочетов.

 

В задачах-упражнениях курса я использую 

Бесплатный симулятор-эмулятор 
для AVR   -
   VMLAB 

скачайте и установите на ПК
  

Несмотря на небольшой размер (около 4.2 Мб),  программа является самостоятельным средством разработки ПО на ассемблере для МК сразу двух производителей: ATMEL.com и ST.com !!! 
В одном флаконе! 



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

Юзер дефайн компонентс -
в общем если вам нужен какой либо электронный компонент отсутствующий в списке VMLAB, вы можете создать его сами! 
в соответствии с ДШ или по вашим потребностям - даже 
не существующий в природе!

 

 

Я сделал упражнение - задачу 3 в которой очень подробно рассмотрел симуляцию программы на VMLAB с картинками. 

Симуляция в VMLAB используется и в других задачах курса

 

     
  В поставку VMLAB включено множество примеров программ и прошивок для немедленной симуляции - эмуляции устройства с МК.

Примеры находятся в папках:  Tutorial  и  AVR_demo

Запустите их и освойтесь, поиграйте 
с симулятором на досуге ...
 
     

 

Есть пример работы VMLAB с CodeVisionAVR ! 
откройте файл проекта 

C:\VMLAB\AVR_demo\codevisi.prj

и по-симулируйте !

При симуляции вы увидите движение по исходному тексту программы на Си, и можете расставлять точки останова программы, наблюдать за изменениями значений в регистрах МК, посмотреть осциллограммы сигналов на ножках МК и многое другое ...  


Уже упоминал: пример работы VMLAB с WinAVR вы устанавливаете winavr в папку по умолчанию и больше ни когда не заглядываете в неё ! 

Вся работа от написания кода на Си до отладки выполняется 
из VMLAB - это очень удобно.  

C:\VMLAB\WinAVRdemo\файлы.prj

захотите попробуете ... 

 

 

     
 

Совет !

Скачайте мою заготовку (Шаблон, "РЫБА" - всего 6 Кб) 
для быстрого старта в совместном использовании 

компилятора CodeVisionAVR и 
симулятора VMLAB с МК ATmega16


Скриншот симуляции программы в VMLAB  
посмотрите здесь: http://avr123.nm.ru/vmlab.png

Распакуйте файлы из архива в папку:

С:\VMLAB\WORK

Теперь откройте проект cv.prj в компиляторе CodeVisionAVR. Вы можете править текст программы 
(исходник) и перекомпилировать его.

Для эмуляции работы устройства откройте 
в VMLAB проект vmlab.prj


Вы можете проверить работу программы на Си для МК ATmega16 мигающей светодиодами и посылающей сообщение через USART на монитор-терминал VMLAB.

Если добавить адаптер MK- rs232 (описан в задаче 6 курса, там же и рекомендации) то сообщения можно будет увидеть на экране ПК. 

В общем качайте ! - это нужно ВАМ !

 

Такая же по сути заготовка - но для компилятора 
ICC - это файлы к задаче 6

 
     

 

 


повторю :

На софт-эмуляторе симуляторе VMLAB мы будем проверять работу программы для разрабатываемого устройства.  


Файл-прошивку для МК (расширение  .hex) созданный в компиляторе будем прогонять в симуляторе МК с внешними компонентами и смотреть что работает, что нет, и как работает... 

При необходимости будем корректировать исходный текст программы 
на Си, опять компилировать, и так по кругу до достижения правильной 
работы устройства. 


Этот процесс называется - отладка программы или дебагинн - очистка от всякой нечисти - "тараканов" и "жучков"...

 

 

Скачав рекомендованные программы - установите 
их на диск С:\  в каталоги :  

CVAVR      ICCv7avr         VMLAB

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

Значит будет проще помочь, ответить на ваши вопросы.

Сделайте архивы установленных программ целиком - это поможет восстановить, случайно испорченные при опробовании программ, файлы примеров и помощи, без переИнсталляции.
 

 

     
 

Хелпы во всех рекомендуемых программах качественные  и подробные!

НЕ забывайте их читать! 

Они написаны для ВАС

Как, в прочем, и этот курс ... 

 
     

 

 

 

Не обязательный для курса

но   ВЕЛИКОЛЕПНЫЙ ! 

Пакет для разработки электронных устройств 
от схемы до печатной платы 

PROTEUS

Действительно супер ! 

Очень советую !

Во первых PROTEUS может симулировать несколько МК  в одном устройстве, причем не только AVR но и PIC и Motorola и 8051 и даже ARM7 вперемешку !  

Во вторых в поставку PROTEUS входит очень много моделей компонентов. 

В третьих  вы можете симулировать любые электронные устройства и не 
содержащие МК и очень сложные и электро-механические системы - это очень полезно, 

 

Вам нужно проверить какую то идею 
или вариант реализации чего либо ? 

Вы можете не паять, не искать детали, запоминающий осциллограф и другие измерительные приборы, а

Просто "соберите" вашу схему в PROTEUS и посмотрите как 
она будет работать, каковы будут выходные параметры.

PROTEUS - симулирует очень реалистично ! 

И главное наглядно видна работа устройства, 
напряжения и токи в нем.

В четвертых  

PROTEUS - по сути справочник электронных компонентов 

Когда вы просматриваете библиотеки для добавления компонента на схему - вам сразу показываются его основные свойства и корпус компонента - какова его площадка на плате. Просто класс ! 

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

 

в пакет включены отличные 
примеры работы в  PROTEUS  

примерно 60 устройств готовых к симуляции.

Это : 

- дата логер на жесткий диск (есть модель IDE HDD ! ) 
- можно поиграть в шахматы с ATmega128 !!! (есть модель "точскрина" ) 
- есть пример работы с графическим LCD дисплеем 
- управление шаговым двигателем 
- управление электродвигателем
- управление servo

- радиочастотные схемы, трансформаторы, линии передачи.

- конечно кнопки, индикаторы, светодиоды, связь с ПК, разные датчики, память

- конечно есть виртуальные приборы.

- отладка интерфейсов UART  i2c  TWI  SPI

... Короче все примеры "весят" 16 Мб в распакованном виде !

Вы можете скачать DEMO версию (около 26 Мб) - она полностью рабочая !  Только одно ограничение - не позволяет вам сохранить результат вашей работы. 

Можно конечно захватывать изображение экрана кнопкой "PrtSc"

А можно поискать и поспрашивать полную версию программы ...  

Кто реально ищет - тот находит всегда ! 

 

 

 

Читайте Краткий Курс  Самоучитель    PROTEUS                     

Симулятор электронных устройств ПРОТЕУС, поддерживает микроконтроллеры   AVR , 8051, PIC10, PIC16, PIC18, ARM7, Motorola MC68HC11 

Полная система проектирования !

От идеи до результатов работы устройства 
и файлов для платы.

Быстрый старт, самые первые шаги ...

 

 

 

А если нет модели нужного 
вам компонента ?

     
 

Вот что я придумал ! 

Если вы не находите модели нужного вам компонента, то вы можете изобразить ее с помощью еще одного МК и возможно некоторых существующих компонентов. 

Дело в том что симуляторы не против не реально высокой частоты работы симулируемого МК - я пробовал 500 МГц в PROTEUS и все работает. 

Думаю вычислительная мощность МК в таком режиме позволит вам изобразить что угодно.

 

Преимущество моего метода 

Вам не нужно изучать методику и иметь инструментарий для создания моделей для VMLAB или PROTEUS стандартным способом. Вы лишь лишний раз поупражняетесь в программировании МК с которым работаете. 

Кроме того теперь PROTEUS не работает с моделями созданными без специально полученного кода для создания модели !  А по моему  методу вы сможете делать модели и при желании продавать их не имея такой лицензии и законно!

Надеюсь вы попробуете такой финт ушами ...

 
     

 

 


Итог этой страницы курса :

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

 

 

 

<- Назад                    Дальше ->

 

 

 

 

 

 

 

 

 

 

 

 

ключевые слова: программирование микроконтроллеров, как написать программу для микроконтроллера, обучение программированию микроконтроллеров, микроконтроллеры atmega128, как запрограммировать микроконтроллер, как прошить микроконтроллер, отладка программы для AVR, моделирование работы электронных схем, электронные проекты, хобби, язык си для микроконтроллеров, язык программирования си Основы программирования (кнопочки, светодиоды) Работа с портами. Прерывания и таймеры. Основы ШИМ, программная и аппаратная реализация. Сервоприводы. Работа с АЦП Настройка и программирование UART Работа с I2C Связь (UART, I2C, SPI) 
AT76C712 , AT76C713 , AT90CAN128 , AT90CAN128 Automotive , AT90CAN32 , AT90CAN64 , AT90PWM2 , AT90PWM3 , AT90S1200 , AT90S2313 , AT90S2323 , AT90S2343 , AT90S4433 , AT90S8515 , AT90S8535 , ATmega128 , ATmega1280 , ATmega1281 , ATmega16 , ATmega161 , ATmega162 , ATmega163 , ATmega164 , ATmega165 , ATmega168 , ATmega168 Automotive , ATmega169 , ATmega2560 , ATmega2561 , ATmega32 , ATmega323 , ATmega324 , ATmega325 , ATmega3250 , ATmega329 , ATmega3290 , ATmega406 , ATmega48 , ATmega48 Automotive , ATmega64 , ATmega640 , ATmega644 , ATmega645 , ATmega6450 , ATmega649 , ATmega6490 , ATmega8 , ATmega8515 , ATmega8535 , ATmega88 , ATmega88 Automotive , ATtiny11 , ATtiny12 , ATtiny13 , ATtiny15L , ATtiny2313 , ATtiny25 , ATtiny26 , ATtiny28L , ATtiny45 , ATtiny85

 

 


AVR раз, два, три...   это просто!

действительно Краткий Курс !

МикроКонтроллеры AVR Начинающим "с нуля" 

Hosted by uCoz