Как сделать модель в proteus

Обновлено: 07.07.2024

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

Отличие VAR моделей от моделей с экзогенными переменными
Всем доброго времени года! Подскажите чем отличается модель векторной авторегрессии от модели с.

Ищю программистов для написание виджетов для смарт ТВ разных моделей
Ищю программистов для написание виджетов для смарт ТВ разных моделей!!

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

Мне понадобился в симуле оптрон PC817, а его там нет. Я думал, там по аналогии с другими CADами - если чего-то нет, то скачиваешь, копируешь в библиотеку, и он теперь там типа есть. Но оказалось, что с этим в протеусе - полная ж. Почитал 15 страниц описания, как там создавать модель, что-то мне взгрустнулось и я решил пока отказаться от своих моделей. Если на сайте будет какая-нибудь утилита, которая бы в пару кликов впендюривала модель в мою библиотеку, то есть смысл, иначе - нет.

Отличная затея. Только вот каким местом тут оптрон? Там вроде аналогов хватает, смысл в симуляторе ставить модель именно этого оптрона. Лично мне всегда не хватало моделей дисплейчиков, датчиков и прочей цифровой хрени. Симулировать в протеусе аналоговые схемы - надо много терпения, имхо

Мне понадобился в симуле оптрон PC817, а его там нет. Я думал, там по аналогии с другими CADами - если чего-то нет, то скачиваешь, копируешь в библиотеку, и он теперь там типа есть. Но оказалось, что с этим в протеусе - полная ж. Почитал 15 страниц описания, как там создавать модель, что-то мне взгрустнулось и я решил пока отказаться от своих моделей. Если на сайте будет какая-нибудь утилита, которая бы в пару кликов впендюривала модель в мою библиотеку, то есть смысл, иначе - нет.

Хорошая затея, профильная ветка на Казусе похожа на помойку. ТС ничего не сказал о реализации идеи. У него есть выделенный сервер? Или раздавать и поддерживать он собирается с домашней машины? От этого многое зависит.

Тут налицо путаница в терминологии. Одни подразумевают под словом "модель" именно элемент для моделирования. Другие - элемент для схемы, третьи - элемент для печатной платы (футпринт и 3D модель). Для второго и третьего у меня нет проблем нарисовать самому, средствами Протеуса, кроме изощренного 3D. Могу делиться.

У меня есть выделенный сервер. Под моделью я подразумеваю все .. Я думаю сделать графы. Например: 3d модель - есть. футпринт - есть , модель моделирования - нет . Плюс еще возможность фотографий.

Тогда я обоими руками за! Готов предоставить свои модели для каталога. Наверное сразу необходимо разработать аннотацию к модели, что это, что входит (может симулироваться?, футпринт?, 3d модель?), версия разработки, ограничения и т.д.
Без этого будет та-же помойка.

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

Когда то ( в 2005/6/7 году) писал на казусе краткую инструкцию по использованию SPICE моделей в Proteus, там этот пост уже не найду ,случайно что то нашел на компе , возможно пригодится Что необходимо для попытки использовать SPICE модель в Proteus, собственно сама модель т.е. текстовый файл с описанием в SPICE формате, у этого самого файла меняем расширения на LIB и переносим в папку LIBRARY Proteusа и запоминаем его названия ,его в дальнейшем надо ввести правильно.
Выбираем значок 2D graphics Box в появившемся меню somponent далее удерживая левую клавишу мыши, рисуем прямоугольник, т.е. будущие схематическое изображения элемента., далее давим divice pin и расставляем выводы нашего элемента. Выделив каждый pin присваиваем ему имя Pin name (например OUT) и номер Default pin number которому соответствует этот вывод в реальном корпусе а также назначаем electrical type
Тип вывода : питания PP, выход OP ну и так далее.
Выделяем правой клавишей мыши весь свой шедевр и в пункте меню Library давим пункт Make divice, а после чего заполняем последовательно появляющиеся окна в первом пишем
Device name имя детальки (например К140уд1а)
References prefyx обозначения на принципиальной схеме типа U1 или T1
Давим Next
В следующем окне Make divice назначаем корпус нашему элементу для чего давим кнопку Add/Edit в следующем окне Package divice жмем Add и в окне Pic divice уже собственно выбираем корпус. Возвращаемся в Package divice и жмем Assykn package(s)
Все корпус выбрали, Next и приступаем к заполнению самого, пожалуй, важного меню.
Make divice somponent properties & defymitions
В левом нижнем углу меню давим new и выбираем SPICE MODEL, в поле properties & defymitions в графе dessription пишем имя модели и через запятую имя SPICE файла (вы его запомнили) с расширением LIB.
Опять new , выбираем SPICEPINS в поле dessription строка SPICE SUBCKT Pin List говорящая о том, что выводы описаны в SPICE файле
Следующая строка PACKAGE в PCB PACKAGE пишем корпус, соответствующий элементу. И обязательно! Добавляем строку PRIMITIVE и в поле dessription вводим ANALOGUE,SUBCKT. С этой закладкой закончили давим NEXT в меню Datasheet & Help file можно сослаться папку с Datasheet если таковая есть на вашем компе, или сразу перейти в следующее окно Indexing omd library selection где выбираем категорию ,подкатегорию и даже производителя компонента, и библиотеку где сохраним готовый компонент. Практически всё жмем OK, находим созданный нами компонент и пользуем на здоровье или мучаемся с некорректной работой модели, что тоже вполне возможно.

Модели советую брать на сайтах производителей большая библиотека есть у Texas,National,Intersil и других.
Перед симуляцией проекта с моделью проверти, что есть ссылка на библиотеку с моделью : 1 System
2 Set potsh
3 поле Simulation Model omd Module Folders( здесь должен быть указан путь к папке с моделью)
Не пытайтесь засунуть модель с номерами выводов большими чем выводов в реальном корпусе т.е корпусу DIP 14 можно сопоставить модель с выводами от 1 до 14 но никак ни 99 или 77.
Внимания ! данный опус не претендует на полноту и полную правоту, как говориться распространяется как есть, так что кто имеет возможность поправьте или дополните.

Естественно будут некоторые различия,обусловленные разными версиями Протеуса.( какая была тогда , не помню)

В статье подробно описана подготовка карты памяти (форматирование и создание образа) для управления ею через микроконтроллер в Proteus. Приведены примеры моделирования схем, имитирующих подключение внешней памяти ММС (MultiMediaCard) к микроконтроллеру ATmega32, компиляция программы инициализации которого выполнена в CodeVisionAVR. Описан программный способ создания файлов, записи информации во внешнюю память, её чтения и отображения на экране терминала и буквенно-цифрового дисплея.


Статья опубликована в журнале СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №6/2021

Введение

Карты памяти применяют в качестве носителя информации в таких устройствах, как смартфоны, цифровые фотоаппараты, видеокамеры, персональные компьютеры и др. Они подходят для расширения памяти в электронных системах и создания интерфейса обмена информацией через шину SPI, которая присутствует во многих микроконтроллерах, в частности и в микроконтроллерах AVR семейства Mega. Протокол SPI позволяет вести обмен данными на высокой скорости, задействовав при этом минимальное количество выводов микроконтроллера.

При проектировании устройства обмена информацией с картой памяти работающего под управлением микроконтроллера AVR написание программы инициализации и её компиляцию удобно выполнить с помощью CodeVisionAVR 3.12 (интегрированной среды разработки программного обеспечения для микроконтроллеров семейства AVR фирмы Atmel, которая имеет в своём составе компилятор языка С для AVR). CodeVisionAVR поддерживает все базовые конструкции языка С, которые используются при написании программ (алфавит, константы, идентификаторы, комментарии) и разрешены архитектурой AVR, с некоторыми добавленными характеристиками, реализующими преиму­щество специфики архитектуры AVR. Используя специальные директивы, в любом месте программы можно включить ассемблерный код. В CodeVisionAVR имеется набор команд управления буквенно-цифровыми и графическими дисплеями, а также библиотеки функций работы с файлами. Программные средства позволяют напрямую обращаться к регистрам микроконтроллера и управлять состоянием линий портов.

Проектирование схемы электрической принципиальной в Proteus

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

Если написание программного кода управления электронной системой предполагается выполнить в CodeVisionAVR, то проект схемы электрической принципиальной, в котором присутствует карта памяти, буквенно-цифровой дисплей, терминал и микроконтроллер создают без использования мастера – при помощи кнопки ISIS (Schematic Capture) верхней панели инструментов Proteus (см. рис. 1).



Рис. 1. Стартовое окно программы Proteus



Рис. 2. Раздел: Memory Cards библиотеки Memory ICs (а), AVR Family библиотеки Microprocessor ICs (б), Alphanumeric LCDs библиотеки Optoelectronics (в)

Выводы карты ММС имеют следующее назначение: CS – выбор карты, DI – вход данных для записи в карту, DO – выход данных для чтения из карты, CLK – синхроимпульсы шины SPI.

При обмене данными по интерфейсу SPI микроконтроллер AVR может работать как ведущий (режим Master) либо как ведомый (режим Slave). Связь между устройствами осуществляется с помощью следующих линий портов ввода/вывода общего назначения микроконтроллера:

MOSI – выход данных для ведущего или вход данных для ведомого устройства;

MISO – вход данных для ведущего или выход данных для ведомого устройства;

SCK – сигнал общей синхронизации интерфейса;

SS – выбор ведомого устройства.

Ведущее устройство формирует один или несколько сигналов SS (slave select) для выбора ведомых устройств. При этом количество формируемых сигналов соответствует количеству ведомых устройств. Ведомое устройство получит данные только в том случае, если оно было выбрано (адресовано) ведущим, то есть если на его выводе присутствует низкий уровень. Передача данных осуществляется посредством линий MOSI и MISO. Процессом передачи данных управляет ведущее устройство (Master), формируя тактовые импульсы через линию SCK. Вывод SCK ведущего микроконтроллера является выходом тактового сигнала. Одновременно с передачей данных от ведущего к ведомому устройству происходит приём данных ведущим устройством от ведомого по кольцу. Таким образом, за один полный цикл сдвига всех разрядов регистра происходит обмен данными между двумя устройствами.

Микросхема LM044L имеет 14 контактов [3], назначение которых следующее:

Vdd – напряжение питания +5 В;

Vee – напряжение регулировки контрастности от 0 до +5 В (настройка контрастности отображаемых на дисплее символов);

RS – выбор регистра данных DR (RS - 1) или команд IR (RS – 0);

RW – выбор операции чтения (RW = 1) или записи (RW = 0);

E – линия синхронизации;

D0…D7 – шина данных/команд.

Микросхема LM044L может работать в двух режимах:

4-разрядном (для обмена информацией используются выводы D4…D7).

В представленном примере вывод данных на экран дисплея разрешением 20 символов на 4 строки выполнен в 4-разрядном режиме.

Для подключения микросхемы LM044L к схеме управления используется параллельная синхронная шина данных/команд (D0…D7), вывод выбора операции чтения/записи (RW), вывод выбора регистра данных/команд (RS) и вывод синхронизации (Е). Подсоединим выводы модуля дисплея D4…D7 к выводам PC4…PC7, а выводы RS, RW и E к выводам PC0…PC2 микроконтроллера ATmega32 так, как показано на рис. 3.



Рис. 3. Сопряжение микроконтроллера ATmega32 с картой памяти и устройствами вывода информации в рабочей области редактора ISIS программы Proteus



Рис. 4. Панель TERMINALS



Рис. 5. Окно свойств: микросхемы LM044L (а), карты памяти (б), микроконтроллера ATmega32 (в)

Size of media (MB) – объём данных;

Card Image File – путь к файлу образа карты;

Require SPI init sequence – необходимость инициализации SPI интерфейса.

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



Рис. 6. Выбор виртуального терминала на панели INSTRUMENTS программы Proteus



Рис. 7. Установка шрифта с поддержкой кириллицы: выбор команды Set Font в контекстном меню, открытом из области окна терминала (а), окно настройки шрифта (б)

После создания схемы, подключения всех приборов и настройки их параметров переходят к следующему этапу разработки – написанию программного кода управления устройством в CodeVisionAVR. В результате его компиляции (при условии отсутствия в коде ошибок) на диске компьютера будет получен hex-файл, путь к которому указывают в окне свойств микроконтроллера в Proteus.

Создание образа карты памяти



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

Создание программного кода в CodeVisionAVR

Формирование программного кода в CodeVisionAVR выполняют при помощи автоматического генератора CodeWizardAVR или вручную с нуля, используя синтаксис языка программирования С и функции стандартных библиотек программы. Удобство применения генератора состоит в быстром получении кода выполнения функций инициализации микроконтроллера и его портов ввода/вывода, аналогового компаратора, таймеров/счётчиков, интерфейса UART и SPI, буквенно-цифровых и графических дисплеев и др. Однако в процессе работы мастера формируется достаточно объёмный код, который впоследствии приходится редактировать.



Receiver – активизация приёмника USART;

Transmitter – активизация передатчика USART;

Baud Rate – скорость передачи в режимах приёмника и передатчика;

Baud Rate Error – ошибка скорости передачи (вычисляется автоматически);

Communication Parameters – установка параметров связи (Data – количество битов данных, Stop – количество стоповых битов, Parity – чётность);

Mode – выбор режима связи: Asynchronous (асинхронный), Sync. Master UCPOL=0 (синхронный ведущий со сброшенным битом UCPOL регистра UCSRC), Sync. Master UCPOL=1 (синхронный ведущий с установленным битом UCPOL регистра UCSRC), Sync. Slave UCPOL=0 (синхронный ведомый со сброшенным битом UCPOL регистра UCSRC), Sync. Slave UCPOL=1 (синхронный ведомый с установленным битом UCPOL регистра UCSRC).

На вкладке SPI Settings определяют следующие параметры SPI:

SPI Enabled – активизация работы SPI-интерфейса;

SPI Interrupt – разрешение прерывания от SPI-интерфейса;

Clock Rate x2 – удвоение тактовой частоты SPI-интерфейса;

SPI Mode – режим работы SPI;

SPI Clock Rate – выбор тактовой частоты для последовательной передачи данных по SPI-интерфейсу;

Clock Phase – выбор позиции фронта стробирующего сигнала относительно бита данных: Cycle Start (начало цикла), Cycle Half (половина цикла);

Clock Polarity – уровень полярности тактовых импульсов: Low (низкий), High (высокий);

SPI Type – выбор роли микроконтроллера в SPI-интерфейсе: Slave – ведомый, Master – ведущий;

Data Order – порядок данных при последовательной передаче: MSB First (первый старший байт), LSB First (первый младший байт).



Рис. 10. Окно Configure Project: вкладка MMC/SD/SD HC Card (а), вкладка Code Generation (б)

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

Для работы с картами памяти MMC/SD/SD HC, отформатированными в FAT12, FAT16 или FAT32 в CodeVisionAVR предусмотрены библиотеки sdcard.h и ff.h. С помощью функций disk_read и disk_write библиотеки sdcard.h удобно выполнить чтение и запись текстовых данных во внешнюю память, когда образ карты памяти создан с помощью редактора Блокнот. В коде программы функция чтения информации имеет следующий формат записи: disk_read (unsigned char drv, unsigned char* buff, unsigned long sector, unsigned char count), где drv – это номер устройства (нумерация начинается с 0), buff – переменная для записи массива считанных данных, sector – номер блока, с которого начнётся чтение, count – количество блоков для чтения (нумерация начинается с 1). Функция записи имеет следующий формат: disk_write (unsigned char drv, unsigned char* buff, unsigned long sector, unsigned char count), где drv – это номер устройства, buff – переменная, в которой хранятся данные для записи, sector – номер блока, с которого начнётся запись, count – количество блоков для записи. Чтение и запись информации во внешнюю память выполняют блоками объёмом 512 байт.

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

PROTEUS 77

1) Скачиваем саму программу, здесь 2 варианта - или скачать её самому с интернета, или написать мне на почту.

2) Предположим вы скачали Proteus, далее идёт распаковка архива.

3) В самом архиве список полезных программ, какими сейчас пользуюсь, здесь и АВР Студио, и Казарма и Сина Прог - все они сгодятся, вот увидите.

Файлы программы Proteus

4) Находим файл [1] Proteus setup 7.7, жмем "установить", в процесе установки он попросить ключ, жмем "выкачать с сервера", дальше (на английском Next), и через некоторое время программа завершит установку.

Установка программы Proteus 7

5) Теперь от ИМЕНИ АДМИНИСТРАТОРА запускаем программку [2] Crack Proteus 7.7, если не от администратора - то нечего не выйдет.

Установка программы Proteus ключ

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

Установка программы Proteus - русификация

Работа с Proteus

Начнём с простейшей модели - возьмём микроконтроллер ATMEGA-8 и на С++ напишем для него программу которая будет моргать одним светодиодом, для этого выполним следующие шаги:

1) В архиве с Протеусом есть файл AvrStudio4Setup, запускаем его, он не требует никакого ключа, но есть одно условие для нормальной роботы этой программы - о нём далее.

файл AvrStudio 4 Setup

2) При установке программы она автоматически даст запрос на установку дополнительных драйверов на USB - это действие надо подтвердить, потом поймёте почему.

3) Затем установите программу под названием Win AVR, её установка интуитивно понятна, поэтому подробно описывать не буду.

3) Затем установите программу Win AVR

4) Далее запускаем AvrStudio 4.

5) У меня не захотело открывать программу на Восьмёрке, поэтому выкачал 5-ю версию. Если кто захочет пусть сделает та же, дальше буду писать о 5-й версии, она немногим о 4-й отличается.

6) Запускаем программу, выбираем новый проект.

Запускаем AvrStudio4 новый проект

7) Внизу вводим имя проекта и дерикторию, куда он будет сохранён.

вводим имя проекта, и дерикторию АВР студио

8) Дальше должно выскочить окошко с типами контроллеров, находим наш, выбираем.

окошко с типами контроллеров

9) Водим текст программы, жмём F7-отладка, дальше F5-создание.

10) У меня текст такой:

41) Переходим к протеусу. Открываем Isis.

Открываем Isis в протеусе

42) В строке сбоку выбираем Component Mode.

PROTEUS - выбор компонентов

43) Microprocesors

44) Выбираем наш контроллер.

PROTEUS - строим схему 2

45) Строим схему.

PROTEUS - строим схему

46) Дальше жмём по самому контролеру 2 раза, видим окно, ищем строку пустую, с изображением папки.

47) Теперь указываем папку где сохранили программный код, он должен иметь разширение hex.

48) Програмируем контроллер, затем жмём запуск, видим мигание самого светодиода.

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

Ares для создания трёхмерной печатной платы

Для примера выбрал готовую модель.

Ares - готовая модель

Но также программа имеет возможность создавать новые проекты. После построения платы выбираем Output, 3D visualization, и вуаля: трёхмерная плата готова. Надеюсь данной статьёй хоть немного помог в освоении этой полезной радиолюбительской программы. С вами был Колонщик.

Форум по обсуждению материала PROTEUS


Приводятся основные сведения о планарных предохранителях, включая их технические характеристики и применение.


В каком направлении течет ток - от плюса к минусу или наоборот? Занимательная теория сути электричества.


Что такое OLED, MiniLED и MicroLED телевизоры - краткий обзор и сравнение технологий.


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

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

Попробуем некий такой hello_world на микроконтроллере – помигаем светодиодом, не имея в наличии реальной платы. Для этого понадобится Proteus – как мне кажется, лучшая программа для эмуляции электронных процессов. В 8 версии Proteus есть уже встроенные библиотеки arduino, но мне они не очень нравятся в плане удобства работы. Найти их просто, при создании нового проекта, нужно перейти на вкладку “from development board”.

Где arduino в proteus

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

На странице нужно найти жирную кнопку “Download Library for Proteus” и скачать архив. В нём будут два файла –
ArduinoTEP.LIB and ArduinoTEP.IDX. В случае с версией Proteus 8, чтобы установить библиотеки Arduino, необходимо будет пройти в папку программы, а конкретно Proteus 8 Professional\LIBRARY и туда положить эти два файла. Путь самой программы конечно у вас будет отличаться от моего

Как установить библиотеки в proteus

Теперь запускаем программу, создаём новый проект и открываем библиотеку компонентов. Там в поиске, вводим название библиотеки – arduinotep и выбираем понравившийся чип.

Nano в proteus

Теперь вернёмся к Arduibo IDE. Откроем самый простой пример мигания светодиода, и сделаем некоторые настройки, чтобы понять, куда программа сохраняет hex файл. Пройдём в настройки


И выберем пункт “Компиляция” в подробно выводе. Кстати ещё тут можно включить другие полезные плюшки – например вывод номера строк или сворачивание отдельных кусков кода.


Я решил, что буду в Proteus использовать NANO, поэтому выбираю её в компиляторе, а в примере мигания диода заменяю вывод диода со встроенного на ножку 12. Жму компиляция, и теперь в окне информации можно увидеть, куда сохранился hex файл.

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


Теперь, если нажать два раза по нашей плате Arduino – можно попасть в меню настроек, где и нужно указать прошивку. Также можно заметить, что частота стоит верная – фьюзы Arduino заточены под 16Мгц внешний кварц.

Как мы увидели выше, путь hex файла находится во временных пользовательских папках. Жмём на кнопку “Program File” – и ищем наш hex. Выбираем, который без bootloader’а.


Ну теперь жмём кнопку play снизу, слева – и видим, что всё работает.


Если вы не устанавливали дополнительные библиотеки, а решили воспользоваться стандартными – рабочее поле с платой будет выглядеть так

Можно нажать на контроллер и увидеть меню настроек. Точно также в поле Program File выбирается прошивка, работает всё аналогично.


Также здесь будет один небольшой нюанс – нужно выставить частоту 16Мгц, потому-что по-умолчанию выставлено 8Мгц от внутренней RC цепочки.

Естественно, можно поставить и голый МК AtMega328, и всё тоже заработает. Только нужно найти какому пину будет соответствовать на голом МК, тот, что вы выбрали в среде Arduino. Для этого смотрим распиновку Arduino Nano. Например 12, который выбрали мы, будет соответствовать 16 пину голого МК (PB4).


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

Читайте также: