Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Proteus, KiCAD и другие ECAD Разработчик так или иначе сталкивается с системами автоматизированного проектирования. Данный раздел - по САПР.

 
Опции темы
Непрочитано 20.03.2022, 21:29  
fifan
Частый гость
 
Аватар для fifan
 
Регистрация: 11.02.2007
Сообщений: 23
Сказал спасибо: 5
Сказали Спасибо 5 раз(а) в 3 сообщении(ях)
fifan на пути к лучшему
По умолчанию Re: Cимулятор SimuIIDE

У меня почти получилось сделать главную функцию TM1638 - вывод на индикаторы введённых данных. Нужно посмотреть сначала как на реале происходит индикация. Для этого у меня на монтажной плате установлен PIC16F786A и мне как-то удалось вывести через него на индикатор какую-то белиберду из засвеченных сегментов. Это было где-то год назад. Сейчас я тупо хочу вывести 8 цифр и засветить две линейки светодиодов. Я взялся за тяжёлый случай, а именно индикатор с ОА. Кто сталкивался с этим поймёт меня. Китайцы делают макетные платы под эту микросхему с индикаторами с ОК, где очень удобно складывать введённые цифры в линейный массив регистров. TM1638 тупо отображает эти регистры на индикаторе. А вот с ОА - это взрыв извращения.



Так выглядит текущая эмуляция.

Миниатюры:
Нажмите на изображение для увеличения
Название: tm1638.jpg
Просмотров: 0
Размер:	241.2 Кб
ID:	170055  
fifan вне форума  
Эти 2 пользователя(ей) сказали Спасибо fifan за это сообщение:
Fizik_S (21.03.2022), mike-y-k (21.03.2022)
Непрочитано 21.03.2022, 08:54  
Fizik_S
Прописка
 
Аватар для Fizik_S
 
Регистрация: 24.04.2008
Адрес: г. Клинцы, Брянская обл.
Сообщений: 140
Сказал спасибо: 37
Сказали Спасибо 74 раз(а) в 65 сообщении(ях)
Fizik_S на пути к лучшему
По умолчанию Re: Cимулятор SimuIIDE

Отличная работа!
На выходе можно получить:
а) отдельную модель контроллера TM1638, а также ему подобные
б) модели нескольких реальных плат с индикаторами, светодиодами, кнопками
Проверю, можно ли сделать модели на основе микроконтроллеров.
__________________
С уважением, Роенко С.А., Клинцы.
Fizik_S вне форума  
Непрочитано 22.03.2022, 20:08  
fifan
Частый гость
 
Аватар для fifan
 
Регистрация: 11.02.2007
Сообщений: 23
Сказал спасибо: 5
Сказали Спасибо 5 раз(а) в 3 сообщении(ях)
fifan на пути к лучшему
По умолчанию Re: Cимулятор SimuIIDE

Допиливаю ввод данных с автоинкрементом адреса. Нужно будет организовать переключатель ОА/ОК т.к. вывод на индикатор в корне отличается для индикаторов с ОА/ОК. Пока не получается заполнить буфер регистров дисплея, а отобразить данные с буфера не так уж сложно. Конечным этапом будет работа с клавиатурой. Там нужно будет организовать опрос кнопок по прерыванию. Пока в этом проекте я не использовал прерывания.
fifan вне форума  
Непрочитано 23.03.2022, 00:15  
Fizik_S
Прописка
 
Аватар для Fizik_S
 
Регистрация: 24.04.2008
Адрес: г. Клинцы, Брянская обл.
Сообщений: 140
Сказал спасибо: 37
Сказали Спасибо 74 раз(а) в 65 сообщении(ях)
Fizik_S на пути к лучшему
По умолчанию Re: Cимулятор SimuIIDE

Автор программы поддержал идею создания моделей таким образом. Проблем с помещением их в оболочку (логический символ, корпус, плату) не будет.
__________________
С уважением, Роенко С.А., Клинцы.
Fizik_S вне форума  
Сказали "Спасибо" Fizik_S
fifan (23.03.2022)
Непрочитано 23.03.2022, 18:45  
fifan
Частый гость
 
Аватар для fifan
 
Регистрация: 11.02.2007
Сообщений: 23
Сказал спасибо: 5
Сказали Спасибо 5 раз(а) в 3 сообщении(ях)
fifan на пути к лучшему
По умолчанию Re: Cимулятор SimuIIDE

Обнаружил баг программы. Абсолютно не работает инструкция ADDWF F, D микроконтроллера PIC16F877. Регистр участвующий в этой инструкции никак не меняется в двух вариантах данного операнда. По идее регистр f должен сложится с аккумулятором w и результат должен положится в тот же регистр или в w.

По моему проекту. Данные переданные источником (использовал мелкий пик) передаются и принимаются эмулятором TM1638, но происходит порча принятых данных - разбираюсь. По индикации никак не идёт. Похоже нагрузка на каждый порт пика сегментов одного индикатора и одновременно анодов или катодов засветки индикаторов ОА/ОК не работает. Наверное нужно будет ставить транзисторные ключи. Хотел обойтись без них. Это для симуляции. Реальный пользователь будет использовать только один из ОА/ОК 10/8 знакоместных индикаторов.
Ещё наверное в эмуляторах для простоты не учитывают реальную частоту микросхемы. Нашёл в даташите на TM1638 только максимальную частоту синхронизации - 450 кГц, минимальная - прочерк, я использую порядка 8 кГц.
fifan вне форума  
Непрочитано 23.03.2022, 20:08  
Fizik_S
Прописка
 
Аватар для Fizik_S
 
Регистрация: 24.04.2008
Адрес: г. Клинцы, Брянская обл.
Сообщений: 140
Сказал спасибо: 37
Сказали Спасибо 74 раз(а) в 65 сообщении(ях)
Fizik_S на пути к лучшему
По умолчанию Re: Cимулятор SimuIIDE

Сообщил о проблеме на основном форуме.

По проекту: я бы сделал 2 схемы - одну на индикаторах с ОК, другую с - ОА, клавиатуру лучше поставить KeyPAD и сделать подписи на кнопки - будет намного компактнее и симпатичнее.
С PIC такие проблемы, думаю потому, что ими редко кто занимается. На форуме сообщения об ошибках в основном по AVR, причем это либо ARDUINO, либо MEGA328.
Теперь будем ждать версию с исправлениями.
Миниатюры:
Нажмите на изображение для увеличения
Название: KeyPAD.PNG
Просмотров: 0
Размер:	22.0 Кб
ID:	170087  
__________________
С уважением, Роенко С.А., Клинцы.
Fizik_S вне форума  
Непрочитано 23.03.2022, 21:47  
Fizik_S
Прописка
 
Аватар для Fizik_S
 
Регистрация: 24.04.2008
Адрес: г. Клинцы, Брянская обл.
Сообщений: 140
Сказал спасибо: 37
Сказали Спасибо 74 раз(а) в 65 сообщении(ях)
Fizik_S на пути к лучшему
По умолчанию Re: Cимулятор SimuIIDE

Получил ответ от автора:
Цитата:
ADDWF is working correctly in both variants, the problem must be other.
The only reason that comes to my mind is a wrong baksel.
Если я правильно понял, проблема может быть в другом месте ...

В подобных случаях я делал так (немного геморрно, но результат 100%):
открываю 2 программы 0.4.15 (стабильная) и 1.0.0 (с подозрением на ошибки);
на схеме достаточно разместить подозрительный МК (чтобы в старой версии не собирать схему). Исходник прошивки один и тот-же в обеих программах. Запускаю отладку в подозрительных местах и делаю шаги по очереди в каждой программе. В мониторе контроллера сравниваю содержимое регистров после выполнения каждой команды делаю выводы.
__________________
С уважением, Роенко С.А., Клинцы.
Fizik_S вне форума  
Непрочитано 25.03.2022, 22:05  
fifan
Частый гость
 
Аватар для fifan
 
Регистрация: 11.02.2007
Сообщений: 23
Сказал спасибо: 5
Сказали Спасибо 5 раз(а) в 3 сообщении(ях)
fifan на пути к лучшему
По умолчанию Re: Cимулятор SimuIIDE

Всё же не работает упомянутая мною инструкция сложения. Я добился установкой бита 5 конечного регистра адреса, чтобы для моего применения сложить адрес с числом #20. Поясню подробнее. Приходит у меня в контроллер адрес с 0 по 15. Теперь, чтобы найти этот адрес в ячейке микроконтроллера с адреса #20 по логике мне нужно сложить адрес с #20. Я так и делаю, но операнд сложения даёт мне число просто адреса с 0 по 15, а не с #20 по #3f.

По проекту. Добился полной правильной передачи и приёма данных по трёхпроводной шине TM1638. Теперь нужно организовать вывод на дисплейный модуль. Но в этом симуляторе нет возможности организовать задержку данных как в Протеусе. В свойствам индикатора только электрические характеристики: напряжение, ток и сопротивление (зачем оно?). С давних времён у меня всегда получалась динамическая индикация. Здесь нет. Давно ещё с программирования на МК48/МК51 я запомнил формулу: 50/n, где n - число знакомест индикатора. Формула даёт время в миллисекндах с какой нужно вызывать процедуру отдачи байта засветки на сегменты и выборки знакоместа индикатора. В этом симуляторе хоть ты раньше этого время обновляешь индикатор, хоть позже никакой разницы - постоянное дёрганье сегментов индикатора. Мрак.
fifan вне форума  
Непрочитано 27.03.2022, 19:39  
fifan
Частый гость
 
Аватар для fifan
 
Регистрация: 11.02.2007
Сообщений: 23
Сказал спасибо: 5
Сказали Спасибо 5 раз(а) в 3 сообщении(ях)
fifan на пути к лучшему
По умолчанию Re: Cимулятор SimuIIDE

Т. к. автор симулятора не гарантирует работу PIC микроконтроллеров с прерываниями, то я не буду продолжать дальше попытки продвижения проекта. По опыту работы с TM1638 других пользователей необходимо организовывать прерывания каждые 2,5...3,3 мс (300...400 Гц). Это необходимое условие для динамической индикации и опроса клавиатуры.
fifan вне форума  
Непрочитано 25.08.2022, 20:14  
Serg77m
Прохожий
 
Регистрация: 25.08.2022
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Serg77m на пути к лучшему
По умолчанию Re: Cимулятор SimuIIDE

Добрый день.

Экспериментирую с SimulIDE, отлаживаю микроконтроллерное устройство с датчиками, сервомашинками и прочими механизмами. Есть проблема: нужно "смоделировать физику", как действия механизмов отражаются на показаниях датчиков. Простейший пример: связка мотор+энкодер, нужно чтобы вращение ротора мотора давало импульсы с энкодера. Пример посложнее: надо чтобы после N оборотов мотора срабатывал концевой выключатель. Есть и другие примеры... в общем надо как-то описать эту модель взаимодействия датчиков и механизмов, чтобы посмотреть как микроконтроллер с прошивкой это отрабатывает (в том числе и нештатные ситуации вроде обрыва датчика или заклинивания).

Как это можно решить? Пока вижу три пути:
1. моделировать физику в сторонней программе, данные с SimulIDE пробросить через DBus, сокеты, TCP/IP или ещё как-нибудь.
2. приделать плагины к SimulIDE, в которых описывать модель поведения. На C++ или может быть, QML.
3. (наверное, самое интересное решение): моделировать физику средствами самого SimulIDE а ля аналоговый компьютер.

Пока экспериментирую с методом (1) через DBus (не слишком удобно), но подумываю о методе (3), вроде бы всё реально: идеальные компоненты для вычислений (интегратор, перемножитель и т.п.) сделать несложно, только хотелось бы их графически разделить от электрической части схемы (линии другого цвета или может быть, нарисовать схему для модели где-то отдельно, и соединить её через туннели).

Какие ещё идеи есть по этому поводу?
Serg77m вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 13:37.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot