Краткий учебный
курс 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 примеров показывающих как
использовать его возможности - смотрите их и учитесь.
Вот только перечень папок с примерами - и в каждой их множество ...
Великолепнейший 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 для начинающих с нуля !
Быстрый
и
уверенный старт -
самые первые шаги ...
Чайникам от Чайника
!
Предлагаю вам учиться на моём примере.
Маленькие шажки ...
( комедия "А как же Боб
!" )
... и конечно
с
картинками !
Можно скачать курс одним архивом.
|
|