Как смоделировать Arduino?

QUCS-это единственное программное обеспечение с открытым исходным кодом, которое предлагает моделирование (и проектирование компоновки печатных плат [в будущем]) электрических цепей. Но проблема с QUCS заключается в том, что он находится в стадии разработки, и многие важные функции еще не доступны в нем.

Я хочу смоделировать плату Arduino Uno в ней для моей схемы. Кто-нибудь знает, как имитировать Arduino или любой другой микроконтроллер в нем?

P.S. Также любое другое программное обеспечение с открытым исходным кодом для моделирования и проектирования печатных плат?

, 👍1

Обсуждение

[Oshonsoft](http://www.oshonsoft.com/avr.html) есть отличный *AVR симулятор*. Вам будет трудно найти симулятор Arduino **board** с открытым исходным кодом - тем более что плата представляет собой не что иное, как кристалл, источник питания и удобные разъемы. Отсюда необходимость в чем - то, что имитирует микроконтроллер в ядре конкретной платы. Симулятор Oshonsoft имеет почти все необходимое для тестирования кода и включает в себя полный список всех регистров и их значений, просматриваемых инструкция за инструкцией. Это не бесплатно, но (на мой взгляд) лучшее, что вы можете получить за свои деньги., @CharlieHanson

Я думаю [Labcenter Proteus](https://www.labcenter.com/) является лучшим вариантом для имитации Arduino с различными цифровыми и аналоговыми кругами до сих пор..., @Brethlosze

Меня смущает этот (неправильный) ответ, который не исправлен. KiCad - это зрелая EDA с открытым исходным кодом, с circuit simulator (SPICE) и довольно приличной библиотекой компонентов-так что вы не ограничены пассивными схемами., @hardyVeles


6 ответов


Лучший ответ:

3

Моделирование программы микроконтроллера является обычным делом, но не как часть схемы, если только вы не занимаетесь системами на микросхемах.

Смоделируйте микроинтерфейсы и смоделируйте периферийные устройства отдельно

Аналоговые системы не могут быть точно смоделированы только с помощью ручных вычислений, поэтому моделирование часто является необходимым шагом (кроме того, реальные схемы могут вести себя иначе, чем модель). Непрограммируемые цифровые системы детерминированы в своем поведении, но только в том случае, если интерфейсы являются правильными - жесткие спецификации импедансов и такие часто означают, что здесь также требуется моделирование. Вообще говоря, для обоих моделирование становится обязательным, когда система не является абсолютно простой. Микроконтроллеры, с другой стороны, достаточно детерминированы, чтобы не требовать никакого моделирования: они делают то, что им говорят, за исключением очень, очень редких случаев (например, одно событие, вызванное излучением). Теперь то, что им говорят, может привести к сбоям, но это уже другая история*. Поэтому обычно аналоговые или цифровые схемы вокруг микроконтроллера получают эквивалентные интерфейсы, основанные на поведении и физических характеристиках микроконтроллера, и моделируются отдельно.

*: По мере того как код становится все более и более сложным, становится все труднее и труднее следить за тем, что может делать микроконтроллер. Неожиданные сбои могут возникнуть, например,из-за параллельного доступа (хотя я не могу сказать, что это распространено в микропространстве) или недостаточных ресурсов (именно поэтому динамическое выделение [malloc, new] крайне не рекомендуется, поэтому распределение ресурсов известно во время компиляции) и т. Д. Обычно именно поэтому требуются тесты, и пошаговая отладка используется как средство обнаружения любой возникшей ошибки. Но по своей сути микроконтроллеры очень предсказуемы, и, за исключением определенных случаев, не стоит проходить моделирование (не путайте моделирование и тесты, тесты всегда требуются!).

Преимущества микроконтроллерных тренажеров

Однако симуляторы микроконтроллеров существуют. Они особенно полезны для наблюдения за тем, что происходит внутри микроконтроллера, когда код выполняется шаг за шагом: стек вызовов, наблюдение за переменными, векторы прерываний и т.д. Это также можно сделать на реальном оборудовании, используемом в отладчиках схем, но симуляторы дешевле, а также позволяют сэкономить на циклах стирания/записи EEPROM и избежать повреждения вашего микроконтроллера, если вы опасаетесь, что окружающие его устройства могут быть неправильно настроены (некоторые контроллеры очень дороги, особенно если они подходят для медицинских, военных или аэрокосмических применений). Я видел такие ICD и симуляторы для изображений микрочипов (MPLABX), но должны быть эквиваленты для AVR (микро, который находится на Arduino) или, возможно, даже интегрирован в среду, удобную для arduino (хотя я в этом сомневаюсь). Возможно, вы захотите взглянуть сюда.

Если у вас глубокие карманы: имитаторы смешанных сигналов

Наконец, существуют симуляторы смешанных сигналов, которые позволяют моделировать аналоговые, программируемые и непрограммируемые цифровые схемы одинаково; один компонент будет иметь аналоговую модель SPICE, другой-модель VHDL, а блоки АЦП/ЦАП будут автоматически добавлены симулятором между этими устройствами в зависимости от указанной вами технологии логического ввода/вывода. Они чрезвычайно дороги (тот, который я использовал, - Cadence Virtuoso), вы не захотите этого делать, если только вы не создаете интегральную схему или что-то критическое.

P. S: В печатной плате DesignSpark v3 есть LTspice. Хотя я никогда не пробовал эту функцию, я использовал LTspice напрямую.

Обратите внимание, что ваше открытие "QUCS-единственное программное обеспечение с открытым исходным кодом [...]" неверно. Существует множество симуляторов с открытым исходным кодом. Я согласен, что QUCS очень удобный для пользователя.

,

Проголосовали против открытия вашего ответа, обвинив пользователя в том, что он ничего не знает., @Nick Johnson

Тогда все справедливо. Я не уверен, что согласен с тем, что "С другой стороны, микроконтроллеры достаточно детерминированы, чтобы не требовать какого - либо моделирования", хотя программы детерминированы, но мы все равно их тестируем., @Nick Johnson

Тогда получает от меня +1. :), @Nick Johnson


3

Вы можете использовать 123d.circuits.io для моделирования и проектирования печатных плат для схем Arduino.

Посмотрите на это, например.

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

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

,

2

Смотрите мой блог, в котором будут объяснены все шаги по адресу http://tutorial4you.weebly.com/blog/arduino-simulation-on-proteus

,

1

Чтобы добавить в список ответов на симуляторы, попробуйте Micro-Cap 12. Первоначально это было несколько тысяч долларов, но сейчас компания прекратила свою деятельность и предоставила их бесплатно. Довольно круто.

,

1

Как смоделировать Arduino? Что такое лучший симулятор Arduino?

Ниже приведены основные функции симулятора wokwi arduino simulator

Это бесплатно :)

• Поддержка нескольких файловых проектов

• Поддержка большинства известных библиотек Arduino

• Все что компилируется в Arduino IDE будет компилироваться на симуляторе

• Поддерживается всеми браузерами

• Компилируется с новейшей Arduino IDE

• Поддержка FastLED и многих других периферийных устройств

• Загрузка или установка не требуется

• Легко поделиться кодом и проектом всего одним щелчком мыши.

• Поддерживается Автозаполнение смарт - кода, автоматическое форматирование кода

• Предоставляет демонстрационные примеры стандартной библиотеки

• Проект также может быть скомпилирован при запуске в мобильных браузерах

• Пытается быть ближе к реальным схемам – Пример – Отскок кнопки, как в реальном оборудовании

• Поддержка Arduino Mega, Arduino Nano, Arduino UNO, ATtiny85

• Поддержка выполнения инструкций по сборке

• Обеспечивает питание светодиодов и функции FPS для проектов FastLED

• Поддержка множества периферийных устройств Arduino для проекта – ультразвуковых датчиков, скользящих переключателей, неопиксельной матрицы, потенциометра, серводвигателей, OLED-дисплеев SSD1306, датчиков температуры и влажности, поворотного номеронабирателя, мембранной клавиатуры и многого другого

• Также поддерживается последовательный монитор.

Веб-сайт: https://wokwi.com

Вот несколько примеров

,

-1

попробуйте это : simulIDE

google : simulIDE для изображения arduino

поддерживает также : pic tiny atr arduino ..

наслаждайтесь!

,