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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Переходники COM to USB

Непрочитано 24.01.2008, 01:47  
LSergM
Временная регистрация
 
Регистрация: 28.03.2007
Сообщений: 78
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LSergM на пути к лучшему
По умолчанию Переходники COM to USB

Помогите по следующему вопросу.
МК данные с АЦП и передает по USART на комп. Встала проблема что com порты отмирают, а на ноутах почти не встречаются. Выходом из данной ситуации было поставить переходник.
Со стороны компа управляющая программа написана на Delphi с использованием API функций. В общем проблема в следующем преобразователь (GEMEBIRD UAS 111/112) при восстановлении связи после обрыва (просто отключаю питание МК) отказвыется работать. Вызываю функцию ClearCommError(FHandle, CodeError, @Result); И определяю состояния буфера приема, а результат ноль. Без переходника все работает отлично.
Подскажите в чем проблема я в программировании портов под windows, типа новичек. Может это драйвер глючный или API функции некорректно работают с виртуальными портами.
Заранее спасибо, Сергей.
Реклама:
LSergM вне форума  
Непрочитано 24.01.2008, 09:31  
LSergM
Временная регистрация
 
Регистрация: 28.03.2007
Сообщений: 78
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LSergM на пути к лучшему
По умолчанию

Драйвера на виртуальном сом Prolific. Еще пробовал сом снифером эффект тот же после восстановления связи данные не воспринимаютя.
Типа можно API исключить, но все равно не нонятно почему данные не воспринимаютя. Может кто сталкивался с подобно проблемой ? Или я чего то не понимаю просьба напишите ответ.
LSergM вне форума  
Непрочитано 24.01.2008, 09:59  
serb-radio
Гражданин KAZUS.RUN
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию

В программе под Win сбоит сканирование виртуальных COM портов. У меня этот глюк тоже был. Попробуй посмотреть USB monitor-ом или COM toolkit-ом что твориться на порту. Конкретный выход из положения не могу подсказать, извини.
serb-radio вне форума  
Непрочитано 24.01.2008, 10:47  
urry
Почётный гражданин KAZUS.RUN
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Ну если Вы порт не закрыли, то какие вопросы ? Его же нельзя открыть еще раз
urry вне форума  
Непрочитано 24.01.2008, 23:00  
LSergM
Временная регистрация
 
Регистрация: 28.03.2007
Сообщений: 78
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LSergM на пути к лучшему
По умолчанию

Что значит порт не закрыл CloseHandle. Просто прекратилась передача с МК на на некотороевремя потом восстановилась, а буфер приема показывает что данных нет. Контроллер при этом данные железно передает. Есть догадка что после прекращения связи порт отключается по тайм-ауту или ошибка ноль на приемном выводе и функция ClearCommError(FHandle, CodeError, @Result) ошибку не сбрасывает. Может есть особенность в работе виртуально порта в отличии от аппаратного.
Вопрос: при ошибке Handle автоматически не закрывается.
LSergM вне форума  
Непрочитано 24.01.2008, 23:17  
LSergM
Временная регистрация
 
Регистрация: 28.03.2007
Сообщений: 78
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LSergM на пути к лучшему
По умолчанию

Ни кто не смотрел данный ресурс http://www.rsdn.ru/Forum/Message.aspx?mid=2159292 в нем проблема более детально описано но конкретного решения нет. Ваши соображения по этому поводу.
LSergM вне форума  
Непрочитано 25.01.2008, 00:52  
TEHb
Почётный гражданин KAZUS.RUN
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,387
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию

Сообщение от LSergM
Ни кто не смотрел данный ресурс http://www.rsdn.ru/Forum/Message.aspx?mid=2159292 в нем проблема более детально описано но конкретного решения нет. Ваши соображения по этому поводу.
Если драйвера - Prolific, то и нужно доставать разработчиков драйверов этой фирмы с назойливыми просьбами разобраться с ошибкой. Других путей решения проблемы я лично не вижу. Кроме как написать собственные драйвера - но это уже далеко выходит за рамки данной конференции.
TEHb вне форума  
Непрочитано 25.01.2008, 01:43  
LSergM
Временная регистрация
 
Регистрация: 28.03.2007
Сообщений: 78
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LSergM на пути к лучшему
По умолчанию

ТЕНЬ интересно твое мнение. Чтобы преобразовать сом в usb не обязательно брать Profilic. Рассматриваю вариант преобразователя на fdti 232bm. На их сайте есть примеры программ на Delphi и работа с портом на основании функций из dll библиотеки по названию очень напоминающие API. Не работал ли таким образом с портом. Если да то не возникало ли таких глюков.
LSergM вне форума  
Непрочитано 25.01.2008, 10:56  
urry
Почётный гражданин KAZUS.RUN
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Ну я делфи не знаю, но в вижуал - это все просто - если нет ожидаемого количества байтов за время, определенное в
Код:
rCommTimeouts.ReadTotalTimeoutConstant =4000; // 4000 миллисекунд
rCommTimeouts.ReadTotalTimeoutMultiplier = 1;
port.SetTimeouts(rCommTimeouts);
// бла-бла-бла
//----------------------------
// при приеме
 if( port.Read(rBuf,4)!=4) // количество принятых байт (2) за время Timeout
//не соответствует ожидаемому 
 {
	port.Close();
        port.Open(kom, dwBaud, CSerialPort::NoParity, 8, CSerialPort::OneStopBit, CSerialPort::XonXoffFlowControl);
Хотя, как говорит Тень, проблема именно в драйвере, то уже ниче не поможет.. Написать свой...
Код:
Вопрос: при ошибке Handle автоматически не закрывается.
Нет, с чего бы это оно само закрылось...
urry вне форума  
Непрочитано 25.01.2008, 14:45  
Ritmach
Частый гость
 
Регистрация: 25.01.2008
Сообщений: 23
Сказал спасибо: 8
Сказали Спасибо 5 раз(а) в 3 сообщении(ях)
Ritmach на пути к лучшему
По умолчанию

1 вариант аппаратный. Изменить как-то схему сопряжения,
чтобы при выключении питании на переходник USB-COM приходила 1. От постоянного 0 он видимо затыкается.
Что-то вроде подтяжки резистором.
2 вариант FTDI. Пробовал USB-485. Конечное устройство включалось и выключалось. Обмен восстанавливался без проблем.
Ritmach вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Схема USB флэш диска (USB flash drive) mohito99 Ремонт оргтехники 10 21.07.2010 17:32
Запись на USB флэш-карту посредством МК USB OTG,возможно ли? svad0 Микроконтроллеры, АЦП, память и т.д 0 07.11.2008 12:29
Переходники USB2COM USB2LPT и програматор для микроконтролер soad2007 Микроконтроллеры, АЦП, память и т.д 3 10.09.2008 19:29


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.