реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Китайский "USB2.0 TO RS232 Convertor"
gwii
сообщение Jan 19 2011, 20:01
Сообщение #1





Группа: Участник
Сообщений: 7
Регистрация: 22-01-10
Пользователь №: 54 992



Пишу это, чтобы другие на эти грабли не наступили.
Надо было древний программатор запустить. Вот купил это самое Г. Часа 3 дровами в компьютере шевелил - не работает.
Потом взял осциллограф, посмотрел и прослезился.
Вместо уровней RS-232, на разъеме уровни UART-а 3,3v.

В прикрепленных файлах фотографии девайса.
Прикрепленное изображение
Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Jan 19 2011, 20:25
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



Цитата
Вместо уровней RS-232, на разъеме уровни UART-а 3,3v.
мин.рабочее напряжение ресиверов RS232 -3 и 3В, так что адаптер в пределах нормы. Копайте схему программатора, скорее всего там проблема с уровнями, если простейшая схемка типа Ponyprog или JDM то конечно не заработает. Поможет внешняя MAX232

Сообщение отредактировал ukpyr - Jan 19 2011, 20:25
Go to the top of the page
 
+Quote Post
san822
сообщение Jan 20 2011, 06:57
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 195
Регистрация: 26-07-05
Из: Санкт-Петербург
Пользователь №: 7 111



Цитата(gwii @ Jan 19 2011, 23:01) *
Вместо уровней RS-232, на разъеме уровни UART-а 3,3v.


Это не главная проблема таких изделий, гораздо хуже, что они часто вообще не определяются, как USB-устройство.
Go to the top of the page
 
+Quote Post
Ivan A-R
сообщение Jan 20 2011, 12:51
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 21-06-07
Из: Saint-Petersburg
Пользователь №: 28 607



ukpyr, там от 0 до 3 вольт уровни. А не от -3.

san822, ну если пропаять - то определяются =)
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Jan 20 2011, 13:28
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



Цитата
ukpyr, там от 0 до 3 вольт уровни. А не от -3.
0..-15В допустимо в качестве низкого уровня, а 1ца - от 3В (напр.даташит на HT6571)
Цитата
гораздо хуже, что они часто вообще не определяются, как USB-устройство
и определяются как prolific, а драйвера нужны родные китайские

Сообщение отредактировал ukpyr - Jan 20 2011, 13:29
Go to the top of the page
 
+Quote Post
gwii
сообщение Jan 20 2011, 18:14
Сообщение #6





Группа: Участник
Сообщений: 7
Регистрация: 22-01-10
Пользователь №: 54 992



Хватит спорить об уровнях. Там был чистый TTL сигнал. Если его подать на UART любого поца, он был бы туда как родной. Очевидно китайцы МАХ забыли припаять.
Дрова работали (USB устройство распознавалось), но только до тех пор, пока не соединишь с RS232 клиентом. После чего устройство сразу становилось не известным.

Сегодня еще разок съездил на радио базар. Тот вернул в зад, тому у кого взял и притащил новый.
Внешний вид такой же. Другая упаковка и начинка. Сквозь полупрозрачный корпус просматривается две многоногие мелкосхемы. По одной с каждой стороны. Вот и все визуальное отличие. Тоже китайский.
На скорости 115200 работал как часы. В винде отображался как обычный COM порт.

Фотографии прилагаются.

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Jan 20 2011, 18:36
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



Цитата
Хватит спорить об уровнях. Там был чистый TTL сигнал. Если его подать на UART любого поца, он был бы туда как родной.
данные на TX передавались нулём ? у меня похожий адаптер ( http://www.dealextreme.com/details.dx/sku.24799 ), там данные передаются единицей, но уровнями TTL. Для связи с другими портами RS232 покатит, но для программаторов - нет.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jan 20 2011, 18:45
Сообщение #8


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(ukpyr @ Jan 20 2011, 21:36) *
данные на TX передавались нулём ? у меня похожий адаптер ( http://www.dealextreme.com/details.dx/sku.24799 ), там данные передаются единицей, но уровнями TTL. Для связи с другими портами RS232 покатит, но для программаторов - нет.

Точно так, купил эту фигню. Слегка офигел, когда увидел такое безобразие, но с большинством трансиверов RS-232 работает вполне нормально...
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jan 21 2011, 06:22
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Уважаемые, а ответье кто нибудь на такой вопрос

Как вы работаете с КОМ-портом? Есть задача - передать большой массив данных, на осциллографе я вижу, что скорость внутри пакета соотвествует заданной, но вот между передачами пакетов возникают длительные, явно програмные, задержки.
Кто нибудь сталкивался с этим?


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Jan 21 2011, 06:47
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(Muscat @ Jan 21 2011, 12:22) *
Есть задача - передать большой массив данных, на осциллографе я вижу, что скорость внутри пакета соотвествует заданной, но вот между передачами пакетов возникают длительные, явно програмные, задержки.


А чем передаете?
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jan 21 2011, 07:48
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Передаю из Матлаба в цикле. На осциллографе вижу пачку передач, а затем программная задержка в 80-100мс, потом следующая пачка.
При передаче средствами С++ такой задержки не возникает?


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Jan 21 2011, 08:02
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(Muscat @ Jan 21 2011, 13:48) *
Передаю из Матлаба в цикле. На осциллографе вижу пачку передач, а затем программная задержка в 80-100мс, потом следующая пачка.
При передаче средствами С++ такой задержки не возникает?


А вы галочку "Enable RTOS" при установке Windows не забыли поставить? biggrin.gif
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jan 21 2011, 08:06
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



А что, можно было? :-)

Если серьезно, то я не понимаю вот чего
Я использую виртуальный RS-232 - на отладочной плате стоит преобразователь USB->RS232, в системе существует виртуальный КОМ-порт. Почему я не могу использовать его скорость по максимуму?

Ведь когда я записываю файлы на флэшку, то делаю это с нормальной скоростью в несколько мегабит. А у меня передача идет короткими пакетами с высокой скоростью, а потом паузы. Значит дело все таки поправимо?


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Jan 21 2011, 08:35
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(Muscat @ Jan 21 2011, 14:06) *
Если серьезно, то я не понимаю вот чего
Я использую виртуальный RS-232 - на отладочной плате стоит преобразователь USB->RS232, в системе существует виртуальный КОМ-порт. Почему я не могу использовать его скорость по максимуму?


ИМХО "115200" - это скорость среды. Фактическая передача всегда будет с меньшей скоростью. В том числе и за счет пауз между байтами/посылками. Величина этих пауз определяется возможностями передающей стороны + старт/стоп условиями.

Go to the top of the page
 
+Quote Post
Muscat
сообщение Jan 21 2011, 09:19
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Вот именно так у меня и происходит. Битовая скорость внутри посылок 1.5Мбита, так как физически RS232 не существует нигде, то и ограничение на скорость от USB. А вот изза пауз реальная скорость передачи данных составляет 30 кБит/сек


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jan 21 2011, 09:34
Сообщение #16


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Muscat @ Jan 21 2011, 12:19) *
Вот именно так у меня и происходит. Битовая скорость внутри посылок 1.5Мбита, так как физически RS232 не существует нигде, то и ограничение на скорость от USB. А вот изза пауз реальная скорость передачи данных составляет 30 кБит/сек

Скорее всего, дело в вашей программе.
Вы точно пакетами данные передаёте или побайтно?
Дело в том, что ваш пакет (или байт) должен упаковаться во фрейм USB, передаться (с возможными задержками в несколько мс), потом распаковаться и выйти наружу в виде RS-232.
Если вы передаёте пакет, он просто упакуется в фрейм и передастся.
Если каждый байт по отдельности - получите отдельный фрейм для каждого байта и соответственно, задержки тоже.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jan 21 2011, 10:18
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



MrYuran пакетами по 1024 байта по 6 бит. Да, пакетная передача работает нормально. При больше длине пакета возникают некоторые задержки внутри пакета (появляются промежутки между байтами), но все в пределах нормы.
То есть если я выполняю запись в порт s
>>fwrite(s,STR)
Где STR - строка на 1024 символа, то на осциллографе я увижу пакет из 1024 байт, с битовой скоростью 1.5 МБита

Если же я запущу
fwrite(s,STR1)
fwrite(s,STR2)
То между пакетами будет интервал в 100мс, а внутри пакетов все по прежнему хорошо. Условно говоря возникает задержка при переходе от строчки к строчке



--------------------
Because it's there
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Jan 21 2011, 10:21
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(Muscat @ Jan 21 2011, 16:18) *
Если же я запущу
fwrite(s,STR1)
fwrite(s,STR2)
То между пакетами будет интервал в 100мс, а внутри пакетов все по прежнему хорошо. Условно говоря возникает задержка при переходе от строчки к строчке


Так что вас собственно удивляет? Между вызовом fwrite и реальной передачей может пройти неопределенное количество времени (кто знает как их драйвер устроен и чем сейчас система занята)
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jan 21 2011, 10:46
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



А меня и не удивляет, меня интересует как решить эту проблему
1) Как устроен драйвер и в какую сторону нужно копать?
2) Как разгрузить систему? Пробовал работать в безопасном режиме, но не дает открыть ком-порта.


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
gwii
сообщение Jan 21 2011, 20:30
Сообщение #20





Группа: Участник
Сообщений: 7
Регистрация: 22-01-10
Пользователь №: 54 992



Вообще, реальная скорость передачи - это ответственность программиста, который это написал. Передающая сторона сваливает данные в передающий буфер, вполне реального размера. Дальше передающий драйвер дует этот буфер, на скорости стремящейся к максимальной, в канал. А там заполняется приемный буфер. Драйвера как правило пишут профессионалы и тут все в порядке. А вот сколько времени нужно передающей программе, чтобы сформировать буфер. И приемной стороне, чтобы обработать принятый массив. В 95% случаев, которые я встречал, тормозило именно здесь. И многозадачность винды тоже добавляет тормозов.

Вообще, самая тяжелая ситуация, когда данные идут из примитивно девайса (типа меги или TMS) в персоналку. Тут приходится контролировать, что все данные приняты. А иначе можно не только байты, а целые пакеты потерять.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 7th August 2025 - 17:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.0154 секунд с 7
ELECTRONIX ©2004-2016