Ну вот и настало время рассказать вам об особенностях моделирования схем на микроконтроллерах в виртуальной среде PROTEUS. Кроме этого поясню как создавать виртуальный КОМ порт в этом же PROTEUS’е. Начнем с микроконтроллеров. Вообще все микроконтроллеры и микропроцессоры, которые есть в библиотеке PROTEUS’а размещены под заголовком «Microprocessor IC».
Для микроконтроллеров всегда следует выбирать шину питания VCC. Теперь что касается управляющей микроконтроллером программы.
Программа может быть как на ассемблере , так и уже скомпилированный вариант(второе более предпочтительно).Чтобы использовать файл программы с расширением «.hex» нужно щелкнуть по микроконтроллеру правой кнопкой мыши, выбрать пункт «правка свойств», далее в этом пункте выбрать графу «program file» и ввести путь к файлу, либо просто щелкнуть по значку «открыть папку», и указать нужный файл. После этого никаких дополнительных действий не требуется, кроме нажатия кнопки «ОК».
С ассемблерным файлом несколько сложнее. Выбрать этот вариант можно также щелкнув правой кнопкой мыши по микроконтроллеру, и выбрав пункт «добавить/удалить файлы исходника». Для правильной компиляции программного файла нужно указать кодировку, с которой следует преобразовать файл. Как пример, можно рассмотреть схему двухканального термометра ни PIC16F84A (взята отсюда).
PROTEUS УРОК 11 микроконтроллер
Сначала как обычно составляем схему. После этого выбираем файл программы с расширением «.hex» и жмем «ОК». Теперь можно запустить устройство и посмотреть как оно работает. После успешного запуска устройства с помощью файла .hex попробуем и с файлом .asm. Внимание!
Если вы сначала использовали файл .asm , а потом решили проверить на .hex, сначала удалите из проекта файл .asm так как программа все равно будет запускаться с ассемблерного файла. Итак, выбираем файл therm84a.asm , и жмем кнопку «Пуск». Иногда может выскакивать такое окно:
Если компиляция прошла без ошибок, то программа запускается и схема работает, если же по какой-то причине произошла ошибка, то откроется окно со сведениями про ошибку/ошибки во время компиляции. Чаще всего это происходит из-за выбора неправильного компилятора
На этом можно закончить с микроконтроллерами, так как статья – не книга, в ней самое основное. Теперь о виртуальном COM порте. Подключить виртуальный порт легко, труднее его найти , поэтому без помощи поисковика нам не обойтись.
В PROTEUS’е виртуальный COM порт называется COMPIM, именно это название мы и забиваем в строку поиска Все функции этого виртуального порта находятся под пунктом «Правка свойств». Для правильной работы сего девайса нужно посмотреть настройки своего реального порта на компьютере и выставить аналогичные в виртуальном.
Avr studiо, proteus, программатор | Микроконтроллеры с нуля #2
Но для начала можно обойтись и без них. Теперь можно приступить к симуляции работы COM порта в протеусе. Для этого нам понадобится собственно протеус и еще две программы. Одна — для создания пары COM портов: Реальный Виртуальный. А вторая для наглядного примера работы виртуального порта. Сначала устанавливаем программу для создания пары Реальный Виртуальный порт.
Она называется VSPD XP 5(есть в приложении к статье). После установки попросит чтобы мы перезагрузили комп-перезагружаем. Так как софт платный, то мы попользуемся демо-версией, она нам все равно один раз нужна будет, а если уж очень хочется полную — кряк можно найти в инете. Итак, после запуска программы появится окно: Мы жмем на кнопку «Add pair».
В итоге добавляются еще два порта под «Virtual ports».После операции перезагружаем комп, чтобы изменения вступили в силу. Затем запускаем PROTEUS , выбираем COM порт и виртуальный терминал. Виртуальный терминал выбирается так:
Это приложение позволяет отправлять данные на COM порт. Запустив приложение, мы увидели такое окно: Следуйте инструкциям и установите нужные значения параметров портов и передачи. Теперь запустите симуляцию в протеусе.
После этого нажмите «connect» в верхнем левом углу программы «Терминал», далее , в нижней строке напишите какое-то слово(без разницы на русском или на английском), например «привет», и посмотрите на окно «виртуального терминала» в протеусе — там будет эта надпись! Это самый простой способ симуляции работы COM порта в PROTEUS. Возможно, материал о более сложных симуляциях совместно с COM портом в протеусе войдет в мою следующую статью. Удачи вам в экспериментах!
- proteus3.rar (2091 Кб)
Теги:
Ресин Е.
Опубликована: 2012 г.
0
1
Вознаградить Я собрал 0 0
Источник: cxem.net
Как в протеусе загрузить программу в микроконтроллер
У вас есть два пути: взять красную таблетку и использовать протеус, или же взять синюю, прошить микроконтроллер(мк) и спаять схему. Хотя в принципе, прежде чем паять нужно всё-таки убедиться в её правильности, мало ли что.
Качаем и устанавливаем Proteus(протеус) и повторяем за мной.
Запускаем ярлык ISIS 7 и появляется такое окно:
Далее двойной клик на поле Devices и видим строку поиска элементов, можно найти нужные элементы по категориям, но проще по названию. Вводим Atmega8, клацаем на него что бы переместить в список.
Теперь вводим LED, у нас есть выбор из стандартных светодиодов синего, красного, желтого и зеленого, я выбрал зеленый, кому какой нравится.
Далее каждый элемент переносим на рабочее поле, фиксируем и соединяем. Напомню что подключить светодиод нужно к выводам PD4(катод ), PD5(анод).
Следующим этапом загрузим прошивку в Atmega, двойной клик по МК и в разделе Program File нажать на папку.
Далее жмём на зеленый треугольник запуска и танцуем. Да, прежде чем расстроится, вдруг не заработало, подождите 8 секунд, бывает если не настроено время светодиод будет мигать раз в 8сек.
Дело за практикой. Во-первых, нужен программатор, если есть хорошо, если нету — собираем или покупаем. Хотите собрать? тогда ищите программаторы AVR COM/LTP, к примеру, Громова. Я не советую собирать пятипроводку(stk200) лучше уж stk500/300 хотя он и сложнее. Да! и парадокс чтобы сделать программатор stk500 нужен будет другой программатор . На крайний случай попросите у знакомых, если таковые имеются.
А вот если у вас ноутбук или что ПК без СОМ порта, то вам стоит купить программатор, например USBASP тот же STK500 и т.п. Стоит заметить, что каждая программа «прошивальщик» имеет список программаторов с которыми она может работать. К примеру, USBASP может работать только с Khazama, AVR Dude, Bascom и тд и тп. А простые STK будут работать со штатной средой Atmel Studio (AVR Studio).
Пара слов о немаловажной части микроконтроллера, а именно о Фьюзах. FUSE биты (фьюзы), если уж совсем понятным языком, устанавливают параметры МК такие как частоту генератора, разрешение или запрет на чтение прошивки, памяти и т.д. Обязательно, прежде чем записывать FUSE биты убедитесь в их правильной установке, из-за неопытности в свое время я залочил мегу8, но в умелых руках и имея высоковольтный программатор или fuse doctor можно без проблем разблокировать МК(но опять же имея высоковольтный программатор или fuse doctor).
Запомните, запрограммированный фьюз=0, а не запрограммированный=1.
Приступим к прошивке т.к. у меня USBASP программатор я покажу метод, как прошить контроллер в CodeVision AVR и в Khazame.
Открываем CodeVision и повторяем за мной. Для начала настроим программу под программатор, а уже потом будем программировать.
Далее настраиваем Фьюзы. Для этого можно использовать Калькулятор фьюзов AVR. В CodeVision галочка — это запрограммированный фьюз , т.е. 0.
После загружаем прошивку (*.hex) в программу и зашиваем ее в МК . Прошивку берём из предыдущей статьи или качаем Project.rar [318 b] (cкачиваний: 170) .
И нажимаем Program All.
Теперь как работать с Khazama. Очень простая программа, зная английский всегда можно разобраться. Но стоит запомнить, что в Казарме не запрограммированный — это галочка, привыкайте .
Итак следим за простыми действиями
Выбираем МК в списке
Жмём Read, и выставляем(галочки) так как на скрине, и жмём Write
Всё мы прошили,
P.S Если у вас вылетают ошибки в Казарме, скипайте (жмите ОК).
Источник: radioaktiv.ru
Arduino в Proteus 8
Если вы разрабатываете какой-либо проект на базе плат Arduino, то сперва можно «обкатать» схему (или часть схемы) и программный код на симуляторе в программе Proteus. В этой статье рассмотрим как добавить плату Arduino Nano, встроенную в стандартную библиотеку Proteus, а также сторонние библиотеки отладочных плат.
Отладочные платы в Proteus 8.4
При создании проекта в программе proteus версии 8.4 (в более поздних версиях не помню уже) при создании нового проекта можно указать какую отладочную плату будем использовать. Для создания нового проекта нажимаем на кнопку New Project (показано красной стрелкой на рисунке ниже), или на вот такую иконку , или через верхнее меню File -> New Project, или нажать одновременно кнопки CTRL + N .
Отладочная плата Arduino Nano в Proteus
После этого должно появится вот такое окно:
Здесь мы должны перевести переключатель из положения New Project в положение From Development Board.
В выпадающем списке Micro-controller Family нам нужно выбрать семейство микроконтроллера, в нашем случае это AVR.
Чуть ниже можем наблюдать список Development Board — это доступные отладочные платы. Здесь я выбрал Arduino Nano 3-й версии.
В поле Details мы можем узнать краткую информацию о плате.
После выбора отладочной платы, нам остается в поле Name указать имя проекта, а в поле Path указать путь, где этот проект будет хранится. Когда все готово, жмем кнопку Finish.
У нового проекта появится две вкладки: Schematic Capture (электрическая схема) и Source Code (исходный код).
Подключаем DHT11 к Arduino Nano
Примера ради, давайте подключим к Ардуино Нано датчик влажности и температуры DHT11 и выведем значения в терминал протеуса.
Как добавить базовые элементы можно прочитать в этой статье.
В библиотеке элементов в поле Keywords вводим DHT , в результатах справа выбираем DHT11 , нажимаем OK.
Теперь нажимаем два раза левой кнопкой мыши на рабочее пространство. Итак, датчик добавили.
Теперь нужно подключить к нему питание, землю и сигнальный контакт к Ардуино. Для этого перейдите в режим выводов, нажав на иконку .
POWER — это вывод питания (по умолчанию +5В). GROUND — это вывод земли (можно прочитать здесь). DEFAULT — это контакт, подключенный в другое место схемы (можно обойтись и без него, нарисовав соединительную линию от вывода DATA к выводу платы).
Нужно указать, к какому контакту платы Ардуино будет подключен наш контакт DATA датчика. Нажимаем два раза на контакт (на картинке выше это «Контакт по умолчанию»), который мы добавили, и в поле String напишем IO2 , тем самым подключив его ко второму контакту Ардуинки. Нажимаем OK.
Подключаем терминал к Arduino Nano
Виртуальный терминал находится в режиме виртуальных инструментов под названием VIRTUAL TERMINAL . Добавим его на схему.
Так как мы будем только выводить значения в терминал, нам нужно только подключить вывод RXD терминала (прием) к контакту TXD платы Ардуино (передача). Ардуино будет передавать данные, а терминал — принимать. Для этого добавим вывод DEFAULT (как мы это делали для датчика) и подключим его к RXD терминала. Так же в его свойствах необходимо указать метку TXD , что будет означать его соединение с передающим контактом UART Arduino Nano.
Программный код
Писать программный код будем прямо здесь, в протеусе. Для этого переходим на вкладку Source Code.
Есть и другой способ запустить программу для ардуино в протеусе — это подсунуть микроконтроллеру уже скомпилированный HEX-файл. Но об этом поговорим чуть позже.
Для работы нам понадобится библиотека DHT Sensor Library, а точнее два ее файла: DHT.cpp и DHT.h.
Описание функций библиотеки и саму библиотеку можете найти по этой ссылке.
Слева, в окне Projects нажимаем на Source Files правой кнопкой мыши и выбираем пункт меню Add Files .
В папке с библиотекой DHT Sensor Library находим два файла DHT.cpp и DHT.h. Выделяем их (чтобы выделить несколько файлов, зажмите кнопку ctrl на клавиатуре) и жмем кнопку Открыть.
Код взял из примера библиотеки под названием DHTtester и немного ее изменил.
#include «DHT.h» #define DHTPIN 2 // Цифровой контакт, подключенный к датчику DHT #define DHTTYPE DHT11 // Тип датчика DHT 11 DHT dht(DHTPIN, DHTTYPE); // Инициализация датчик DHT. void setup() < Serial.begin(9600); Serial.println(F(«DHT11 test!»)); dht.begin(); >void loop() < delay(2000); // Подождем две секунды между измерениями. // Считываем влажность float h = dht.readHumidity(); // Считываем температуру (по умолчанию в градусах Цельсия) float t = dht.readTemperature(); // Проверка, не завершилась ли операции чтения с ошибкой if (isnan(h) || isnan(t)) < Serial.println(F(«Failed to read from DHT sensor!»)); return; >// Выводим на терминал Serial.print(F(«Humidity: «)); Serial.print(h); Serial.print(F(«% Temperature: «)); Serial.print(t); Serial.println(F(«°C «)); >
Теперь скомпилируем проект. Нажмем на тот же Source Files правой кнопкой мыши и выберем Build Project , или нажмем клавишу F7 , или через верхнее меню Build -> Build Project, как кому удобнее.
Всё. Переходим к нашей схеме на вкладке Schematic Capture и запускаем симуляцию. Окно терминала должно автоматически открыться.
Если окно терминала не отображается, попробуйте перейти в меню Debug и внизу нажать на Virtual Terminal.
Cторонние библиотеки Arduino для Proteus
О том, как добавить библиотеку в Proteus, можно узнать тут.
О том, как добавлять библиотеки описывать не буду, об этом можете узнать по ссылке выше. А перечислим некоторые библиотеки и дадим ссылки, где скачать.
Arduino TEP
В этой библиотеке доступны 6 разновидностей плат Arduino:
- Arduino UNO
- Arduino Mega 2560
- Arduino Mega 1280
- Arduino Nano
- Arduino Mini
- Arduino Pro Mini
Arduino CP
В этой библиотеке доступны только две платы: Arduino Micro и Arduino Nano V3 в двух модификация. Как утвержает разработчик, отличие простой платы от COMPLETE в том, что обычная версия иммитирует только микроконтроллер, тогда как версия COMPLETE — внутренние комноненты, все контакты и порт USB.
На этом все. Посмотрите вот эту статью, если хотите узнать, где найти скомпилированный файл в Arduino IDE и как его загрузить в плату Arduino в Proteus.
Источник: rxtx.su