Тег proteus. Двигатель в протеусе


Система моделирования ISIS Proteus. Быстрый старт.

Весит порядка тридцати метров в архиве, самая поздняя версия которая мне известна это 7.2 Учти только, что крякнутая версия Proteus работает порой ну очень странно, например код процессора ты видишь, а отладка не идет и в регистрах левые значения. Потому ищи тщательно ;))))

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

Запускай Proteus, сразу же должно отрыться бежевое окно в точечках. Это рабочее поле. Тут мы и будем строить нашу схему. Для примера сварганим схему на моем любимом контроллере АТ89С51 она не будет делать ничего путного, будет просто отсылать в окошко терминала буковки по нажатиям кнопок приделанных к портам контроллера.

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

Откроется огроменный список элементов которые знает Proteus. Библиотеки постоянно дополняются и обновляются, поэтому пошарь по инету в поисках новых деталек.В списке найди контроллер АТ89С51, чтобы не возиться заюзай поиск по ключевым словам – набери просто «АТ89» увидишь все семейство MSC-51 известные Proteus’у.

Выбирай нужный и тыкай «ОК». После чего размещай микросхему в удобное тебе место. Сразу оговорюсь, что модели процов в Proteus несколько упрощенные, поэтому они не требуют наличия в виртуальной схеме кварца, системы сброса (подтяжка RESET до нужного уровня), наличия сигнала на использования внутренней памяти (+5 на EA, особенность процов С51, умеющих работать от внешней ПЗУ) и об этом не стоит забывать когда в итоге будем делать реальную схему, а то, в итоге, искать причину неработающей схемы можно очень долго.

Хоть они и не нужны, но детали обвески мы все же добавим. Опять тыкай на лупу с треугольником и ищи там кварц, буржуи зовут его «crystal» вот его и ставь на схему рядом с выводами XTAL.

Библиотека элементов

Главная убогость интерфейса Proteus в том, что всегда правый клик сначала выделяет, а потом удаляет компонент, а левый ставит новый такой же. Ужасно напрягает, в Multisim все сделано в разы удобней и традиционней, но, увы, Multisim не столь могуч.

Теперь наведи курсор на вывод кварца и соедини его с выводом XTAL1 процессора, то же проделай с второй ногой кварца, только на XTAL2. Теперь нам нужны кондеры, опять лезь в библиотеку и ищи там Capacitors. Будет огромный список реальных кондеров, выбери какой нибудь SMT конденсатор емкостью порядка 33pF. В верхнем окошке справа будет его обозначение в схеме, а внизу габаритные размеры, а точнее контактные площадки под его запайку.

Кстати, обрати взгляд в окошко чуть ниже строки поиска. Видишь там строку Modeling Primitive? Вот там есть виртуальные примитивы. Они не имеют корпуса, потому при разводке печатной платы выскочат с ошибкой, но если ты не собираешься разводить плату, а лишь хочешь смоделить схему, то возьми лучше его – его значения можно менять как угодно.

Воткни пару кондеров рядом с кварцем и повесь их на ноги кварца одним выводом, а второй объедини и повесь на землю. Где взять землю? Хороший вопрос :). Ищи в левой панели инструментов такие две фиговины похожие на бирки, зовется Terminal mode. Тыкай в неё, откроется тут же рядом, слева, панелька где нужно выбрать строку GROUND это и есть земля. Установи ее где тебе удобно. Power там же — это напряжение питания схемы. Обычно оно общее, но иногда могут быть замороки с тем, что у схемы множественное питание (как, например, в компе, там и 5 и 12 и 3.3 вольта и вообще тьма разных напряжений).

Далее надо собрать схему сброса. Протеусу это не требуется, он и так будет нормально отрабатывать, но реальной схеме это нужно. Делается это просто. Ставим резистор и конденсатор. При включении, когда конденсатор не заряжен, то его сопротивление равно нулю и на вывод RST подается +5 вольт, т.е. логическая 1, а как только кондёр зарядится, произойдет это через пару миллисекунд, то ножка через резистор будет лежать на земле, а это уже самый настоящий логический нуль и проц запустится в штатном режиме.

Сделай всё как на картинке и приступай к навеске кнопок на наш девайс. Вешать лучше на порт 1. Почему? А резисторы дополнительные не нужны. Дело в том, что у С51 порт 0 сделан с возможностью работы на шину данных, а это значит имеет так называемое Z состояние. Это когда на выходе не 1 и не 0, высокое сопротивление (импенданс), почти обрыв, но порт может без палева в это время снифферить шину на предмет пролетающих там значений, ничуть не выдавая себя и не мешая другим устройствам.

Порт 3 обвешан всякой дополнительной периферией, а порт 2 не очень удобно расположен в модели протеуса. Поэтому юзаем порт 1 :))))) . Ищи в библиотеке какой нибудь switch или button. Мне нравится компонент button, потому я заюзаю именно его. Поставлю четыре кнопочки и повешу их на выводы P1.0, P1.2, P1.4, P1.6, а другие выводы кнопки приложу всем скопом на землю. Как это будет работать?

Да просто! Вначале вывожу в порт единичку на все выводы. Ножки изнутри сразу же подтягиваются к логической единице. Теперь, чтобы считать данные, достаточно забрать значение из регистра порта P1, а если мы нажимаем какую-либо из кнопок, то эта ножка жестко сажается на землю, пересиливая внутренний подтяг до единицы. Т.е. нажатая кнопка дает в порту нуль на своем бите. Такой принцип определения нажатия кнопки во всех микроконтроллерах. Также настоятельно рекомендую шунтировать кнопки конденсаторами на 40pF – не будет ложных срабатываний от импульсных помех.

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

Я же предпочитаю побаловаться моим любимым UARTом. Проще говоря, терминалкой. Лезем в раздел виртуальных приборов. Ищи на левой панели инструментов пиктограмму с нарисованным стрелочным прибором и лезь туда. Тебе будет список всякого хлама который ты можешь юзать. Тут тебе и вольтметр, и амперметр, и осциллограф, цифровой анализатор и разные узкоспециализированные приблуды вроде монитора протокола SPI или I2C. Для прикола возьми осциллограф (oscilloscope) и повесь его одним каналом на вывод TxD. Еще нам нужен Virtual Terminal. Выбирай его и вставляй на схему. А теперь соединяй его выходы с выходами проца, крест накрест. Rx c Tx, Tx с Rx.

Готово! Ну и, для полного счастья, поставь еще светодиод на порт Р2. Как подключать светодиоды к портам проца? Да очень просто! Вешаешь плюс светодиода на питание, а минус на резистор, а этот резистор уже на выход процессора. Чтобы зажечь диод надо на эту ногу выдать 0.

Тогда разница напряжений между напряжением питания и напряжением нуля на ножке будет максимальной и диод будет гореть. Ищи в компонентах LED ну и втыкай его как я тебе сказал. Обратил уже наверное внимание, что чаще мы событие определяем или устанавливаем по нулю, а не по единице. Это связано с тем, что ноль легче получить принудительно, чем подтягивать ножки вверх. Но далеко не всегда так, например, контроллеры семейства AVR умеют свои ножки сажать наглухо и на нуль и на напряжение питания, так что там диод зажечь можно и единичкой. Для этого его надо будет перевернуть и вторым концом через резистор повесить не на Power, а на землю.

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

Выдели микроконтроллер и кликни на нем дважды, откроется окно свойств.PCB Packadge — это тип корпуса, он важен при разводке печатной платы. Пусть стоит DIL40

Program File – это собственно файл прошивки. Вот сюда нужно прописать путь к hex файлу.

Clock Frequency – частота на которой будет работать проц.

Отладка по исходному коду

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

Жми кнопку с значком Play, как на магнитофоне. Тут всё просто, никаких сложностей. Отмечу только, что пошаговый режим это просто прерывистый запуск с небольшой временной задержкой. Для отладки нужно юзать дебаг по коду.

Теперь твоя схема работает. Можешь понаблюдать процессы, происходящие в ней. Если выберешь в панели инструментов вольтметр, то увидишь напряжение, или можно измерить ток, если заюзать амперметр. Цветные квадратики, что зажглись на ножках процессора это логические уровни. Синий – ноль, он же земля. Красный – логическая единица, а серый это высокий импенданс, он же Hi-Z.

В принципе уже этого достаточно, чтобы отладить работу дейвайса. А что, прогу отлаживаем в Keil uVision (если речь идет о С51) или в AVR Studio, компилим и смотрим что получилось. Это отлично работает на простых девайсах с одним управляющим контроллером и обвязкой.

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

Отладка предыдущей версии контроллера робота
Пошаговая отладка одновременно двух процов связанных по программному i2c. МОЩЬ

Добавляем исходник.Лезь в меню и ищи там пункт Source и смело тычь в него недрогнувшей рукой. Выбирай Add/Remove source и добавляй исходник. Советую сразу, чтобы компилятор не тупил, исходники ныкать по простым путям, без пробелов и русских букв. Например, как у меня: “d:\coding\C51\hack_2.asm” Добавляя исходник не забудь указать компилятор которым его надо будет компилить. Для данного случая в “Code generation tools” надо указать “ASEM51”, то есть компилятор архитектуры MCS-51.

Жми ОК и в меню Source появится еще один пункт – добавленный исходный файл, выбрав который автоматом открывается редактор и можно по быстрому подправить текст программы.

Настройка компилятора.Опять же лезь в меню Source и ищи там пункт “Define Code Generation Tools” это опции компилера. Изначально настроены они криво — в разделе “Make rules” тычь в строку “Command Line” и выноси оттуда весь мусор, что там есть. Оставь только “%1” без кавычек. ASEM51 умная зараза, он сам добавит нужные файлы с описаниями регистров и переменных, тем более, что у всего семейства MСS-51 все адреса одинаковые.

КомпиляцияЖми в том же меню Source пункт Build All и получай на выходе hex файл, но уже местной выделки. Там же моргнет окно комплиятора, в котором будут сведения об ошибках и ряд служебных данных.

ЗапускЗапускай схему кнопкой Play в нижней панельке и сразу же нажимай либо паузу, либо пошаговый режим. Сразу же должно открыться окно с кодом программы как в уже привычном тебе отладчике. Если не открылось, то ты его найдешь в меню Debug -> 8051CPU -> Source Code — U1

Там же будет масса других полезных вещей, как, например, содержимое регистров процессора или памяти программ/данных.

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

Красный бегущий чувак – запуск кода на исполнение.Нога перепрыгивающая через фиговину – исполнение с пропуском процедурНога со стрелкой вниз – выполнить одну инструкцию, сделать шаг.Нога со стрелкой вверх – выйти из подпрограммы.Нога и стрелка вперед – исполнять до курсора.Кружочки со стрелочками – установка/снятие/отключение точек останова BreakPoint. Бряк-поинт это такое место в программе, где твоя прога встанет как вкопанная и дальше пойдет лишь с твоего согласия – незаменимая вещь в отладке.

При добавлении в проект второго проца его код, регистры и память будут там же, но называться будет уже Source Code – U2 и так далее. Кроме того, в директории Proteus’a есть папка SAMPLES вот в ней куча разных примеров, весьма сложных, показывающих возможности системы ISIS Proteus.

З.Ы.Эту статью я писал для журнала Хакер. В несколько ином виде (чуть более подробном) она была опубликована в журнале за декабрь 2007 года.

easyelectronics.ru

Arduino/CraftDuino и PROTEUS / Arduino / RoboCraft. Роботы? Это просто!

Лично мне, в Arduino IDE очень не хватает отладчика – с этим обязательно нужно что-нибудь сделать :)

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

Например, замечательная программа – ISIS PROTEUS: — PROTEUS может симулировать несколько МК в одном устройстве (AVR, PIC, Motorola, ARM) — в поставку PROTEUS входит очень много моделей компонентов. — можно симулировать любые электронные устройства и не содержащие МК Т.о. если нужно проверить какую-нибудь идею или вариант реализации – можно не искать детали, а просто «собрать» схему в PROTEUS-е и посмотреть как она будет работать :) Симуляция PROTEUS-а очень реалистична — наглядно видна работа устройства, напряжения и токи в нем. Причём PROTEUS — это полная система проектирования — от идеи — до результатов работы устройства и файлов для платы.

Как всегда – об этой системе можно почитать ДиХальта. Итак, попробуем смоделировать Arduino :)

Простейший вариант Arduino/CraftDuino представлен на рисунке выше :) Да – никаких источников питания и стабилизаторов – просто микроконтроллер и светодиод, который подключён к 19 ножке МК, она же 5-й вывод порта B – она же, согласно Arduino Pin Mapping – digital pin 13 :) Можно чуть усложнить схему, подключив виртуальный терминал: — теперь мы сможем видеть данные, которые наша виртуальная ардуина шлёт в последовательный порт :)

Если на компоненте дважды щёлкнуть левой кнопкой мышки, то появится окошко, в котором можно установить различные параметры. Например, для микроконтроллера: Чтобы загрузить в микроконтроллер программу – через поле “Program File” –указываем путь к .hex-файлу. Укажем МК частоту 16MHz и загрузим стандартный Blink.

Запускаем симуляцию и видим, как меняется напряжение на светодиоде: Для наглядности – можно в библиотеке компонентов выбрать светодиод с анимацией:

Теперь можно проверить работу других обучающих скетчей. Например, светодиод с кнопкой: — добавляем нужные элементы, загружаем в виртуальный МК .hex со скетчем и вуаля: Кнопка не нажата: Нажмём кнопку – и виртуальный светодиод загорается :)

Посмотрим – как работает виртуальный терминал; загрузим в МК скетч Blink_HL Работает! Сообщения терминала отображаются в маленьком окошке :)

А осциллограф? Грузим в МК скетч шестиканалоного осциллографа :) Хм… какой-то мусор… ааа я забыл изменить скорость COM-порта! Дважды щёлкаем на терминале и устанавливаем скорость (Baud Rate) в 38400

Теперь всё работает! Только симуляция не учитывает наводки, которые были в реальной схеме – поэтому тут одни нули :)

Теперь можно запускать свои скетчи вдали от Arduino, используя всю мощь симуляции PROTEUS-а (от виртуальных инструментов до отладки)!

UPDПроект Протеуса + hex скетча осциллографа

Ссылки:Система моделирования ISIS Proteus. Быстрый старт.

robocraft.ru

proteus

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

Статьи | Видео | Пользователи 17.12.2012

Урок 14. Программный UART в BASCOM-AVR

Цикл уроков по AVR-микроконтроллерам. Урок 14. Программный UART в BASCOM-AVR

Автор: noauthor

  • BASCOM-AVR
  • UART
  • Микроконтроллер
  • AVR
  • Proteus
1 0 [0] 19.12.2012

Кабель-тестер

Предназначен для прозвонки и определения номера провода в 10 (+1 общий провод) жильных кабелях при монтажных и пуско-наладочных работах. Состоит из блока передатчика и блока приемника.

Автор: ing_kip

  • Proteus
  • Кабель-тестер
22 4.7 [1] 18.12.2012

Бортовой компьютер (часы, двухканальный термометр, вольтметр на ATmega8 и LCD 16х2)

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

Автор: u33

  • Термометр
  • Часы
  • Бортовой компьютер
  • Вольтметр
  • AVR
  • Sprint-Layout
  • Proteus
130 4.8 [5] 21.12.2012

Простой таймер для точечной сварки

Устройство специально разработано для точечной сварки

Автор: Artos5

  • Proteus
  • AVR
  • Таймер
  • Сварка
  • Микроконтроллер
7 1.4 [1] 25.12.2012

Контроллер целостности линии датчиков

Это устройство может успешно применяться в двух отраслях. Первая: "Аграрное хозяйство" - контроллер засоренности датчиков. Вторая: "Уникальная охранная система" - контроллер целостности линии связи или датчика.

Автор: Artos5

  • Sprint-Layout
  • Proteus
  • Микроконтроллер
  • AVR
0 2.3 [1] 10.01.2013

Автомат управления поливом растений

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

Автор: ing_kip

  • Proteus
  • Sprint-Layout
  • Автомат полива
  • Микроконтроллер
  • PIC
8 0 [0] Похожие статьи:
  • Схемы управления освещением
  • Схема управления насосом - дозатором
  • Система управления двигателем Digifant
31.12.2012

Простая гирлянда на МК PIC12F629

Простая гирлянда для елки на микроконтроллере PIC12F629 и регистре сдвига CD4035. Имеет несколько эффектов.

Автор: zeconir

  • Flowcode
  • Proteus
  • Гирлянда
  • PIC
  • Микроконтроллер
2 5 [1] Похожие статьи:
  • Простая гирлянда на К155ЛА3
06.01.2013

Частотомер на AVR

Это достаточно простая конструкция частотомера. Основа схемы - микроконтроллер ATmega8. Измерение частоты в пределах 0-9999 Гц

Автор: zeconir

  • Частотомер
  • Proteus
  • Flowcode
  • AVR
8 0 [0] Похожие статьи:
  • Частотомер до 1 ГГц
  • Частотомер
  • Частотомер до 200 МГц
17.01.2013

Урок 15. Работа с датчиком температуры DS18B20 в BASCOM-AVR

Работа с цифровым датчиком температуры фирмы Dallas DS18B20 в BASCOM-AVR. Написание программы и практическая работа.

Автор:

  • BASCOM-AVR
  • DS18B20
  • LCD
  • Proteus
19 5 [1] Похожие статьи:
  • Урок 9. Работа с АЦП на примере ATtiny13 в BASCOM-AVR
  • Урок 16. Работа с энкодером в BASCOM-AVR
  • Урок 19. Работа с ультразвуковым датчиком расстояния HC-SR04 в BASCOM-AVR
18.01.2013

Индикатор набираемого номера

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

Автор: zeconir

  • AVR
  • Proteus
  • Микроконтроллер
2 4.6 [1] Похожие статьи:
  • Индикатор напряженности поля
  • Индикатор напряженности поля
  • Индикатор напряжения для мопеда
12345» Весь список тегов

cxem.net