|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра)
Author |
Message |
FizikS
Maniac
Joined: 11 Oct 2018 00:52 Posts: 201 Location: г. Клинцы, Брянская обл.
|
Нашел причину. Я не великий программист на ассемблере, поэтому пришлось повозиться. Я включил анимацию на схеме и просмотрел в пошаговом режиме сигналы на линиях портов. Обнаружил, что при записи первого байта не формируется сигнал строба записи (вначале выставляем данные, потом стробируем сигнал записи). Добавил одну команду в листинг и все заработало (частота 16 МГЦ). В режиме пошаговой отладки так же проблем не обнаружил. | | | | Code: .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
| | | | |
|
16 Feb 2021 01:37 |
|
|
SAA
Senior
Joined: 12 Jul 2016 21:30 Posts: 136
|
Спасибо что повозились ради такого! Согласен с "плюхой" при записи первого байта, проглядел в каком состоянии PORTG с линией WE. Исправил, попробовал только что на 2МГц, 4МГц безукоризненно! А вот 6МГц, посмотрите на скриншот. В режиме отладки с остановкой по брейкпоинту в mainloop - ничего не изменилось - в дампе нули даже при 2МГц.
|
16 Feb 2021 04:54 |
|
|
SAA
Senior
Joined: 12 Jul 2016 21:30 Posts: 136
|
Еще обнаружилась неприятность с таймерами и частотомерами. Ладно частотомеры в районе 250КГц только, это понятно. Но вот таймеры AVR ATmega-128 запущенные в режиме CTC, что Timer0, что Timer3 должны генерировать меандр с частотой 1/2 CLK, на порте D "ногодрыг" показывает больше. Не поленился проверил на железке, все правильно получил четкие 1/2 CLK. Либо как то неправильно инициализирован делитель, хотя XDIV проверил у модели равен 0 как и должен, либо что то не так с прескаллерами. Разные по настройкам таймера показывают одинаковые процессы и что характерно изменение регистров OCRxCL, не влияет на частоту меандра, что уж совсем не понятно.
|
16 Feb 2021 08:59 |
|
|
FizikS
Maniac
Joined: 11 Oct 2018 00:52 Posts: 201 Location: г. Клинцы, Брянская обл.
|
Отрисовал в SimulIDE известный 4-х битный процессор Nibbler. После некоторых танцев с бубном от все-таки запустился. Выражаю огромную благодарность Lavr-у за выложенную схему и проект в Proteus ( viewtopic.php?p=140960 ). Благодаря последнему я нашел причину неработоспособности моей схемы (потребовался еще один "костыль", чтобы она заработала). После этого заменил микросхему 74HC374 на 74HC377, которая была в оригинале, и схема заработала без "костылей". Симулируется на частоте около 16 килогерц, поэтому ждать реакции на нажатую кнопку очень долго. Поэтому я заменил кнопки на выключатели с фиксацией. Схема в архиве. Схема проверена на версиях SimulIDE 0.4.14., 0.4.15. работает без нареканий.
|
24 Feb 2021 10:22 |
|
|
FizikS
Maniac
Joined: 11 Oct 2018 00:52 Posts: 201 Location: г. Клинцы, Брянская обл.
|
Предлагаю схему цифрового вольтметра на основе АЦП последовательного приближения с пределами 0-9В, 0-100В. К достоинствам можно отнести высокую скорость преобразования (На схеме выставлена скорость около 1000 отсчетов в секунду). Из недостатков могу отметить некоторую сложность схемы. Если применить регистр последовательных приближений, то схема значительно упростится (пока в симуляторе нет модели регистра последовательных приближений). Схема работает просто: входное напряжение преобразуется в двоичный код за 14 тактов (отсюда и большая скорость преобразования), затем он подается в дисплейный модуль, который и выводит полученный код на индикатор. Проще не придумаешь. Микроконтроллеры не рассматриваю. Все сделано на железной логике.
|
03 Mar 2021 01:10 |
|
|
FizikS
Maniac
Joined: 11 Oct 2018 00:52 Posts: 201 Location: г. Клинцы, Брянская обл.
|
На регистрах последовательных приближений схема вольтметра значительно упрощается...
|
18 Mar 2021 06:47 |
|
|
FizikS
Maniac
Joined: 11 Oct 2018 00:52 Posts: 201 Location: г. Клинцы, Брянская обл.
|
Разработал для себя схему, которая позволяет быстро сделать знакогенератор для семисегментного индикатора, размещаемого в ПЗУ (раньше такими дешифраторами на 155РЕ3 "баловались", чтобы отображать шестнадцатеричные цифры). Нажатие кнопок "a"-"h" инвертирует биты, кнопками "U", "D" меняем адрес ячейки ПЗУ, "R" - сбрасывает счетчик адреса в 0. Готовую прошивку сохраняем в текстовой файл для последующей загрузки в ПЗУ.
|
18 Mar 2021 06:52 |
|
|
FizikS
Maniac
Joined: 11 Oct 2018 00:52 Posts: 201 Location: г. Клинцы, Брянская обл.
|
Выкладываю очередную поделку. Назовем ее "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#p112698PPS. Если считаете, что схема убогая, критикуйте (я не электронщик, косяки в схеме возможны). Любые рекомендации по доработке (кроме удалить нафиг) приветствуются.
|
01 Apr 2021 02:44 |
|
|
FizikS
Maniac
Joined: 11 Oct 2018 00:52 Posts: 201 Location: г. Клинцы, Брянская обл.
|
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 с остальными компонентами схемы, созданной в предыдущих версиях программы
- возможно зависание программы при симуляции схем
- возможен крах программы при удалении нескольких выделенных компонентов схемы
Огромная просьба ко всем, кто обнаружит ошибки в программе сообщить о них здесь. Это поможет исправить их в самое ближайшее время и ускорить выпуск стабильного релиза.
|
04 Apr 2021 00:12 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А вы кто в этом списке? ( подозреваю, что Santiago Gonzalez - это не вы... )
_________________ iLavr
|
04 Apr 2021 14:14 |
|
|
FizikS
Maniac
Joined: 11 Oct 2018 00:52 Posts: 201 Location: г. Клинцы, Брянская обл.
|
Santiago Gonzalez недавно прописался на форуме Kazus.ru. Читает его регулярно, иногда отвечает на вопросы. Меня вычислить легко, прочитав список изменений к программе. В последнем релизе Сантьяго присоединил меня к списку разработчиков, перевод на русский язык в последнее время (уже год как) - тоже мой. Этого достаточно для разоблачения. Очень хотелось видеть здесь автора программы, но пока никак. По запросу SimuliDE Яндекс находит ветку на Kazus.ru и на NedoPC.org. Google находит только ветку на NedoPC.org. При условии активности в этой ветке возможно появление автора и здесь... Все в наших руках...
|
04 Apr 2021 23:38 |
|
|
Konstantin18
Maniac
Joined: 15 Jan 2019 15:48 Posts: 326 Location: Украина, Луганская обл.
|
Сергей Роенко.
|
05 Apr 2021 00:35 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Кокой ти предатель... я вот - ничего не сказал...
_________________ iLavr
|
05 Apr 2021 10:54 |
|
|
FizikS
Maniac
Joined: 11 Oct 2018 00:52 Posts: 201 Location: г. Клинцы, Брянская обл.
|
Вышло Обновление программы 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. По традиции, прошу сообщать о найденных ошибках. Это позволит улучшить программу.
|
13 Apr 2021 04:10 |
|
|
FizikS
Maniac
Joined: 11 Oct 2018 00:52 Posts: 201 Location: г. Клинцы, Брянская обл.
|
Подписчикам доступна новая версия программы 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.
Добавлены новые виртуальные инструменты для облегчения отладки схем.
|
04 May 2021 01:04 |
|
|
Who is online |
Users browsing this forum: No registered users and 2 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|