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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Com порт и нестандартные скорости?, возможно ли поставить нест. скорость?
The Fresh
сообщение Dec 27 2006, 18:41
Сообщение #1


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

Группа: Новичок
Сообщений: 146
Регистрация: 3-12-06
Пользователь №: 23 071



Я так понял, что настраивть мой USB пролифик на PL2303 бесполезно. Можно ли это сделать на PC(ноут) с штатными портами, если нет, то существует ли какая нибудь возможность это сделать. Спасибо.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 27 2006, 23:54
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(The Fresh @ Dec 27 2006, 17:41) *
Я так понял, что настраивть мой USB пролифик на PL2303 бесполезно.

Отчего такой диагноз?
Цитата
Можно ли это сделать на PC(ноут) с штатными портами, если нет, то существует ли какая нибудь возможность это сделать.

А как у Вас "не получилось"? Настраиваются в пределах сетки которую может обеспечить делитель UART. Если Вы вдруг захотели 60000 получить, то получите вместо этого 115200, ибо возможны только
два варианта 115200 - делитель на 1 и следующая 576000 - делитель на 2. На более низких скоростях
вариантов естественно побольше.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
_3m
сообщение Dec 28 2006, 01:58
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(The Fresh @ Dec 27 2006, 18:41) *
Я так понял, что настраивть мой USB пролифик на PL2303 бесполезно. Можно ли это сделать на PC(ноут) с штатными портами, если нет, то существует ли какая нибудь возможность это сделать. Спасибо.

Вы напрасно списали PL2303 в утиль. Как оказалось, он умеет работать на любой скорости cheers.gif
Обнаружено это было на телесистемах: Туплю не могу вывести формулу таблицы скоростей PL2303
Итоговая дока лежит тут
Go to the top of the page
 
+Quote Post
The Fresh
сообщение Dec 28 2006, 12:24
Сообщение #4


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

Группа: Новичок
Сообщений: 146
Регистрация: 3-12-06
Пользователь №: 23 071



Используя одну комуникационную программу для связи с авто заметил(при помощи прослушивалки ком порта), что программа пытаеться забить нестандартную скорость SETbaudrate 28 A0 - 10400(реально байты стоят наооборот), но тутже при чтении настройки порта GETbaudrate выдает 25 80 -9600 - это при помощи USB конвертора. Попробовал на PC с штатным портом и после SETbaudrate 28 A0 GETbaudrate выдает 28 A0. Отсюда сделал вывод что в первом случае настройки не принялись, а во втором да. И вероятно поэтому не смог законектиться с авто.
Go to the top of the page
 
+Quote Post
The Fresh
сообщение Dec 28 2006, 20:05
Сообщение #5


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

Группа: Новичок
Сообщений: 146
Регистрация: 3-12-06
Пользователь №: 23 071



Смотрел на форуме телесистем, так и не понял что к чему. Пробовал записывать их примеры но дополнительные скорости нигде не узрел, да и скорости у них бешенные, а мне надо 10400. Объясните глупышу smile.gif.
Go to the top of the page
 
+Quote Post
_3m
сообщение Dec 28 2006, 21:56
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(The Fresh @ Dec 28 2006, 20:05) *
Смотрел на форуме телесистем, так и не понял что к чему. Пробовал записывать их примеры но дополнительные скорости нигде не узрел, да и скорости у них бешенные, а мне надо 10400. Объясните глупышу smile.gif.

На телесистемах был рабочий процесс.
Читайте документ PL2303_extBaudrate.rtf - что там непонятно?
Go to the top of the page
 
+Quote Post
The Fresh
сообщение Dec 29 2006, 11:06
Сообщение #7


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

Группа: Новичок
Сообщений: 146
Регистрация: 3-12-06
Пользователь №: 23 071



Не могу скачать этот .rtf точнее скачивается вот этот файл PL2303_extBaudrate.rtf.zip. Разархивировать бесполезно - это не файл архива, убрал расширение zip, открыл как .rtf а том копия той страницы с которой собсно скачивал т.е. Рапида этого. Чтото делаю неправильно при скачивании и если не затруднит может скинете на email back1981@mail.ru. Заранее спасибо.
Go to the top of the page
 
+Quote Post
_3m
сообщение Dec 29 2006, 17:18
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(The Fresh @ Dec 29 2006, 11:06) *
Не могу скачать этот .rtf точнее скачивается вот этот файл PL2303_extBaudrate.rtf.zip. Разархивировать бесполезно - это не файл архива, убрал расширение zip, открыл как .rtf а том копия той страницы с которой собсно скачивал т.е. Рапида этого. Чтото делаю неправильно при скачивании и если не затруднит может скинете на email back1981@mail.ru. Заранее спасибо.

Отправил.
С рапиды действительно неудобно скачивать, но у меня файл приходит нормальный.
Go to the top of the page
 
+Quote Post
The Fresh
сообщение Dec 30 2006, 08:43
Сообщение #9


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

Группа: Новичок
Сообщений: 146
Регистрация: 3-12-06
Пользователь №: 23 071



Спасибо. Буду экспериментировать.
Go to the top of the page
 
+Quote Post
The Fresh
сообщение Dec 30 2006, 10:53
Сообщение #10


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

Группа: Новичок
Сообщений: 146
Регистрация: 3-12-06
Пользователь №: 23 071



2 _3m
Сделал вроде все правильно поставил прескалер 6 (4096) основной делитель 9. В реестр сделал запись ExtBaudrate ----10472,2147486729(т.е. 0x8000 0C09)-расчитал на 10400. Но скорость не схватывается в программе, пытается забить 10472 а при чтении настроек тутже выдает 9600.
Может версия дров нужна определенная или еще какие нюансы?Да кстати данная скорость где нибудь визуально отображается?
Go to the top of the page
 
+Quote Post
_3m
сообщение Dec 30 2006, 13:59
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(The Fresh @ Dec 30 2006, 10:53) *
2 _3m
Сделал вроде все правильно поставил прескалер 6 (4096) основной делитель 9. В реестр сделал запись ExtBaudrate ----10472,2147486729(т.е. 0x8000 0C09)-расчитал на 10400. Но скорость не схватывается в программе, пытается забить 10472 а при чтении настроек тутже выдает 9600.
Может версия дров нужна определенная или еще какие нюансы?Да кстати данная скорость где нибудь визуально отображается?

0x8000 0c09 действительно не работает.
работающий делитель для 10400 - 0x8000 0890 , т.е в реестр записывается "10400,2147485840".
Я поэкспериментировал с разными делителсями, при прескалере 6 (4096) основной делитель не должен быть меньше 16 (0x10), если меньше - на выходе получается полный бред (видимо у PLL и делителей вообще крышу сносит). Кроме того, чем меньше величина основного делителя, тем больше джиттер на выходе UART.
Думаю, что стоит начинать с минимальных значений прескалера чтобы основной делитель был как можно больше.
Все это надо контролировать осциллографом, так как расчет - это математическая абстракция, а чип работает как-то хитро и точных данных о делителях PL2303 нигде нет.

После изменения в реестре обязательно нужно передернуть usb шнурок с pl2303 иначе изменения не вступят в силу.
Дополнительные скорости нигде не отображаются, но если скорость установилась, она возвращаются в структуре DCB возвращаемой при вызове GetCommState.
Значение скорости в ExtBaudrate должно точно совпадать со скоростью, которую устанавливает программа, например если в реестре определена дополнительная скорость 10400, а программа пытается установить 10472, то работать не будет - драйвер pl2303 "не увидит" 10472 и подставит вместо этого ближайшую стандартную - 9600.

У меня драйвер PL2303 версии 2.0.2.1 от 25.07.2005, ОС - XP sp2 eng.

Сообщение отредактировал _3m - Dec 30 2006, 14:09
Go to the top of the page
 
+Quote Post
The Fresh
сообщение Dec 30 2006, 17:01
Сообщение #12


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

Группа: Новичок
Сообщений: 146
Регистрация: 3-12-06
Пользователь №: 23 071



Почему то не работает и упорно ставит вместо 10400 скорость 9600. Поставил версию дров такуюже, выставил в реестре настройки(ExtBaudrate тип string 10400,2147485840), поставил сервис пак2,взял другую прогу, которая ставит скорость 10400 и все равно getbaudrate возвращает 9600. Испытывал на двух разных шнурах один USB-COM, другой от мобилки. А у Вас эта скорость нормально ставится? Может потестите на моей проге?

Сообщение отредактировал The Fresh - Dec 30 2006, 17:29
Go to the top of the page
 
+Quote Post
The Fresh
сообщение Dec 30 2006, 19:10
Сообщение #13


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

Группа: Новичок
Сообщений: 146
Регистрация: 3-12-06
Пользователь №: 23 071



Если не секрет откуда такая базовая частота 383385600Hz, извините за ламерский вопрос, но у меня на плате шнура на осциляторе 12 000 М написано.
Go to the top of the page
 
+Quote Post
_3m
сообщение Dec 30 2006, 19:46
Сообщение #14


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(The Fresh @ Dec 30 2006, 19:10) *
Если не секрет откуда такая базовая частота 383385600Hz, извините за ламерский вопрос, но у меня на плате шнура на осциляторе 12 000 М написано.

Там внутрях PLL. Кроме того это частота условная для расчетов. Не факт, что в чипе она имеется в чистом виде, скорее всего код перскалера управляет частотй PLL.
Давайте исходник проги которая не работает (тот его кусок, где устанавливается скорость) - только так можно разобраться.
У меня смена скорости производится так:
Код
{
DCB* dcb;
/* инициализация DCB опущена */
dcb->BaudRate=10400;   // задаем скорость
SetCommState(port,dcb);
Sleep(20);
/* проверка */
{
  DCB* dcb2;
  dcb2=(DCB*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(DCB));
  dcb2->DCBlength=sizeof(DCB);
  GetCommState(port,dcb2);
  cout << "\ndcb2.BaudRate=" << dcb2->BaudRate;
  HeapFree(GetProcessHeap(),0,dcb2);
}
}
Go to the top of the page
 
+Quote Post
The Fresh
сообщение Dec 30 2006, 20:57
Сообщение #15


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

Группа: Новичок
Сообщений: 146
Регистрация: 3-12-06
Пользователь №: 23 071



Дело в том, что прога не моя и откомпиленная. Если логически рассуждать, то в обычном PC эта скорость 10400 нормально устанавливается прогой , теб более программная реализация не отличается применяешь ли ты штатный порт или переходник. Мое мнение что дело в настройках и почему-то они не срабатывают. Я могу выслать этот софт весит он 400 килов. В кратце там вверху есть кнопочки с моделями контроллеров те которые на М начинаются и работают на этой злосчатной частоте. При переключении между блочками инициализируется порт и считывает парметры Getbaurates(это при помощи шпиона ком портов HDD serial port ) затем забивает setbaudrates. переключая блочки туда обратно у меня на Getbaudrates, т.е. предыдущая скорость всегда появляется 9600, а не 10400. На PC после первого SETBaudrates 10400 дальнейшие getbaudrates выдают 10400. Вышлю на мыло откуда пришел файл про настройки pl2303. Заранее спасибо.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 04:43
Рейтинг@Mail.ru


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