Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USB->Com->Windows
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Интерфейсы
tolik1
Есть плата имеющая в своем составе микросхему FT232RL. Плата подключается к компу по USB. На компе WindowsXP. Все работает нормально, НО.. У меня таких плат 20 штук.. И каждая определяется своим COM-портом..(СOM3,СOM4,СOM5,СOM6,..). Вопрос:
1)Почему так происходит?
2)Как сделать, чтобы определялся все время одним и темже портом.
V_G
У меня ситуация аналогичная, и я насильно задаю номер порта в настройках (уже после его обнаружения). Если кто-нибудь подскажет ненасильственный способ, то тоже буду очень признателен. Только боюсь, что зовут этого кого-то Билл Гейтс
tolik1
Цитата(V_G @ Oct 27 2009, 11:37) *
У меня ситуация аналогичная, и я насильно задаю номер порта в настройках (уже после его обнаружения). Если кто-нибудь подскажет ненасильственный способ, то тоже буду очень признателен. Только боюсь, что зовут этого кого-то Билл Гейтс

Думаю Билли тут не причем. Так как если плата определилась COM13(для примера), то она и остается COM13. Скорее всего дело в коком-то идентификаторе в микросхеме. Но может и ошибаюсь.
V_G
Нет, если для платы, определившейся как COM13, в винде переименовать порт в COM4, то это запомнится, и при следующем втыкании USB будет уже COM4. Запоминается это в компе, а не в FT232, так что в другой машине с той же платой может вылезти COM77
zltigo
Цитата(V_G @ Oct 27 2009, 10:37) *
Только боюсь, что зовут этого кого-то Билл Гейтс

Его зовут "не поставили/не запрограммировали EEPROM на FTDI".
DVF
А подробнее можно? Это в поле Serial Number Prefix (2 digits) утилиты Mprog от FTDI?
zltigo
Цитата(DVF @ Oct 27 2009, 12:21) *
А подробнее можно? Это в поле Serial Number Prefix (2 digits) утилиты Mprog от FTDI?

Да, программируйте одинаковые номера, заносите одинаковые имена устройств. Тогда можете назначить FTDI порт и он будет сохраняться в любом из USB портов данного компьютера.
V_G
Цитата(zltigo @ Oct 27 2009, 18:27) *
Его зовут "не поставили/не запрограммировали EEPROM на FTDI".

Благодарю за пинок, подстегивает мыслительный процесс.
Вот ссылка на соответствующий AppNote: http://www.ftdichip.com/Documents/AppNotes...nstallation.pdf

Вроде все понятно, осталось выяснить (или дочитать инструкцию, но это в лом), девайсы с одинаковыми VID,PID и серийником, будучи воткнутыми вместе, не будут ли конфликтовать. Но думаю, тут уж Билл Гейтс не подкачает...
SysRq
Цитата(V_G @ Oct 27 2009, 13:44) *
..девайсы с одинаковыми VID,PID и серийником, будучи воткнутыми вместе, не будут ли конфликтовать. Но думаю, тут уж Билл Гейтс не подкачает...
Из документа выходит, что нельзя:
Цитата
3.2 Reprogram all devices to use identical VID, PID, Serial Number.
...
CONs: Can only ever plug one device into a PC at a time.

Но там далее решения предложены: VID & PID одинаковые, и отключить серийный номер.
rx3apf
Цитата(tolik1 @ Oct 27 2009, 10:24) *
1)Почему так происходит?
2)Как сделать, чтобы определялся все время одним и темже портом.

http://www.ftdichip.com/Documents/AppNotes...s_AN_000073.pdf
См.раздел 7.1

А вот кто б мне объяснил, как справиться с такой же фигней, но с BT-донглом, когда один и тот же донгл переставляешь в другой порт, и мало того, что заново надо искать устройство, так еще и набор COMов другой (речь о преобразователе UART->BT) ? Достало просто до ужаса, по сравнению с этим "лечение" FTDI просто удовольствие...
KRS
Цитата(rx3apf @ Oct 27 2009, 22:28) *
А вот кто б мне объяснил, как справиться с такой же фигней, но с BT-донглом, когда один и тот же донгл переставляешь в другой порт, и мало того, что заново надо искать устройство, так еще и набор COMов другой

А вы в реестре покапайтесь.
У FTDI например данные об устройствах здесь лежат
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\FTDIBUS
там можно параметры менять (например название и номер сом порта)
DVF
Не понятно как шить в EEPROM утилитой Mprog от FTDI и не плодить порты в компе? Ведь, в самом начале по умолчанию каждой следующей будет присваиваться порт по нарастающей...
KRS
Цитата(DVF @ Oct 29 2009, 16:46) *
Не понятно как шить в EEPROM утилитой Mprog от FTDI и не плодить порты в компе? Ведь, в самом начале по умолчанию каждой следующей будет присваиваться порт по нарастающей...

Будет! И если шить много (несколько десятков даже) еще и винды глючить начинают!
Поэтому надо переодически чистить! Вот моя функция, которая сбрасывает базу данных портов, и enum FTDI, но т.к. база сбрасывается и есть другие USB порты, могут быть конфликты!
CODE
bool ResetEnum(void)
{
HKEY hKey;
unsigned err;
DWORD len;
BYTE Buf[32];
char SubName[256];

puts("Reseting COM enum");
if (err=RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\COM Name Arbiter",0,
KEY_ENUMERATE_SUB_KEYS | KEY_READ | KEY_SET_VALUE,&hKey)) {
printf("Error: %d Opening HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\COM Name Arbiter\n",err);
return false;
}
memset(Buf,0,32);
Buf[0]=3;
if (err=RegSetValueEx(hKey,"ComDB",0,REG_BINARY,Buf,32)) {
RegCloseKey(hKey);
printf("Error: %d",err);
return false;
}
RegCloseKey(hKey);
puts("Deleting FTDI entries");

if (err=RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Enum\\FTDIBUS",0,
KEY_ENUMERATE_SUB_KEYS | KEY_READ | KEY_SET_VALUE,&hKey)) {
printf("Error: %d Opening HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\FTDIBUS\n",err);
return false;
}
while(1) {
len=256;
err=RegEnumKeyEx(hKey,0,SubName,&len,0,0,0,0);
if (err) break;
err=SHDeleteKey(hKey,SubName);
if (err) {
printf("Error: %d\n",err);
continue;
}
}
RegCloseKey(hKey);
puts("ok");
return true;
}
DVF
Простите, я не силен в таких тонкостях. Не могли бы немного "разжевать" окончание фразы: "...и есть другие USB порты, могут быть конфликты!"
dr_jenia
Подскажите пожалуста замену SP213ehca рекомендованую производителем для ft232bm.
чет в наших краях такой микры необнаружилось
dr_jenia
че подойдут любые "выравниатель уровней wink.gif "?
xgcyo
Работоспособность функции Ignore Hardware Serial Number зависит от версии установленных FTDIшных драйверов. В зависимости от драйвера манипуляции с реестром могут иметь требуемый эффект, а могут и не иметь.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.