Схема ардуино для proteus

Схема ардуино для proteus
Схема ардуино для proteus
Схема ардуино для proteus
Схема ардуино для proteus
Схема ардуино для proteus

 

Краткий учебный курс PROTEUS  обновлен 8 дней назад.
Самоучитель PROTEUS

PROTEUS это супер программа для полного цикла разработки электроники, для создания схем радио электронных устройств, для моделирования электронных устройств - симулятор электроники аналоговой и цифоровой. PROTEUS позволяет достаточно реалистично моделировать микроконтроллеры  AVR , 8051, PIC10, PIC16, PIC18, ARM7, Motorola HC11 и всю схему в которой они работают и ARES для проектирования печатных плат.               

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

Главное - в PROTEUS вам доступна МАССА виртуальных приборов и источников сигналов - то чего всегда не хватает любителю !   Осциллограф 4 лучевой записывающий - причем в схеме вы можете использовать их несколько одновременно. Супер мощный анализатор GRAPH - в нем может быть сколько угодно цифровых и аналоговых сигналов одновременно и таких графов тоже можно использовать несколько в схеме.

Примеры работы с анализатором GRAPH  в папке  Proteus\SAMPLES\Graph Based Simulation  начните с примеров - Plltype2.DSN  Mixed.DSN  
DAC0808.DSN  и  Invosc.DSN  и вам станет ясно, что это за ЗВЕРЮГА!

  Полный скриношот с логическим анализатором GRAPH.


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

В примерах PROTEUS есть шахматный компьютер на микроконтроллерах -
AVR,  PIC,  8051 и большом "тачскрине" - работают прекрасно и демонстрируют некий интеллект.

 

Cкачать PROTEUS можно в google.com запрос:  скачать proteus 7.10    это самая стабильная версия на 2014-01 версия 8 доступна но стабильно работающей я не нашел пока.

 

PROTEUS  содержит более 200 примеров показывающих как использовать его возможности - смотрите их и учитесь.

Вот только перечень папок с примерами - и в каждой их множество ...


 

    Рейтинг@Mail.ru  

 

Великолепнейший FAQ по PROTEUS на русском языке !
    Спасибо его создателю !       Вариант в .PDF в архиве с PROTEUS 7.6 sp0

Конференция с МОРЕМ ответов на вопросы по PROTEUS ! 

ВНИМАНИЕ - чтобы получить ответ быстро и без переспросов - прикладывайте к вопросу ваши проекты в PROTEUS и в компиляторах - указывайте версии программ в исходниках. 

Чем больше информации вы дадите в вопросе - тем проще будет вам помочь и помощь будет точнее ! 

Выкладывать без регистрации файлы удобно на http://zalil.ru/ а картинки на http://saveimg.ru/

 

Реклама - радиодетали почтой недорого:


 

 
Советы

Не создавайте проект в PROTEUS с нуля!

Откройте пример из папки SAMPLES и модифицируйте
его под свою схему, задачу.    Пример -> как шаблон.

По ходу модификации проекта, чаще запускайте симуляцию, чтобы сразу обнаружить источники возможных проблем !
 

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

 

 

Запустите PROTEUS -> ярлык  ISIS 7 Professional
Зайдите в меню File -> Open Design...
обычно открывается папка с примерами - SAMPLES.  Откройте папку

C:\Program Files\Labcenter Electronics\Proteus 7 Professional\SAMPLES\VSM for AVR\One-Wire\NETWORK

Вы увидите файл проекта PROTEUS -  1WIRE_NET.DSN  - двойным щелчком по названию откройте проект.  Разверните окно PROTEUS на весь экран щелкнув по квадратику в правом верхнем углу.

Вот что у вас должно получиться (часть картинки)

Старт Шаг Пауза Стоп

<-    это кнопки управления симуляцией.

Для навигации по схеме мышкой перетаскивайте область видимости схемы - это зеленый квадрат вверху слева на картинке.

Масштаб изображения можно менять с помощью колеса на мышке или с помощью инструментов "лупа +" и   "лупа -" в верхней панели инструментов. 

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

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

Внимательно изучите это меню  - кроме манипуляций положением компонента вы видите "молоток" - он позволяет разобрать сложный компонент на его "кусочки-кирпичики" поправив которые по своему можно опять собрать компонент кнопкой "Make Device". Вы видите вызов справки по компоненту и даже линк на скачивание даташита ! Очень удобно. Используйте. "Packaging Tool" позволяет редактировать корпус. "Show Pack ..." - показывает корпус компонента.

Фиолетовый жук - БАГ - это очень гибкие настройка опций симуляции.


Это меню можно открыть и не выделяя предварительно компонент - а просто сразу щелкнув на нем правой кнопкой мыши.


Свойства компонента  - сделайте двойной щелчок левой кнопкой мышки по компоненту и откроется окно его свойств.  О нем чуть ниже.


В левой верхней области экрана вы видите мини макет страницы со схемой проектируемого устройства и чуть ниже панель DEVICES  - это компоненты которые использованы в проекте :

Кнопка с буквой  "Р"  открывает форму поиска компонента в библиотеках PROTEUS для добавления в схему.  

Кнопка с буквой  "L"  открывает менеджер библиотек - с его помощью вы можете подключать новые библиотеки компонентов.

Вы видите микроконтроллер AVR  AT90s8515 

Несколько компонентов компании DALLAS - MAXIM - все они подключены по схеме к одному проводу интерфейса 1-Wire. 

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

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

   

Я уже предупреждал вас - PROTEUS это интерактивный
справочник по электронным компонентам! 

Значит мы можем узнать что это за компоненты.
 


Кликните кнопку с буквой  Р.  Откроется форма-меню поиска и выбора компонентов "Pick Devices". 

В поле - "Keywords"  вводите ключевые слова - любая часть названия компонента, или класса компонентов, или ток, напряжение, типа транзистора - то, что вы знаете и помните о нужном вам компоненте 

Вот пример поиска компонентов в базе PROTEUS на ток 60 ампер - Изображение.

Теперь введите ds2 и затем выберите щелкнув мышкой верхний из 4-х найденных компонентов - DS2405. В поле "Description" (описание) видим "адресуемый переключатель" - т.е. к этому прибору можно обратится по его адресу и "приказать" ему сделать на выходе PIO лог.  "1" или "0" и возможно перевести выход в высоко импедансное Z-сотояние - ножка с очень большим сопротивлением практически не проводящая тока - т.е. не влияющая на то, что к ней подключено.  



Я пишу возможно потому что не знаком с этим компонентом и у меня нет под рукой его ДатаШита. 


Подробнее о лог."1"  лог."0" и Z-сотоянии - читайте на стр. 2 курса по AVR и PIC.


В правой части формы можно увидеть название модели компонента, его изображение на схеме, а ниже его "FootPrint" - это то как будет выглядеть его место на печатной плате. Еще ниже название корпуса компонента - тут TO92 - это маленький трех выводной пластиковый корпус в виде цилиндра чуть меньше 5х5 мм с плоскостью на цилиндрической части.


 

Квадрокоптер, Мультикоптер, Автопилоты, БПЛА, ДПЛА, Роботы, системы автономной навигации - системы под ключ и обучение.
Дистанционное видеонаблюдение, фотографирование, выкладка и забор грузов, развлечения розыгрыши, военизированные представления, учения, игры, пэйнтбол высоких технологий. Слежение за животными, отлов и обездвиживание животных. Закраска камер видео наблюдения и смотровых окон.

Недорогие БПЛА ДПЛА беспилотники готовые к работе от 450 $.

Есть дорогие аппараты с дальностью полета до 2800 Км Грузоподъемность до 160 Кг. Но довольно дорого !

 

 


Другая часть 1-Wire приборов на схеме начинается на  ds1 - введите эти символы в поле ключевых слов.  

Теперь найдено 8 приборов. Причем они расположены в 2-х категориях. 

Я выбрал мышкой DS18s20  - в описании написано: "Высоко точный 1-Wire цифровой термометр". На схемном изображении этого компонента видно некоторое поле напоминающее дисплей - так и есть, в нем наверняка будут выводится какие то данные в процессе симуляции.

 

Надеюсь вы поняли процесс поиска и выбора нужного компонента. 


Поместить компонент на схему можно кликнув "ОК"  затем поместите указатель мыши 
в нужное место на листе схемы и щелкните мышкой. Компонент окажется на схеме. Если таких компонентов надо несколько - то сделайте несколько щелчков мышкой в нужных местах.  Потом можно разместить и развернуть компоненты так как вам удобно.

Внимание !  Компонент   интерактивный. 

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

Температура отображается на дисплее компонента. 

VCC - это + питания датчика DS18s20 
GND - "общий провод" или "земля"
DQ - линия данных.

 

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

Отменить выделение ВСЕХ выделенных компонентов можно щелкнув правой кнопкой мыши в пустом месте схемы.

Удалить компонент или любой элемент со схемы можно двумя кликами правой кнопкой мыши по нему. 

 

 

       

Левая панель инструментов - верхняя часть

L1 открыть панель DEVICES - компоненты проекта и поиск новых L2 поставить точку соединения проводников вручную   L3   дать название проводу  -  одноименные провода электрически СОЕДИНЕНЫ !   L4   добавить текст в произвольное место схемы   L5   проложить шину - это жгут проводов - на схеме жирная темно синяя линия   L6   создать под-схему - т.е. некий блок содержащий в себе свою схему и соединители.   L7   кликом по компоненту сразу открывает редактирование его свойств. 


L3 и L5 - очень полезны ! они позволяют не превращать схему 
в нечитаемую паутину из проводников - используйте!

 
8
                           Левая панель инструментов - средняя часть   L8   TERMINALS - питание, земля, межблочные соединения, выводы.   L9   добавить вывод к создаваемому компоненту.   L10   GRAPH - графич. отображение, сохранение и МОЩНЫЙ анализ результатов симуляции   L11   "магнитофон" для записи в файл и воспроизведения данных.    L12   генераторы любых напряжений, токов т вывод их из файлов данных.   L13   указать точку измерения напряжения на проводнике.   L14   указать точку измерения тока на проводнике.   L15   Virtual Instruments  -  измерительные приборы   L16   прокладка проводников на схеме, проводники можно называть с помощью  L3


L10 - L15  - это инструментарий моделирования работы электронного устройства - т.е. главное в PROTEUS ! 

Помощь находится в меню:     Help  ->  Proteus VSM Help 

Часто в свойствах компонента есть кнопка "Help" - она открывает раздел справки именно по данному компоненту или модели.

 

Пожалуйста !

Посимулируйте примеры из папки \SAMPLES\Simulation  

ЭТО  НУЖНО  ВАМ !

 

 

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

они расположены в низу левой панели инструментов.

Первая и вторая - вращают на 90 градусов, ниже 
поле для указания произвольного угла поворота, 
еще ниже стрелки зеркального переворота компонента. 

Такие же кнопки есть в выпадающем меню по двойному
щелчку леыой кнопкой мышки по компоненту.  

 

4 кнопки управления симуляцией. 

"Пуск" - запуск симуляции или продолжение приостановленной симуляции. 

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

"Пауза" - пауза симуляции. Можно продолжить кнопками "Пуск" или "Шаг"

"Стоп" - остановка симуляции. После этого симуляция начнется сначала кнопками "Пуск" или "Шаг"

 

 

Напомню - у нас открыт проект  - 1WIRE_NET.DSN  

Откройте панель редактирования свойств компонента (Edit Component) микро контроллер AVR ATmega8515 - двойным щелчком по МК левой кнопкой мыши. Щелкните по кнопке "Hidden Pins" (скрытые выводы) - откроется дополнительное меню в котором показано как по умолчанию называются узлы (проводники) схемы к которым подключены питание МК - VCC и его общий провод - GND. Изменение этих названий позволит подключить питание МК к другим узлам схемы - это может потребоваться вам при питании МК или других компонентов разными напряжениями или от разных источников. 

  

Нажмите "ОК" чтобы закрыть панель скрытых выводов и посмотрите внимательно
на содержимое панели редактирования компонента. 

Главное для МК это программа по которой он будет работать. 

В поле "Program File" нужно указать:

.cof  -  если вы хотите вести отладку по исходнику - по тексту программы на языке Си в
                компиляторе CodeVisionAVR - CVAVR - я очень рекомендую его вам ! 

.elf    -  файл если вы хотите вести отладку по исходнику на языке Си программы созданой в компиляторе   WinAVR   - это отличный компилятор, БЕСПЛАТНЫЙ и профессиональный, но новичкам немного затруднительно его использовать.

UBROF -  формат файла если вы хотите вести отладку по исходнику на языке Си программы созданой в компиляторе  IAR   - это самый лучший компилятор для AVR, но новичкам ОЧЕНЬ затруднительно его использовать.

.obj  - если вы будете отлаживать программу из BASCOM-AVR в PROTEUS

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

 

Все файлы проекта располагайте
в папке с проектом PROTEUS !
 

Вот так выглядит окно свойств микроконтроллера в версии 7.4 и выше

Галочки в низу с лева, с верху в низ  - "исключить компонент из симуляции", "исключить из разводки платы", "редактировать свойства в текстовом формате".

Советую ознакомится со всеми опциями по help.


Clock Frecuency  - частота такта.  Здесь в PROTEUS задается на какой частоте будет работать МК.  Однако в AVR имеет значение установка фьюзов в свойствах микроконтроллера.

 

Если ваша программа подразумевает наличие данных в  EEPROM  МК ( эти данные сохраняются при выключении МК )  то файл с ними можно указать в этом же диалоге :


Конвертировать форматы данных  .bin .hex .epp
можно в программаторе - CVAVR

 

 

 

Ассемблер в PROTEUS - ДА !
для AVR, PIC, 8051, Motorola

Если у вас есть "исходник" текст программы на ассемблере  .asm или вы хотите написать программу на ассемблере в PROTEUS -  вам нужно указать в свойствах микроконтроллера название .hex  файла прошивки  и еще через  меню:  Source (исходник, источник)  далее:  Add/Remove Source File... (добавить - удалить исходник на ассемблере)  - добавить название файла с текстом программы на ассемблере и выбрать нужный ассемблер:


Теперь при запуске симуляции будет происходить ассемблирование файла   t15demo.asm  
и  если нет ошибок, то МК начнет работать уже по обновленному файлу   T15DEMO.HEX 

Это скриншот из проекта-примера PROTEUS в папке
SAMPLES \ AVR Tiny15 Demo

 

В нашем проекте эти поля ПУСТЫЕ !  Так как мы используем файл .cof создаваемый и обновляемый  компилятором CVAVR  CodeVisionAVR

 

 

Итак :

Чтобы симулировать в ПРОТЕУС работу микроконтроллера достаточно 

1) найти его в библиотеках и поместить на схему  
2) указать какую программу он должен выполнять   (как описано выше)
3) указать частоту тактирования МК ( для AVR - комбинацией фьюзов )

Всё очень просто.

В микроконтроллерах PIC надо подтянуть MCLR к питанию напрямую или через PULLUP. 

 

Повторю - это важно:
CLOCK - однозначно определяет частоту тактирования МК при симуляции PIC и ARM. 
Учтите что в свойствах некоторых МК указаны параметры встроенного делителя частоты - он работает с версии 7.4  - значит его установки влияют на частоту с которой выполняются инструкции в микроконтроллере.

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

WDG_CLOCK  - показывает частоту работы RC генератора сторожевого таймера. 
Хотя она и обозначена  1MHz  -  "собака" не включена пока мы не добавим в свойства 
МК строчку:  {WDGON=1}   -  вам не нужно ее включать.

 

 
На рисунке видно, что МК будет работать по программе определяемой файлом ds1990.cof  - его создал компилятор CVAVR.

Компилятор WinAVR создает файл с раcширением .elf  - вы можете попробовать пример из папки  SAMPLES\AVR and SED1520  В нем
указана программа для МК EW12A03GLY.hex  - замените ее на EW12A03GLY.elf  -  и вы сможете видеть движение программы
по исходнику на Си и АСМ-е.
 

 

Значение других параметров  можно узнать в справке по кнопке - Help

 

 

 

 

 

 

 

 

Перечень поддерживаемых микроконтроллеров AVR, как подключать файлы с отладочной информацией и ограничения моделей.


Очень важно знать что НЕ симулирует модель МК - Model Limitations

 

Пример - ограничения моделей ATmega8   ATmega16  ATmega32
1) симулируется обычно используемый режим UART - асинхронный прием и пердача. 
2 ) и 3) частота тактирования при симуляции зависит только от параметра CLOCK задаваемого в свойствах AVR на схеме.
Все же 3) ошибка наверно -
делители работают в 7.4 и выше.

И для AVR надо устанавливать фьюзы.

4) биты  boot lock  не моделируются 
5) JTAG  не моделируется

 

 

В общем - все что нужно моделируется !


 

 
 

PROTEUS  - лучше устанавливать для
пользователя с именем из латинский символов !
Либо делать путь к папке  \temp  без кириллицы.

Не используйте кирилицу в названиях проектов и файлов.

Чтобы отлаживать в PROTEUS функции PRINTF и SCANF
в программах созданных в компиляторе CodeVisionAVR зайдите в меню CVAVR - "прожект" - "конфига"  - "С компилер" и в списках этих функций выберите "Long..." или "Float..." и затем "ОК".

 

 


 

Пора запустить симуляцию.


Кнопки управления симуляцией я уже описал выше. 

А давайте запустим симуляцию "по хитрому" - укажем сколько времени программе работать и потом остановиться.  Откройте меню DEBUG и щелкните пункт "Execute for specified Time" - значит приказ "Отработать указанное время" - впишите время выполнения "198m"  - это значит отработать 198 милиСекунд - нажмите "ОК" - программа поработает и остановится - внизу под схемой будет указано время - 0.198000000 секунд.

Помните ! Выполнение такой команды и вообще симуляция, могут быть прерваны "точкой останова" или другим отладочным событием останавливающим симуляцию.
 

Множители в PROTEUS

p - пико x10-12   n - нано x10-9  u - микро  x10-6  m - мили x10-3 
k или K - кило x103         M - мега  x106 
 

Сейчас можно было бы повторить такое же время или задать иное.  А вы нажмите "ПАУЗА"  - вот что у вас должно быть на экране после щелчка по меню DEBUG :

Вот скриншот.  Вы видите в верхней части меню команды управления ходом симуляции - моделирования устройства и соответствующие горячие клавиши.
Ctrl+F12 - начать симуляцию с начала.
F12 - пуск моделирования, продолжение если мы в паузе или стоим.
Alt+F12 - позволяет моделировать не останавливаясь на "точках останова" - "Breakpoints" -                        о них подробней ниже.
F10 - проскакивать функции
Ctrl+F10 - выполнить до строки отмеченной щелчком мышки
                        (но ваша строка может оказаться не достижима по алгоритму программы)
F11 - пошаговая симуляция
Ctrl+F11 - выйти из симулируемой функции

 
 

Нижняя часть меню. В ней находится ЖУК - это настройка диагностики, реакции на события в моделируемых устройствах и настройка сообщений отладчика PROTEUS.
Ниже расположены  разделы отдельных компонентов на схеме. При наведении указателя на компонент показывается, что можно просматривать в специальных окнах при симуляции.   

Помощь по симуляции МК находится в разделе - Proteus VSM Help  
SOURCE  LEVEL  DEBUGGING  WITHIN  PROTEUS  VSM

 
При симуляции устройства на экране мы будем видеть анимированную картинку. Режим анимации можно изменить через меню System  >  Set Annimation Options...   
 

Обычный режим - экран обновляется 20 раз в сек.

- отображать напряжение и ток на щупах  L13 и  L14 

- под Цвечивать логические уровни на выводах.

- показать цветом напряжения на проводниках  (нет галочки)

- показать стрелками направление тока в проводниках  (нет галочки)

Максимальное напряжение не ограничивает напряжение в симулируемой схеме!

Оно указывается для того чтобы ПРОТЕУС PROTEUS мог решить каким цветом показывать логические уровни - цвета у ноже компонентов означают:
"Красный" - логическая "1"
"Синий" - логический "0"
"Серый" - неопределено - высоко импедансное "Z - состояние" (выше толковал уже).
"Желтый" - конфликт на линии.

Шаг оцифровки тока 1 мкА - вы можете уменьшить этот параметр и улучшить другие параметры для повышения точности симуляции - но это потребует бОльшей вычислительной мощности и замедлит моделирование.

SPICE Options - открывает настройку симуляции моделей, но не думаю что вам нужно туда лезть - там довольно сложные параметры.

Справку по каждой строчке можно получить щелкнув по знаку вопроса ? и подведя лампочку к интересующему пункту.

 

Если у вас еще не открыт проект 1WIRE_NET.DSN  - откройте его. 

 

Щелкните  "СТОП" и нажмите "СТАРТ" он же "ПУСК"

Выскочит окно виртуального терминала ПК и примерно за 1 секунду программа 
МК сделает все, что от нее требовалось :

Это вывод из USART МК на виртуальный COM порт ПК по интерфейсу
RS-232 в терминал PROTEUS списка опознанных устройств на шине
1-Wire и их серийных номеров.  

  При анимации логические уровни на выводах указываются цветными квадратиками.

Красный - "Горячий"  лог. "1"

Синий - "Холодный"  лог. "0"

Серый - высоко омный ВХОД "Z-состояние". Для определенности ПРОТЕУС считает что на выводе половина напряжения питания МК.

Желтый - конфликт на линии. Например линия замкнута на землю а программа в МК пытается сделать на ней "сильную" лог. "1".

"сильную" - в моей терминологии это значит не pullup , а ножка настроена как выход и в порт записывается "1".

Номер "таблетки" для домофонов DS1990 написан на ней.  Серийные номера приборов DSxxxx заданы на заводе и не изменяемы. В ПРОТЕУС эти номера задаются в окне редактирования свойств компонента и надо поставить "No" у "Automatic Serialization" что бы выводились заданые вами номера.

 

Нажмите кнопку "Стоп".  Окно терминала пропадет. 

Давайте отключим один 1-Wire прибор. Кликните правой кнопкой мыши на проводе от микросхемы U5 и затем левой щелкните красный крест - это удалит провод со схемы и отключит прибор от провода 1-Wire. 

Нажмите кнопку "Пуск".  Опять появится терминал PROTEUS но в списке опознанных приборов уже не появится отключенная U5 и уменьшится число найденных приборов до 6.  

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

1) Нажать кнопку отмены действия в верхней панели инструментов.
2) Проложить проводник заново. Выберите инструмент L16 - "проводник"  - косая черточка над синим квадратом на левой панели инструментов и проведите провод от компонента U5 к проводу 1-Wire удерживая нажатой кнопку мыши и щелкните при касании провода - появится точка соединения проводников.

Снова запустите симуляцию и убедитесь что прибор опять опознан и считан. 

 

  Виртуальный терминал

Один из важнейших инструментов отладки РЕАЛЬНЫХ устройств на МК - Virtual terminal - моделирующий терминал ПК обменивающийся данными с UART (USART) МК.

Как использовать его в отладке я рассказал в задаче 4

Терминал (Virtual Terminal) находится под кнопкой L15 - "виртуальные инструменты". В ПРОТЕУС вы можете не согласовывать уровни RS232 и UART микросхемой типа MAX232, а подключать терминал напрямую к МК. 

Терминал поддерживает служебные символы ASCII  - 
 управления выводом текста:  
CR (0x0D), BS (0x08) и BEL (0x07). LF (0x0A) и остальные служебные коды игнорируются, т.е. выводятся как обычные числа.

Поддерживаются скорости от 300 до 57600 бод ,
Формат данных 8N1и другие. 

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

Выводы RTS и CTS  можно не соединять и не подключать вообще - хотя они 
работают как в настоящем COM-порту ПК. Терминал может передавать что-то только при отсутствии лог "0" на выводе CTS

Можно использовать несколько терминалов в одной схеме.  

Если щелкнуть мышкой в окне терминала то он начнет передавать набираемые 
на клавиатуре ПК символы на ножку  TXD.  Можно вставить из буфера обмена 
информацию которую терминал так же будет выводить на ножку  TXD. 

Передаваемая с терминала информация не отображается в окне терминала!  Курсор остается на месте. Однако вы можете поставить галочку у "Echo Typed Characters" щелкнув правой кнопкой в окне терминала при симуляции  и тогда вводимый в терминал текст будет виден.


Пожалуйста прочитайте подробнее о терминале по
кнопке "Help" в его свойствах. 

Не забывайте о компоненте COMPIM который позволяет 
вашему виртуальному устройству подключится к
реальному COM-порту вашего ПК  !

Вот VIDEO Видео инструкция
как подключить реальный COM порт в PROTEUS.

 


 

 

 

РеСтартуйте и приостановите симуляцию 

для этого нажмите "Стоп" затем "Старт" и "Пауза" либо просто "СТОП" - "Пауза"  
на экран повыскакивают "pop-up" окна с отладочной информацией
Перечень этих окон задается в низу выпадающего меню DEBUG  - щелкните в меню

2. Watch Window - окно слежения наблюдения за данными в МК.

После настройки оно не исчезает с экрана и при симуляции и нахождении в паузе. В этом окне вы можете размещать регистры МК и не только отслеживать их содержимое по ходу программы, но и задавать некоторые условия и действия при достижении этих условий - например остановить симуляцию. Щелкните правой кнопкой мыши в этом окне и выпадет меню для добавления наблюдаемых регисторв - по имени Alt+N  или по их адресу Alt+A.  Выбрав "добавить по имени" вы увидите окно со списком всех регистров ( что такое регистр ? ) данного микроконтроллера - двойной щелчок по названию регистра поместит его в Watch Window - по завершении выбора нажмите "Done" - "сделано".  

Если перед названием регистра в Watch Window стоит квадратик с плюсом значит
вы можете развернуть регистр на группы функционально связанных битов.


 
Шрифт (Font) вы можете изменить по своему желанию 
как здесь, так и в большинстве других окон.
 


В окне Watchpoint Condition можно задать некоторое условие для наблюдаемого регистра и что делать симулятору при его возникновении - т.е. это
"точка останова" симуляции :  

   

1) Отключить слежение

2) Остановить симуляцию если
верно хотя бы одно условие

3) Остановить симуляцию если
верны все условия.

 

 

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

Окно с текстом этой программы:    AVR Source Code - U9

При симуляции в ПРОТЕУС этого примера сделанного на старой версии CVAVR - это окно не помнит какой исходник показывать если в нем нет активных точек останова ! 

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

CVAVR  CodeVisionAVR до версии 2 создавал копию файла исходного кода программы  .с  которую называет добавляя два знака подчеркивания перед точкой  __.с  и именно на этот файл содержит ссылки файл .cof   с  отладочной информацией  используемой симуляторами и ПРОТЕУС -ом тоже.

 

 
Важно ! 

Файл .cof  может содержать абсолютные адреса, поэтому не стоит его
и связанные с ним файлы перемещать  после компиляции !

Я рекомендую все файлы компилятора и PROTEUS
размещать в одной папке проекта. 
 


 

После указания файла с исходным текстом программы он появится в
окне - я добавил мышкой несколько точек останова :


Берюзовые цифры - показывают адреса строк программы на которые можно поставить точки останова программы - строки можно выделить (подсветить темно-синим)
кликом мышки и затем:

Двойным кликом или кнопкой F9 поставить точку останова (BP) - красный кружок.  

Программа дойдя то этой точки остановится в режиме "ПАУЗА" - т.е. повыскакивают
pop-up окна с отладочной информацией.  

Если нажать F9 еще раз, или еще раз сделать двойной щелчок по строчке - то BP выключится - станет красной окружностью и программа не остановится на ней.

Если нажать F9 еще раз, или еще раз сделать двойной щелчок по строчке - то BP исчезнет.

В меню DEBUG есть команда Alt + F12   - игнорировать  любые BP  

BP - очень эффективны при отладке программы. 

ВАЖНО!!! Не оставляйте в программе неиспользуемые функции - оптимизатор компилятора их выкинет и у строк программы ниже них не будет адресов и вы не сможете ставить там точки останова.

в PROTEUS есть и "железные" BP  - вот их перечень

Список аппаратных ("железных") точек, событий останова симуляции - BP

ВАЖНО ! Посмотрите внимательно какие это мощные инструменты для
отладки - они позволяют засечь массу событий
- изменение логического уровня на проводнике.
- изменение логического уровня на шине - на группе проводников.
- достижение различные напряжений и токов
- выход напряжения или тока из заданного диапазона ...

Давайте попробуем точку останова "1 бит" - устанавливаемую на один
проводник в схеме. Добавьте эту  BP  на провод 1-wire в нашей схеме вот так:

Затем двойным щелчком по ней откройте свойства этой аппаратной  BP

В поле "Trigger Value" указывают значение при возникновении которого эта BP остановит симуляцию - в данном случае это логическая "1" на проводнике - т.е. когда в проводнике возникнет фронт сигнала - переход из "0" в "1" - симуляция остановится. 


Запускаем моделирование нашего устройства, если вы установили 3 точки останова в программе как на скриншоте который был выше то программа вначале будет останавливаться на некоторых из них  - в низу схемы выводится сообщение о причине остановки и время с начала симуляции.  Нажимайте "ПУСК" пока причиной остановки не станет  DBT1 - щелкните на "6 Message(s)" - появится окно лога симуляции - в нем указана причина и время остановки.

Если поставить еще одну BP  на эту же линию и событием в ней назначить "0" то можно отслеживать любое изменение логического сигнала на данном проводнике.
Выше в списке вы видели что такие BP есть до 16 бит шириной.

 

Закончите симуляцию - нажмите кнопку "Стоп".

Отключите BP - это можно сделать так:
- удалить BP из схемы
- отсоединить от проводника удалив провод от BP 
- в свойствах BP поставить галочку "Exclude from Simulation" - "исключить из симуляции".

 

Нажмите "Пуск". 

Программа остановится на 1-й точке останова и выскочит окно с исходником на Си. Строчка на которой остановилась программа будет подсвечена серым цветом и на нее будет указывать красный треугольник слева от BP.  В окно терминала будет выведена информация:

 

Я вручную переместил окна для этого скриншота. Размещайте окна и задавайте 
им размер так чтобы удобно было видеть их на экране. 

 
Важно !  По тексту выведенному в терминал мы видим что остановка происходит до выполнения строки на которой находится BP
   

 

Нажмите "ПУСК" - программа остановится на следующей точке останова  - 
т.е. на следующей строчке программы. В окне терминала видно что произошло 
выполнение предыдущей строки программы. 

 

Переменные их адреса  и содержимое в окне  AVR Variables

Посмотрите, в программе объявлены : 

Глобальный массив байтов  rom_code - он двумерный 8 на 9.  
Локальные переменные символьного типа :    i, j, devices, n.  

Что такое локальные и глобальные переменные вы можете
почитать в Язык Си для микроконтроллеров МК

 

Обратите внимание ! Для локальных переменных не указаны адреса и значения - это не удобно при отладке. Если вы хотите отслеживать какие то переменные в PROTEUS то сделайте их глобальными и проследите чтобы они не размещались в регистрах AVR а были в RAM памяти.

В данном примере переменные

main() {
   unsigned char i,j,devices;
   unsigned char n=1;

можно сделать глобальными поместив их перед   main()  вот так:

   unsigned char i,j,devices;
   unsigned char n=1;

main() {

Затем надо в свойствах проекта CVAVR в закладке "C Compiler" снять галочку
у "Automatic register allocation" и скомпилировать проект заново.

Теперь переменные и их значения  видны:     
( Скачайте CVAVR и вы сами так сделаете )

 

Щелкнув правой кнопкой в окне переменных - вы откроете меню в котором можно: 

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

 

Щелкнув правой кнопкой в окне исходника - "AVR source code"
вы откроете меню в котором можно: 
 
- включить нумерацию строк программы 
- включить или выключить все BP 
- найти что-то в исходнике 
- перейти на нужную строку программы.
- изменить шрифт в окне.
Ctrl+D  - включить отображение ассемблерных инструкций реализующих
код программы написанной на  Си  - это очень удобно:


На ассемблерном коде вы тоже можете ставить "точки останова" программы -  BP
 

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


Теперь поработайте сами  -  по-симулируйте, расставьте 
точки останова так, что бы отследить алгоритм работы программы. 

Вы можете изменить и перекомпилировать программу в компиляторе
CodeVisionAVR и посмотреть результат в PROTEUS.

 


Использование виртуального осциллографа и логического анализатора 
я рассмотрю в следующих примерах этого курса.  

Вы можете сами пока посмотреть примеры работы с этими
устройствами в папке   SAMPLES\Simulation   

 

 
В SAMPLES\Simulation есть примеры использования самого мощного средства графического сбора и отображения данных 
моделирования работы устройства : 

Simulation Graph - попробуйте вот эти примеры:
DAC0808.DSN или  Invosc.DSN  -  вот скриншот этого примера PROTEUS  GRAPH

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

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

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

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

Вы можете двигаться мышью по линии графика - курсор 
будет прилеплен к линии. Сверните щелкнув крестик окно графиков - оно не пропадет - теперь можете поменять что-то на схеме и опять посимулировать.

 


 

Промежуток времени отображаемый на графике устанавливается в меню которое открывается по щелчку правой кнопкой мыши на графе  -  пункт "Edit Graph", в нем же настраивается вертикальный масштаб и можно дать названия осям.

Для редактирования отображаемых сигналов  откройте меню двойным щелчком по названию сигнала -  давайте откроем зеленый AD1(A) и изменим масштаб его отображения умножив на 0.3 и поднимем его вверх на 2 вольта - я вписал формулу для изменения сигнала  в поле "Expression" и для памяти (не обязательно) добавил к названию сигнала в "Trace name" то как он изменен - чтоб не запутаться в его реальной величине. В формулах можно использовать и другие сигналы - т.е. выводить на график комбинации сигналов - например из напряжения и тока можно получить график мощности.

Сделайте такие изменения, щелкните "ОК" и обновите данные симуляцией "Пробел" - зеленая трасса изменилась.  Теперь уберите эти изменения-формулы.

Вывод комбинации аналоговых сигналов на график.

Давайте сложим 4 аналоговых сигнала и еще на 0.2 умножим сумму, чтоб они не сильно изменили диапазон графика.  По-умолчанию в PROTEUS диапазон по вертикали выставляется автоматически.  Для этого нажмите "плюс" левее человечка млм "Ctrl + A" - появится меню "Добавить трассу, сигнал" - я назвал сигнал SUMM, выберите Analog и в "Probe Px" укажите 4 аналоговых сигнала, затем умножаем на 0.2  - вот так :

жмем "ОК" и название нового сигнала появилось на графике. Запускаем симуляцию в GRAPH нажав клавишу "пробел" или щелкнув по человечку - вот результат:


Можно жестко задать диапазон напряжений выводимый на графике вот так:

 

Данные симуляции вы можете сохранить в файл через меню Graph -> Export Data
укажите название файла и где его расположить, затем нажмите "Сохранить".  Вы получите файл в стандартном формате для измерительных приборов - CSV - данные разделенные запятыми - сможете затем импортировать в Excel или например в MATLAB

Графики результатов симуляции можно экспортировать в графические 
и CAD форматы через меню  File -> Export Graphics 
 


В общем пакет мощный - сразу всё не расскажешь ...

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

Подробно про отладку по исходному коду программы 
написано в разделе помощи: 
"SOURCE LEVEL DEBUGGING WITHIN PROTEUS VSM" 

 

 

 
Внимание ! 

Если вы случайно закрыли крестиком в правом верхнем углу окно
виртуального терминала или осциллографа или логического 
анализатора, то они не появятся сами при новом старте симуляции ! 

Чтобы они появились снова вам нужно зайти в меню DEBUG 
и щелкнуть по "Reset Popup Windows"

 

Читайте и учитесь самостоятельно делать модели компонентов для PROTEUS !!! в FAQ
 

 
 

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

Микроконтроллеры AVR ,  ATmega
и ATtiny для начинающих с нуля ! 

Быстрый и уверенный старт -
                самые первые шаги ...

     Чайникам  от  Чайника !


Предлагаю вам учиться на моём примере.
Маленькие шажки ...       ( комедия "А как же Боб !" )

  ... и  конечно  с  картинками !

Можно скачать курс одним архивом.
 

 

Схема ардуино для proteus Схема ардуино для proteus Схема ардуино для proteus Схема ардуино для proteus Схема ардуино для proteus Схема ардуино для proteus Схема ардуино для proteus Схема ардуино для proteus

Лучшие статьи:



Схемы вентиляции мастерской

Как сделать дверь из дуба

Схемы отопления котёл атон

Изделия своими руками с сад

Схема трансформатора тв 2ш 2