SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

User avatar
FizikS
Maniac
Posts: 264
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

Нашел причину. Я не великий программист на ассемблере, поэтому пришлось повозиться. Я включил анимацию на схеме и просмотрел в пошаговом режиме сигналы на линиях портов. Обнаружил, что при записи первого байта не формируется сигнал строба записи (вначале выставляем данные, потом стробируем сигнал записи).
Добавил одну команду в листинг и все заработало (частота 16 МГЦ). В режиме пошаговой отладки так же проблем не обнаружил.

Code: Select all

.nolist
#INCLUDE		"m128def.inc"
.list
.cseg

		.def			Rnull	=	R15
		.def			Rff		=	R14
		
		.org		0
		rjmp		RESET
		
		.org		0x100
RESET:
		ldi		R16, 	0x00
		mov		Rnull,	R16
		ldi		R16,		0xFF
		mov		Rff,		R16
		out		DDRA,	Rff
		out		DDRB,	Rff
		out		DDRD,	Rff
		sts		DDRG,	Rff
		
		ldi		XH,		0
		ldi		XL,		1
		
		sts		PORTG,	Rff		; запрет записи в память
loop:	        out		PORTA,	XL
		out		PORTB,	XH
;		out		DDRE,	Rff
		out		PORTD,	XL		; посылаем данные на запись
		STS		PORTG,	Rnull	; строб записи в память
		adiw		XL,		1		; инкремент адреса памяти
		sts		PORTG,	Rff		; конец строба записи
;		out		DDRE,	Rnull
		cpi		XL,		0x50
		brne		loop
		
mainloop:
		rjmp		mainloop
			
SAA
Senior
Posts: 136
Joined: 12 Jul 2016 21:30

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by SAA »

FizikS wrote:Нашел причину. ..... Добавил одну команду в листинг и все заработало (частота 16 МГЦ). В режиме пошаговой отладки так же проблем не обнаружил.

Code: Select all

		sts		PORTG,	Rff		; запрет записи в память
;----------------------------------------------------------------------------
loop:	        out		PORTA,	XL
		out		PORTB,	XH
		out		PORTD,	XL		; посылаем данные на запись
		STS		PORTG,	Rnull	        ; строб записи в память 
		adiw		XL,		1		; инкремент адреса памяти
		sts		PORTG,	Rff		; конец строба записи
		cpi		XL,		0x50
		brne		loop
			
Спасибо что повозились ради такого! Согласен с "плюхой" при записи первого байта, проглядел в каком состоянии PORTG с линией WE. Исправил, попробовал только что на 2МГц, 4МГц безукоризненно! А вот 6МГц, посмотрите на скриншот. В режиме отладки с остановкой по брейкпоинту в mainloop - ничего не изменилось - в дампе нули даже при 2МГц.
You do not have the required permissions to view the files attached to this post.
SAA
Senior
Posts: 136
Joined: 12 Jul 2016 21:30

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by SAA »

Еще обнаружилась неприятность с таймерами и частотомерами. Ладно частотомеры в районе 250КГц только, это понятно. Но вот таймеры AVR ATmega-128 запущенные в режиме CTC, что Timer0, что Timer3 должны генерировать меандр с частотой 1/2 CLK, на порте D "ногодрыг" показывает больше. Не поленился проверил на железке, все правильно получил четкие 1/2 CLK. Либо как то неправильно инициализирован делитель, хотя XDIV проверил у модели равен 0 как и должен, либо что то не так с прескаллерами. Разные по настройкам таймера показывают одинаковые процессы и что характерно изменение регистров OCRxCL, не влияет на частоту меандра, что уж совсем не понятно.
You do not have the required permissions to view the files attached to this post.
User avatar
FizikS
Maniac
Posts: 264
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

Отрисовал в SimulIDE известный 4-х битный процессор Nibbler. После некоторых танцев с бубном от все-таки запустился. Выражаю огромную благодарность Lavr-у за выложенную схему и проект в Proteus ( viewtopic.php?p=140960 ). Благодаря последнему я нашел причину неработоспособности моей схемы (потребовался еще один "костыль", чтобы она заработала). После этого заменил микросхему 74HC374 на 74HC377, которая была в оригинале, и схема заработала без "костылей". Симулируется на частоте около 16 килогерц, поэтому ждать реакции на нажатую кнопку очень долго. Поэтому я заменил кнопки на выключатели с фиксацией. Схема в архиве. Схема проверена на версиях SimulIDE 0.4.14., 0.4.15. работает без нареканий.
You do not have the required permissions to view the files attached to this post.
User avatar
FizikS
Maniac
Posts: 264
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

Предлагаю схему цифрового вольтметра на основе АЦП последовательного приближения с пределами 0-9В, 0-100В. К достоинствам можно отнести высокую скорость преобразования (На схеме выставлена скорость около 1000 отсчетов в секунду). Из недостатков могу отметить некоторую сложность схемы. Если применить регистр последовательных приближений, то схема значительно упростится (пока в симуляторе нет модели регистра последовательных приближений). Схема работает просто: входное напряжение преобразуется в двоичный код за 14 тактов (отсюда и большая скорость преобразования), затем он подается в дисплейный модуль, который и выводит полученный код на индикатор. Проще не придумаешь. Микроконтроллеры не рассматриваю. Все сделано на железной логике.
You do not have the required permissions to view the files attached to this post.
User avatar
FizikS
Maniac
Posts: 264
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

На регистрах последовательных приближений схема вольтметра значительно упрощается...
You do not have the required permissions to view the files attached to this post.
User avatar
FizikS
Maniac
Posts: 264
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

Разработал для себя схему, которая позволяет быстро сделать знакогенератор для семисегментного индикатора, размещаемого в ПЗУ (раньше такими дешифраторами на 155РЕ3 "баловались", чтобы отображать шестнадцатеричные цифры). Нажатие кнопок "a"-"h" инвертирует биты, кнопками "U", "D" меняем адрес ячейки ПЗУ, "R" - сбрасывает счетчик адреса в 0. Готовую прошивку сохраняем в текстовой файл для последующей загрузки в ПЗУ.
You do not have the required permissions to view the files attached to this post.
User avatar
FizikS
Maniac
Posts: 264
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

Выкладываю очередную поделку. Назовем ее "ROM editor". Схема позволяет редактировать содержимое ПЗУ (ОЗУ) в визуальном режиме. Я с ее помощью сделал две модельки для SimulIDE и еще буду применять в своей работе. Эта схема так же поможет быстро создать микрокод самодельного процессора. Для удобства редактирования в схеме имеются текстовые комментарии к каждому биту, записываемому в ПЗУ. Их можно изменить по своему усмотрению.
Назначение кнопок:
"U", "D" меняют адрес ячейки ПЗУ для каждого счетчика,
"R" - сбрасывает счетчик адреса в 0.
"0", "1", ... , "7" - инвертируют соответствующие биты в ПЗУ (ОЗУ)
"P" - защита от потери информации по нулевому адресу после выключения симуляции (On - редактирование , Off - хранение)

После изменения данных переводим переключатель "P" в положение Off, сохраняем содержимое ПЗУ в файл (бинарный или текстовой), выключаем симуляцию, сохраняем схему. При следующем запуске содержимое ПЗУ восстанавливается. Если нежелательно сохранять содержимое ПЗУ в схеме, то в его свойствах (для всех трех ПЗУ) выставляем параметр "Сохранять данные" ("Persistent" в английской версии) в False.
Легко заметить, что схема легко масштабируется: можно выбросить лишние ПЗУ со схемой управления, или добавить еще несколько.

PS. Схема разработана по мотивам программы ROM Bin editor, которую написал Lavr и выложил здесь: viewtopic.php?p=112698#p112698
PPS. Если считаете, что схема убогая, критикуйте (я не электронщик, косяки в схеме возможны). Любые рекомендации по доработке (кроме удалить нафиг) приветствуются.
You do not have the required permissions to view the files attached to this post.
User avatar
FizikS
Maniac
Posts: 264
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

3 апреля 2021 года стала доступной тестовая (нестабильная) сборка SimulIDE 0.4.15.Final.
Полное описание, список изменений, новые компоненты описаны на официальном сайте: [url="https://www.simulide.com/2021/04/simulide-0415-unstable-released.html"]SimulIDE 0.4.15 (unstable) released.[/url]

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

Некоторые изменения:
  • переработан движок моделирования цифровых микросхем
  • добавлен 4-х канальный осциллограф
  • добавлен 8 канальный логический анализатор
  • платы Arduino являются подсхемами
  • добавлен монитор состояния микроконтроллера (просмотр/изменение содержимого памяти, регистров)
  • открытие окна свойств двойным кликом на компоненте
  • просмотрщик/редактор памяти
  • несколько новых переводов
  • несколько новых компонентов и подсхем
  • возможность самостоятельного создания шилдов для Arduino
  • исправлено множество ошибок
Обращаю внимание, что этот выпуск тестовый, предназначен для обнаружения ошибок и ознакомления с новыми возможностями программы.

Известные, найденные мной ошибки:
  • не работают схемы, подсхемы, содержащие элементы с открытым коллектором.
  • возможны ошибки в симуляции схем, созданных в предыдущих версиях программы
  • возможна потеря соединений плат Arduino с остальными компонентами схемы, созданной в предыдущих версиях программы
  • возможно зависание программы при симуляции схем
  • возможен крах программы при удалении нескольких выделенных компонентов схемы
Огромная просьба ко всем, кто обнаружит ошибки в программе сообщить о них здесь. Это поможет исправить их в самое ближайшее время и ускорить выпуск стабильного релиза.
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by Lavr »

FizikS wrote:Огромная просьба ко всем, кто обнаружит ошибки в программе сообщить о них здесь.
Это поможет исправить их в самое ближайшее время и ускорить выпуск стабильного релиза.

Image
А вы кто в этом списке? (подозреваю, что Santiago Gonzalez - это не вы... :wink: )
iLavr
User avatar
FizikS
Maniac
Posts: 264
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

А вы кто в этом списке? (подозреваю, что Santiago Gonzalez - это не вы... :wink: )
Santiago Gonzalez недавно прописался на форуме Kazus.ru. Читает его регулярно, иногда отвечает на вопросы. Меня вычислить легко, прочитав список изменений к программе. В последнем релизе Сантьяго присоединил меня к списку разработчиков, перевод на русский язык в последнее время (уже год как) - тоже мой. Этого достаточно для разоблачения. Очень хотелось видеть здесь автора программы, но пока никак. По запросу SimuliDE Яндекс находит ветку на Kazus.ru и на NedoPC.org. Google находит только ветку на NedoPC.org. При условии активности в этой ветке возможно появление автора и здесь... Все в наших руках...
Konstantin18
Maniac
Posts: 325
Joined: 15 Jan 2019 15:48
Location: Украина, Луганская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by Konstantin18 »

FizikS wrote:
А вы кто в этом списке? (подозреваю, что Santiago Gonzalez - это не вы... :wink: )
Santiago Gonzalez Меня вычислить легко ...
Сергей Роенко. :ebiggrin:
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by Lavr »

Konstantin18 wrote:
FizikS wrote:
А вы кто в этом списке? (подозреваю, что Santiago Gonzalez - это не вы... :wink: )
Santiago Gonzalez Меня вычислить легко ...
Сергей Роенко. :ebiggrin:
Кокой ти предатель... я вот - ничего не сказал... :ewink:
iLavr
User avatar
FizikS
Maniac
Posts: 264
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

Вышло Обновление программы SimulIDE 0.4.15.SR1 (Нестабильная версия, только для тестирования. Релиз от 11.04.2021). Финальную версию SimulIDE 0.4.15_Final использовать не рекомендуется по причине обнаруженных критических ошибок, не позволяющих корректно производить симуляцию схем. Оригинал можно скачать на официальном сайте: https://www.simulide.com/p/downloads.html

В топике размещены ссылки на программу с дополнительными инструментами. Нужны не всем, но мне очень помогают при поиске ошибок в схемах.
Список изменений:
SR1:
- Keep old Arduinos available (needed for old circuits by now).
- New Arduinos as experimental.

Список исправлений:
SR1:
- Critical: Undo Rev 97, changes in eNode break simulation.
- Wires not updating correctly when Circuit is animated.
- Crash: attach+detach+attach Sield.
- Boards: error in some Pin angles.
- Boards(Subcircuits): Childs moving if selected.
- Subcircuit: Tunnels not properly initialized.
- New Arduinos: make shields usable for all Arduinos.
- DC Motor wrong speed indicator.
- KY40 not working.
- Oscope: Missing graphic if no wave detected.
- Oscope: Error changing Time Div in box.
- Oscope not working at long Time Div.
- Oscope: fix square wave at low freq & long Time Div.
- Oscope & LA: pulses not shown when subsample is active.
- Oscope & LA: Connect to Tunnel not working
- Logic Analizer: wrong defaul Volt. Div.
- Tunnels: Error after renaming.
- Tunnels: Connection error in some cases.
- Crash deleting MCU and then running simulation.
- MCU extra step time not in sync with Simulation time.
- 7 Seg BCD not working in Subcircuits.

По традиции, прошу сообщать о найденных ошибках. Это позволит улучшить программу.
You do not have the required permissions to view the files attached to this post.
User avatar
FizikS
Maniac
Posts: 264
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: SimulIDE бесплатный симулятор электроники (PIC, AVR, циф

Post by FizikS »

Подписчикам доступна новая версия программы SimulIDE 0.4.15.SR2. Благодаря активности пользователей с момента анонса версии 0.4.15 было найдено большое количество ошибок, которые устранены автором программы.

Список исправлений:
SR2:

- Package errors: 74377, 74373, 74688
- DC Motor not cleared at simulation stop.
- Memory table: Crash clicking on column 16.
- Variable Resistors: error setting value from properties.
- Translations: missing properties.
- Error in simulation speed after changing step ns, save and open again.
- BJT pnp not working.
- PIC: Crash using Usart.
- PIC: Crash in devices with no EEPROM.
- Frequencymeter not detecting freqs below 2 Hz.
- Clock: "Always On" property not initialized.
- Mosfet: error in some cases.
- MCUs: dedicated Reset Pin not working.
- Oscope: spinBoxes rejects values > 1e3.
- AVR gdb not initialized.
- Shields not saved to Circuit file.
- AVR Timer: Error writting OCRA, wrong next compare match.
- Arduino Mega: some PWM channels not working.
- SR04 Error at distance = 0.
- I2C RAM: data container not resized.
- Memory Table: wrong Address column size for memories > 256.
- McuMonitor: Errors in Flash word size.
- Crash resizing Memory after opening MemTable.
- RAM/ROM not resizing MemTable.
- Tunnels & Packages should not be Main Component is Subcircuits.

Добавлены новые виртуальные инструменты для облегчения отладки схем.