Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить

Proveus + виртуальный COM порт теряется связь.

Вс авг 06, 2017 20:15:18

Занимаюсь моделированием устройства которое обменивается с ПК по определенному протоколу. Устройство на МК атмега128, но это совершенно не важно. Еще есть прикладная программа для ПК которая обменивается с "железным устройством". Чтоб задействовать эту программу в симуляции, создаю виртуальную пару COM портов, у которых приемники и передатчики попарно соединены. В Протеусе вывожу uart на COMPIM, назначаю COMPIM на один виртуальный COM, а другой виртуальный COM открываю в программе. Теперь мой МК и программа виртуально соединены. Но работает это только на один раз запуска симуляции. Если остановить симуляцию и запустить снова, связи не будет. Если выйти из Протеуса и зайти снова - опять заработает на один раз.
Что можно сделать?

Re: Proveus + виртуальный COM порт теряется связь.

Вс авг 06, 2017 22:28:30

Обработчики ошибок есть? Четности например.

Re: Proveus + виртуальный COM порт теряется связь.

Вс авг 06, 2017 23:03:24

К программе вопросов нет. Потому что если заменить ее на терминалку, результат тот же. И вообще, эта программа отлажена на железе. Глюк происходит в виртуальной связке.
Виртуальный порт тоже не виноват, поскольку замена на другой работает так же. По всем признакам глючит Proteus.

Re: Proveus + виртуальный COM порт теряется связь.

Пн авг 07, 2017 13:08:31

paskal писал(а):По всем признакам глючит Proteus.

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

Re: Proveus + виртуальный COM порт теряется связь.

Пн авг 07, 2017 14:43:13

К программе вопросов нет. Потому что если заменить ее на терминалку, результат тот же. И вообще, эта программа отлажена на железе. Глюк происходит в виртуальной связке.
Виртуальный порт тоже не виноват, поскольку замена на другой работает так же. По всем признакам глючит Proteus.

Я имел ввиду, что разные системы по разному относятся к наличию обработчика ошибок. Например ATmega при возникновении ошибки четности продолжает прием (генерирует биты прерывания и завершения приема байта) более старшие кристаллы (TMS320) при возникновении ошибки встают колом и следующий байт не принимают (не генерирует биты прерывания и завершения приема байта), пока биты ошибки не будут считаны программно. Когда Вы, прерываете симуляцию, то, возможно, взводиться состояние ошибки и, если эту ошибку не обработать (считать кодом обработчика) то дальнейший обмен по последовательному интерфейсу встанет. Так я рассуждал.

P.S. Также возможно, что виртуальный COM в Протеусе предусматривает место, где пользователь должен поместить свой код обработчика ошибок.

Re: Proveus + виртуальный COM порт теряется связь.

Пн авг 07, 2017 14:59:00

похоже, это халявный протеус имел тебя в виду :)))
Ответить