Pull to refresh

SimulIDE: открытый симулятор цифровых схем и микроконтроллеров

Reading time3 min
Views22K

В этой заметке я решил рассказать о SimulIDE https://simulide.com/ Это относительно новое программное средство с открытым исходном кодом, предназначенное для моделирования 8-битных микроконтроллеров семейств AVR и PIC, а также прочих электронных схем. По интерфейсу SimulIDE напоминает Proteus. SimulIDE кроссплатформенный и работает под Linux, Windows и Mac. Далее будут рассмотрены основные возможности этого симулятора и рассказано о моих личных впечатлениях от работы с данной программой.

Загрузка и установка

SimulIDE разрабатывается по модели с открытым исходным кодом, но доступны и бинарные пакеты для всех трёх поддерживаемых платформ. Сайт проекта доступен по данной ссылке: https://simulide.com/ Репозиторий с исходными кодами упрятан довольно глубоко: https://launchpad.net/simulide Бинарные пакеты для релиза и релиз-кандидатов можно найти здесь: https://launchpad.net/simulide/+download

Для Linux предлагается архив tar.gz, который содержит скомпилированную версию со всеми библиотеками. Нужно распаковать этот архив например в домашний каталог или в /opt и запустить бинарный файл simulide из командной строки или файлового менеджера.

Для Windows имеется portable версия в виде zip-архива, который нужно также распаковать и запустить файл simulide.exe

Краткий обзор возможностей программы

После запуска программы открывается главное окно, которое представляет собой редактор схемы. В комплекте с SimulIDE идёт большое количество примеров, которые находятся в каталоге examples в дистрибутиве программы. На скриншоте показана схема осциллографа на МК Atmega328p, в котором используется монохромный графический ЖКИ. Чтобы запустить симуляцию, нужно нажать на кнопку Power circuit на панели инструментов.

Главное окно SimulIDE с примером схемы
Главное окно SimulIDE с примером схемы

В отличие от например Qucs-S или проприетарного Ltspice моделирование в SimulIDE полностью интерактивное. Можно подключать виртуальные измерительные приборы как в Electronics Workbench или Proteus. В программе имеется внушительный набор аналоговых и цифровых компонентов, в том числе библиотека ИМС ТТЛ и КМОП логики. Самое главное, что поддерживаются различные 8-битные микроконтроллеры семейств Atmega, Attiny, PIC10, PIC12, PIC16 и 8051. Также поддерживается Arduino. Можно моделировать и схемы без микроконтроллеров. Движок моделирования используется упрощённый собственной разработки, а не SPICE. Модели транзисторов также используются сильно упрощённые для ключевого режима. Для моделирования каких-либо сложных аналоговых схем SimulIDE не годится. Моделирование в частотной области (анализ АЧХ) не поддерживается. У меня, например, не получилось запустить генератор на RC-цепи и двух инвертерах. Анимированный GIF ниже показывает моделирование переходного процесса в колебательном контуре.

Интерактивное моделирование колебательного контура
Интерактивное моделирование колебательного контура

Пример: моделирование простой схемы на МК Atmega328p

Рассмотрим пошаговый пример, как смоделировать в SimulIDE схему на микроконтроллере. В качестве примера будем использовать моргалку светодиодом на МК Atmega328p. Светодиод подключается к выводу PB0. Исходный текст программы следующий.

#include <avr/io.h>
#include <util/delay.h>

#define LED_PIN PORTB0

int main (void)
{
   DDRB |= (1<<DDB0);
   for(;;) {
   PORTB |= (1<<LED_PIN);
   _delay_ms(1000);
   PORTB &= ~(1<<LED_PIN);
   _delay_ms(1000);
   }
}

Данную программу следует скомпилировать при помощи avr-gcc любым способом и получить HEX-файл. Теперь можно приступать к моделированию. Запускаем SimulIDE и на поле схемы размещаем МК, резистор 100 Ом и светодиод, которые берём с левой панели. МК находятся в группе Micro. Компоненты соединяем проводами. Редактирование схем в SimulIDE интуитивно понятно и с ним проблем возникнуть не должно. Получается следующая схема:

Схема на МК Atmega328p
Схема на МК Atmega328p

Теперь нужно указать для МК файл с прошивкой. Для этого щёлкаем правой кнопкой по компоненту и выбираем Load firmware. Затем выбираем HEX-файл. Теперь если в свойствах компонента (Properties) отображается прошивка:

Диалог свойств МК
Диалог свойств МК

Теперь можно запускать симуляцию. Для этого нажимаем кнопку Power circuit на панели инструментов, и светодиод начинает мигать. Результат показан на анимированном GIF ниже.

Моделирование схемы
Моделирование схемы

Как видно, процесс моделирования чрезвычайно простой по сравнению с ранее упомянутыми Qucs-S и LTSpice. Но за простоту нужно платить тем, что не поддерживаются настоящие модели SPICE и отсутствует полноценное аналоговое моделирование.

Выводы и мои впечатления

На мой взгляд в настоящее время моделирование МК PIC и AVR, которое реализовано в SimulIDE, может иметь весьма ограниченное применение. Вот появилась бы эта программа лет на 15 пораньше, цены бы ей не было. Сейчас даже радиолюбители переползают на 32-битные МК. В своих самоделках я уже перешёл на 32-битные МК. AVR и PIC по-моему полностью устарели. В том, чтобы делать новые разработки на 8-битниках я особенных преимуществ не вижу. Так что для меня лично SimulIDE практически бесполезен. Но возможно тем, кто продолжает делать устройства на 8-битных МК, этот симулятор сможет упростить отладку. Ну и для использования в учебном процессе SimulIDE будет весьма полезен из-за простоты освоения и интерактивной симуляции.

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 57: ↑57 and ↓0+57
Comments36

Articles