nedoPC.org

Community of electronics hobbyists established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 21 Apr 2021 11:34



Reply to topic  [ 44 posts ]  Go to page Previous  1, 2, 3
SimulIDE бесплатный симулятор электроники (PIC, AVR, цифра) 
Author Message
Novelist
User avatar

Joined: 11 Oct 2018 01:52
Posts: 32
Location: г. Клинцы, Брянская обл.
Reply with quote
Нашел причину. Я не великий программист на ассемблере, поэтому пришлось повозиться. Я включил анимацию на схеме и просмотрел в пошаговом режиме сигналы на линиях портов. Обнаружил, что при записи первого байта не формируется сигнал строба записи (вначале выставляем данные, потом стробируем сигнал записи).
Добавил одну команду в листинг и все заработало (частота 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 02:37
Profile
Senior

Joined: 12 Jul 2016 22:30
Posts: 136
Reply with quote
FizikS wrote:
Нашел причину. ..... Добавил одну команду в листинг и все заработало (частота 16 МГЦ). В режиме пошаговой отладки так же проблем не обнаружил.
Code:
      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МГц.


Attachments:
AVR128-6MHz-dump.jpg
AVR128-6MHz-dump.jpg [ 85.33 KiB | Viewed 993 times ]
16 Feb 2021 05:54
Profile
Senior

Joined: 12 Jul 2016 22:30
Posts: 136
Reply with quote
Еще обнаружилась неприятность с таймерами и частотомерами. Ладно частотомеры в районе 250КГц только, это понятно. Но вот таймеры AVR ATmega-128 запущенные в режиме CTC, что Timer0, что Timer3 должны генерировать меандр с частотой 1/2 CLK, на порте D "ногодрыг" показывает больше. Не поленился проверил на железке, все правильно получил четкие 1/2 CLK. Либо как то неправильно инициализирован делитель, хотя XDIV проверил у модели равен 0 как и должен, либо что то не так с прескаллерами. Разные по настройкам таймера показывают одинаковые процессы и что характерно изменение регистров OCRxCL, не влияет на частоту меандра, что уж совсем не понятно.


Attachments:
ATMega128-CTC-FREQ.jpg
ATMega128-CTC-FREQ.jpg [ 179.08 KiB | Viewed 977 times ]
16 Feb 2021 09:59
Profile
Novelist
User avatar

Joined: 11 Oct 2018 01:52
Posts: 32
Location: г. Клинцы, Брянская обл.
Reply with quote
Отрисовал в SimulIDE известный 4-х битный процессор Nibbler. После некоторых танцев с бубном от все-таки запустился. Выражаю огромную благодарность Lavr-у за выложенную схему и проект в Proteus ( viewtopic.php?p=140960 ). Благодаря последнему я нашел причину неработоспособности моей схемы (потребовался еще один "костыль", чтобы она заработала). После этого заменил микросхему 74HC374 на 74HC377, которая была в оригинале, и схема заработала без "костылей". Симулируется на частоте около 16 килогерц, поэтому ждать реакции на нажатую кнопку очень долго. Поэтому я заменил кнопки на выключатели с фиксацией. Схема в архиве. Схема проверена на версиях SimulIDE 0.4.14., 0.4.15. работает без нареканий.


Attachments:
Nibbler_final.PNG
Nibbler_final.PNG [ 230.83 KiB | Viewed 937 times ]
Nibbler_4bit.zip [29.58 KiB]
Downloaded 37 times
24 Feb 2021 11:22
Profile
Novelist
User avatar

Joined: 11 Oct 2018 01:52
Posts: 32
Location: г. Клинцы, Брянская обл.
Reply with quote
Предлагаю схему цифрового вольтметра на основе АЦП последовательного приближения с пределами 0-9В, 0-100В. К достоинствам можно отнести высокую скорость преобразования (На схеме выставлена скорость около 1000 отсчетов в секунду). Из недостатков могу отметить некоторую сложность схемы. Если применить регистр последовательных приближений, то схема значительно упростится (пока в симуляторе нет модели регистра последовательных приближений). Схема работает просто: входное напряжение преобразуется в двоичный код за 14 тактов (отсюда и большая скорость преобразования), затем он подается в дисплейный модуль, который и выводит полученный код на индикатор. Проще не придумаешь. Микроконтроллеры не рассматриваю. Все сделано на железной логике.


Attachments:
Voltmeter_Successive_Approximation_type_0-100V.zip [49.67 KiB]
Downloaded 33 times
V_2.PNG
V_2.PNG [ 183.55 KiB | Viewed 900 times ]
V_1.PNG
V_1.PNG [ 183.71 KiB | Viewed 900 times ]
03 Mar 2021 02:10
Profile
Novelist
User avatar

Joined: 11 Oct 2018 01:52
Posts: 32
Location: г. Клинцы, Брянская обл.
Reply with quote
На регистрах последовательных приближений схема вольтметра значительно упрощается...


Attachments:
Voltmeter_SAR.PNG
Voltmeter_SAR.PNG [ 70.16 KiB | Viewed 674 times ]
18 Mar 2021 07:47
Profile
Novelist
User avatar

Joined: 11 Oct 2018 01:52
Posts: 32
Location: г. Клинцы, Брянская обл.
Reply with quote
Разработал для себя схему, которая позволяет быстро сделать знакогенератор для семисегментного индикатора, размещаемого в ПЗУ (раньше такими дешифраторами на 155РЕ3 "баловались", чтобы отображать шестнадцатеричные цифры). Нажатие кнопок "a"-"h" инвертирует биты, кнопками "U", "D" меняем адрес ячейки ПЗУ, "R" - сбрасывает счетчик адреса в 0. Готовую прошивку сохраняем в текстовой файл для последующей загрузки в ПЗУ.


Attachments:
ROM_Editor_7_seg.zip [11.56 KiB]
Downloaded 25 times
ROM_editor.PNG
ROM_editor.PNG [ 99.27 KiB | Viewed 674 times ]
18 Mar 2021 07:52
Profile
Novelist
User avatar

Joined: 11 Oct 2018 01:52
Posts: 32
Location: г. Клинцы, Брянская обл.
Reply with quote
Выкладываю очередную поделку. Назовем ее "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. Если считаете, что схема убогая, критикуйте (я не электронщик, косяки в схеме возможны). Любые рекомендации по доработке (кроме удалить нафиг) приветствуются.


Attachments:
ROM_Editor_24_BIT_count.zip [27.29 KiB]
Downloaded 14 times
Rom_ED1.PNG
Rom_ED1.PNG [ 115.21 KiB | Viewed 550 times ]
01 Apr 2021 03:44
Profile
Novelist
User avatar

Joined: 11 Oct 2018 01:52
Posts: 32
Location: г. Клинцы, Брянская обл.
Reply with quote
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 с остальными компонентами схемы, созданной в предыдущих версиях программы
  • возможно зависание программы при симуляции схем
  • возможен крах программы при удалении нескольких выделенных компонентов схемы

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


Attachments:
SimulIDE0.4.15F-3.PNG
SimulIDE0.4.15F-3.PNG [ 27.09 KiB | Viewed 498 times ]
SimulIDE0.4.15F-2.PNG
SimulIDE0.4.15F-2.PNG [ 76.66 KiB | Viewed 498 times ]
SimulIDE0.4.15F-1.PNG
SimulIDE0.4.15F-1.PNG [ 98.42 KiB | Viewed 498 times ]
04 Apr 2021 01:12
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
FizikS wrote:
Огромная просьба ко всем, кто обнаружит ошибки в программе сообщить о них здесь.
Это поможет исправить их в самое ближайшее время и ускорить выпуск стабильного релиза.

Image

А вы кто в этом списке? (подозреваю, что Santiago Gonzalez - это не вы... :wink: )

_________________
iLavr


04 Apr 2021 15:14
Profile
Novelist
User avatar

Joined: 11 Oct 2018 01:52
Posts: 32
Location: г. Клинцы, Брянская обл.
Reply with quote
Quote:
А вы кто в этом списке? (подозреваю, что Santiago Gonzalez - это не вы... :wink: )

Santiago Gonzalez недавно прописался на форуме Kazus.ru. Читает его регулярно, иногда отвечает на вопросы. Меня вычислить легко, прочитав список изменений к программе. В последнем релизе Сантьяго присоединил меня к списку разработчиков, перевод на русский язык в последнее время (уже год как) - тоже мой. Этого достаточно для разоблачения. Очень хотелось видеть здесь автора программы, но пока никак. По запросу SimuliDE Яндекс находит ветку на Kazus.ru и на NedoPC.org. Google находит только ветку на NedoPC.org. При условии активности в этой ветке возможно появление автора и здесь... Все в наших руках...


05 Apr 2021 00:38
Profile
Maniac

Joined: 15 Jan 2019 16:48
Posts: 269
Location: Украина, Луганская обл.
Reply with quote
FizikS wrote:
Quote:
А вы кто в этом списке? (подозреваю, что Santiago Gonzalez - это не вы... :wink: )

Santiago Gonzalez Меня вычислить легко ...


Сергей Роенко. :ebiggrin:


05 Apr 2021 01:35
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Konstantin18 wrote:
FizikS wrote:
Quote:
А вы кто в этом списке? (подозреваю, что Santiago Gonzalez - это не вы... :wink: )
Santiago Gonzalez Меня вычислить легко ...
Сергей Роенко. :ebiggrin:

Кокой ти предатель... я вот - ничего не сказал... :ewink:

_________________
iLavr


05 Apr 2021 11:54
Profile
Novelist
User avatar

Joined: 11 Oct 2018 01:52
Posts: 32
Location: г. Клинцы, Брянская обл.
Reply with quote
Вышло Обновление программы 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.

По традиции, прошу сообщать о найденных ошибках. Это позволит улучшить программу.


Attachments:
File comment: Дополнительные инструменты
Toolls.PNG
Toolls.PNG [ 67.53 KiB | Viewed 293 times ]
13 Apr 2021 05:10
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 44 posts ]  Go to page Previous  1, 2, 3

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

Search for:
Jump to:  

Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.