Список форумов   Список форумов  

Что VISA посылает в компорт?

Обсуждение работы в LabVIEW с оборудованием

Модераторы: Техподдержка NI, Robert, Модератор

Что VISA посылает в компорт?

Сообщение vlasov » Ср окт 31, 2012 12:07 pm

Формулирую проблему.
Есть самодельный контроллер шагового двигателя и виртуальный (USB) компорт.
Написанная на сях программа посылает в него команды вида \С0, \А0 и \А1. Один байт раз в секунду. Всё работает.
Программа Basic Serial Write and Read тоже посылает команды вида \С0, \А0 и \А1 (если верить программе Free Serial Port Monitor).
Но в контроллер проходит 0х00.
Подскажите, в чем может заключаться прикол?

PS: Если в контроллере прописать что-то вида "если прошёл 0, то отправитть А", то Basic Serial Write and Read прекрасно считывае эту А.

Labview 8.5
vlasov
 
Сообщений: 6
Зарегистрирован: Ср окт 31, 2012 11:48 am

Re: Что VISA посылает в компорт?

Сообщение Meteor » Ср окт 31, 2012 3:33 pm

vlasov писал(а):..программа посылает в него команды вида \С0, \А0 и \А1. Один байт раз в секунду. Всё работает.
Программа Basic Serial Write and Read тоже посылает команды вида \С0, \А0 и \А1 (если верить программе Free Serial Port Monitor).
Но в контроллер проходит 0х00.

Насколько понял есть 3 команды 0xC0, 0xA0 и 0xA1.
И попытка отослать одну из команд посредством средств LabView приводит к "ерунде".
Кода или точнее схемы Вы не представили, поэтому погадав на гуще делаю предположение, что вся беда в том, что команды прописываете как строку в итоге вместо одного байта например 0хС0, формируется как минимум 2 один с кодом буквы С, а второй с кодом 0.
Meteor
Активный пользователь
 
Сообщений: 31
Зарегистрирован: Пт фев 04, 2011 1:28 pm

Re: Что VISA посылает в компорт?

Сообщение vlasov » Ср окт 31, 2012 4:43 pm

Изображение
Подскажи, первый байт нулевой или последний (дописывается)?
Вопрос вот в чём: \С0 - это на кирилице А, и именно это я вижу в компорту на Free Serial Port Monitor (по другому- не увидел я там двух байт).
Или \С0, \А0, \А1- это два байта?
Проверю ещё раз с \А1, отпишусь.
vlasov
 
Сообщений: 6
Зарегистрирован: Ср окт 31, 2012 11:48 am

Re: Что VISA посылает в компорт?

Сообщение IvanLis » Чт ноя 01, 2012 4:23 pm

vlasov писал(а):Формулирую проблему.
Есть самодельный контроллер шагового двигателя и виртуальный (USB) компорт.
Написанная на сях программа посылает в него команды вида \С0, \А0 и \А1. Один байт раз в секунду. Всё работает.
Программа Basic Serial Write and Read тоже посылает команды вида \С0, \А0 и \А1 (если верить программе Free Serial Port Monitor).
Но в контроллер проходит 0х00.
Подскажите, в чем может заключаться прикол?

дело в том, что посылается не \С0
а формируется пакет, который имеет свою служебную информацию
например VISA позволяет настроить: скорость, размер информационного пакета, стоп-бит, контроль четности и т.д.
могут так же использоваться сигналы Rx/Tx

вам нужно знать как настроено приемное устройство и исходя из этого настраивать порт и формировать пакет
Знание нескольких принципов освобождает от знания многих фактов!

Живу я здесь ||| LabVIEW Portal in Google+
IvanLis
Специалист LabVIEW
 
Сообщений: 489
Зарегистрирован: Пн апр 23, 2007 1:44 pm
Откуда: СССР

Re: Что VISA посылает в компорт?

Сообщение vlasov » Пт ноя 02, 2012 3:45 pm

>> дело в том, что посылается не \С0 а формируется пакет, который имеет свою служебную информацию

Нет там никакого пакета. Посылается один байт - 0xC0. Все настройки порта проверены и перепробованы несколько раз. Контроллер 51ой архитектуры (модель могу уточнить в ближайшие дни), в дебаге видно, что при прерывании из SBUF стабильно читается 0. Обратно в SBUF отправляю код ошибки (байт типа 0xE0) - приходит стабильно. С другой программой (на C) работает железно.

Меня смущает то, что я фактически не обращаюсь к com-порту напрямую (как если бы я писал на C), а использую VISA. С другой стороны, монитор com-порта четко видит, что байт был послан, байт был один и байт правильный. Так что к VISA и придраться нельзя. Но что делать - непонятно.

Изображение
vlasov
 
Сообщений: 6
Зарегистрирован: Ср окт 31, 2012 11:48 am

Re: Что VISA посылает в компорт?

Сообщение Meteor » Пт ноя 02, 2012 9:29 pm

Тут остается только 2 варианта:
1) Создать виртуальный прибор отправляющий и принимающий данные в порт, замкнуть выводы RxD и TxD между собой, проверить что творится со стороны Labview.
2) Сформировать посылку в МК сигналов от другого МК (или самого на себя замкнуть, но лучше от второго посылать данные) и поглядеть что там будет происходить.
На самом деле, проблемы стыковки вылазят в самых казусных вариациях. Вчера например долго удивлялся что протокол сбоит, и то принимаются в LV пару сотен кБайт, то почти под МБайт, причем нестабильная такая передача шла. На поверку оказалось, (цепь выглядит так: ПЛИС- ADuM1402- FT232- PC) что вместо того чтоб подавать на вход ADuM'а подавал на выход. В итоге - полнейшая чушь. Как исправил свой недогляд - сраззу стало работать как положено.
Так что смотрите, может и в схеме стоит неприглядный транзистор или оптрон, который инвертирует сигнал.
Meteor
Активный пользователь
 
Сообщений: 31
Зарегистрирован: Пт фев 04, 2011 1:28 pm

Re: Что VISA посылает в компорт?

Сообщение vlasov » Ср ноя 07, 2012 3:03 pm

Замкнул посылающий и принимающий компорта (на другом микроконтроллере).
Послал гипертерминалом десять w.
Смотрю, что происходит FreeSerial...
Мой мозг не понимает этого результата:
Изображение
Что с первым битом происходит?
Изображение
Два одинаковых символа передаёт без искажений
Изображение
Готов поклясться, что винда установила компорт сегодня под эту задачу.
Последний раз редактировалось vlasov Ср ноя 07, 2012 3:53 pm, всего редактировалось 1 раз.
vlasov
 
Сообщений: 6
Зарегистрирован: Ср окт 31, 2012 11:48 am

Re: Что VISA посылает в компорт?

Сообщение Meteor » Ср ноя 07, 2012 3:41 pm

Если правильно понял вы отсылаете из ПК в МК байт, затем из МК его пересылаете в ПК?
И у вас пошли потери бита.
Как точно настроена скорость? Какой стоит кварц у МК?
Такое может происходить при "разбеге" скорости более 7%. Лечится обычно либо применением точных кварцев (11,0592МГц к примеру), или дополнительными паузами в передачи. В общем подсчитайте какую скорость в битах имеет МК. И проверьте ее при помощи осциллографа. На скорости 9600 б/с, с 12ю битами (старт, данные, четность, два стопа)период посылки данных обычно 0,08(3) с. Длительность одного бита 0,104 мс
Meteor
Активный пользователь
 
Сообщений: 31
Зарегистрирован: Пт фев 04, 2011 1:28 pm

Re: Что VISA посылает в компорт?

Сообщение vlasov » Ср ноя 07, 2012 3:55 pm

я ответа (из МК) вообще не вижу (если верить FreeS...- на первой картинке чтение: порт открыт-порт закрыт- всё). Эта ерись происходит в компе (как я понимаю).
Спасибо за совет. В выходные попробуем со скоростью поиграться.
vlasov
 
Сообщений: 6
Зарегистрирован: Ср окт 31, 2012 11:48 am

Re: Что VISA посылает в компорт?

Сообщение Meteor » Ср ноя 07, 2012 7:18 pm

Скоростью не играться надо, а четко понимать, какие времена задаются. Если к примеру, за время передачи уход составит больше одного бита - то гарантированно будет сбой.
PS Вопросы стыковки двух устройств - самые трудные, были, есть и будут.
Meteor
Активный пользователь
 
Сообщений: 31
Зарегистрирован: Пт фев 04, 2011 1:28 pm

Re: Что VISA посылает в компорт?

Сообщение vlasov » Чт ноя 08, 2012 9:43 am

Вчерашним "результатом" обязан гипертерминалу (спасибо microsoft за win7 и тем, кто утверждает, что под семёркой гипертерминал работает).

Замкнуты вход и выход компорта.
С Tera Term'ом всё работает.
Изображение
C Labview тоже работает как положено.
Изображение
Будем "долбить" МК.
vlasov
 
Сообщений: 6
Зарегистрирован: Ср окт 31, 2012 11:48 am


Вернуться в LabVIEW и оборудование National Instruments

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron