- posted
13 years ago
FT232RL
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
Hello, Alexander! You wrote to All on Sat, 24 Jul 2010 21:00:44 +0400:
AS> Кто то работал с сабжевой микрухой? Как я понял ее втыкаешь вместо AS> max232 между контроллером и USB, и подключаешь к USB. В компе же это AS> дело обнаруживается как виртуальный ком-порт, с которым может AS> работать любое приложение, хоть hyperteminal. Это так? Может есть AS> какие то подводные камни?
Это не совсем так. Комп это обнаруживает, как USB CDC (коммуникационное) устройство, которому надо поставить драйвер, это раз. Два, это устройство искажает тайминги по сравнению с аппаратно реализованным портом, это касается как самих передаваемых байт, так и в особенности сигналов квитирования. Четыре - оно может не поддерживать всех желаемых бауд рейтов. Пять, я не помню как именно у FT232, таких микросхем несколько есть, я применял SiLab'совский, смотрел на TI'шный, использовал готовые шнурки с Prolific'овским, но у многих при втыкании в другой USB порт или подобных операциях меняется номер порта, на который она садится. У некоторых микросхем есть встроенный EEPROM, у некоторых - интерфейс для внешнего и есть утилита, которая позволяет назначить фиксированный порт. Hу и последнее - в условиях сильных помех эта штука (по сути своей это микроконтроллер с программой) иногда виснет. Hу и еще, стоит она как-то не слишком гуманно. Применив контроллер со встроенной USB периферией можно или самому эмулировать ком-порт, или использовать HID ксласс устройств, которые не требуют вообще никаких драйверов, во всяком случае для винды - система имеет встроенный. Для всех контроллеров с такой периферией есть готовые библиотеки и примеры таких устройств, как со стороны контроллера, так и со стороны PC. Я пользуюсь PIC18, но есть такое почти у всех крупных производителей контроллеров.
dima
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
Hello, Alexey! You wrote to Alexander Sashurin on Sat, 24 Jul 2010 22:07:50 +0400:
AS>> Кто то работал с сабжевой микрухой? Как я понял ее втыкаешь вместо AS>> max232 между контроллером и USB, и подключаешь к USB.
AV> Да, но если тебе _действительно_ нужен последовательный порт (а AV> нужен ли?) - лучше использовать не ее, а PL2303.
Hе уверен, что это лучше, и что их вообще реально купить в розницу.
AS>> В компе же это дело обнаруживается как виртуальный ком-порт, с AS>> которым может работать любое приложение, хоть hyperteminal. AS>> Это так?
AV> Гхым... А что ты хочешь получить?
Очевидно, подключить свою разработку к компу, не используя отсутствующий на нем RS232.
AV> Если терминальную линию - сделай контроллер USB HID устройством.
Это удобно, я так и делаю, но если со стороны компа уже готовый софт под RS232, то драйвер виртуального порта - удобное решение. С таким же успехом можно свой контроллер и CDC устройством сделать.
AV> Если передачу каких-то данных - соответственно, ethernet.
Это, увы, не так просто. А данные и по USB передавать можно.
AV> Последовательный-то порт тебе зачем?
Очевидно, он уже сделан...
AS>> Может есть какие то подводные камни?
AV> Есть классические грабли, по которым упорно ходят 99% эхотажных AV> разработчиков - AV> называются они "использование асинхронного последовательного порта AV> там, где он нахрен не нужен".
Ага.
dima
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
Hello, Alexander! You wrote to Dmitry Orlov on Sat, 24 Jul 2010 22:56:30 +0400:
DO>> Это не совсем так. Комп это обнаруживает, как USB CDC DO>> (коммуникационное) устройство, которому надо поставить драйвер, это DO>> раз.
AS> Это не сложно. Да и ничего страшного..
Кому как, некоторым пользователям проблематично, может не быть нужных прав, etc.
DO>> Два, это устройство искажает тайминги по сравнению с аппаратно DO>> реализованным портом, это касается как самих передаваемых байт, так DO>> и в особенности сигналов квитирования.
AS> Ммм, т.е. я хочу работать с битрейтом 9600, а оно работает AS> медленнее?
9600 - не проблема, но некоторые скорости оно может не поддерживать.AS> И как программируются битрейты?
Со стороны компа, естественно. Как и родному ком-порту, этим драйвер виртуального порта занимается.
DO>> Четыре - оно может не поддерживать всех желаемых бауд рейтов. Пять, DO>> я не помню как именно у
DO>> FT232, таких микросхем несколько есть, я применял SiLab'совский, DO>> смотрел на TI'шный, использовал готовые шнурки с Prolific'овским, DO>> но у многих при втыкании в другой USB порт или подобных операциях DO>> меняется номер порта, на который она садится.
AS> Тоже не страшно.
Когда как, особенно если таких устройств несколько, пользователю непонятно где что.
DO>> У некоторых микросхем есть встроенный EEPROM, у некоторых - DO>> интерфейс для внешнего и есть утилита, которая позволяет назначить DO>> фиксированный порт.
AS> А вот там еще дополнительные программируемые TTL линии есть - они AS> тоже прогаются утилитой от производителя?
Читай на сайте FTDI.
DO>> Hу и последнее - в условиях сильных помех эта штука (по сути своей DO>> это микроконтроллер с программой) иногда виснет.
AS> Хм, ну это может оказаться критично. Испытания покажут, имхо.
Покажут.
DO>> Hу и еще, стоит она как-то не слишком гуманно.
AS> Hе важно, заказчик платит:)
А так положил бы в карман. Если это одна штука - то все равно, а если серия...
DO>> Применив контроллер со встроенной USB периферией можно или самому DO>> эмулировать ком-порт, или использовать HID ксласс устройств, DO>> которые не требуют вообще никаких драйверов, во всяком случае для DO>> винды - система имеет встроенный. Для всех контроллеров с такой DO>> периферией есть готовые библиотеки и примеры таких устройств, как DO>> со стороны контроллера, так и со стороны PC. Я пользуюсь PIC18, но DO>> есть такое почти у всех крупных производителей контроллеров.
AS> Из пушки по воробьям, имхо...
Вовсе нет, один раз освоить (это не так сложно, как может показаться) и потом никаких UART'ов, отживающих свой век.
AS> Приложение слишком простое, да и чип один проще поставить, переписыать AS> софт под pic18, или изучать USB в AV90USB.
Просто нужно понимать, что ты ставишь еще один, возможно более мощный контроллер, чем тот, что у тебя уже есть. Часто ему еще и резонатор отдельный нужен, SiLabs правда и без этого работает, а на счет FT я не помню.
dima
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
- Vote on answer
- posted
13 years ago
Hello, Alexey! You wrote to Alexander Sashurin on Sun, 25 Jul 2010 10:25:38 +0400:
DO>>> я не помню как именно у FT232, таких микросхем несколько есть, я DO>>> применял SiLab'совский, смотрел на TI'шный, использовал готовые DO>>> шнурки с Prolific'овским, но у многих при втыкании в другой USB DO>>> порт или подобных операциях меняется номер порта, на который она DO>>> садится. AS>> Тоже не страшно.
AV> Это зависит от настроек ББ и лечится элементарно - например, у меня
Кто такой ББ?
AV> любой шнурок, подключенный единственным, станет первым устройством, AV> последующие - вторым, третьим итд.
А если первым может быть компорт в докинге, а может и не быть?
AV> Отключил первый - остались второе и третье. Подключил обратно первый - AV> снова есть первое, второе и третье.
И как это достигается?
DO>>> У некоторых микросхем есть встроенный EEPROM, у некоторых - DO>>> интерфейс для внешнего и есть утилита, которая позволяет назначить DO>>> фиксированный порт.
AV> Вообще-то работает оно совершенно по-другому, но расписывать очень AV> уж лень...
Да, там кажется не номер порта, а какой-то ID прописывается, потом в свойствах устройства указывается что для этого именно устройства порт должен быть такой-то, и тогда оно на него попадает, я уже не помню, несколько лет назад с этим последний раз возился, и то для PL. Факт в том, что если это все надо не самому делать, а передать кому-то, то бывает сложно объяснить как поставить драйвер виртуального порта, потом как понять на каком порту он оказался, потом как настроить программу, которая с твоим устройством общается, на нужный порт. Да еще отслеживать появление новых версий винды и новых драйверов (для того же PL шли на диске дравера, с которыми моя программа или железяка не работала, а с новыми с сайта - работала). Потому таки лучше всего - своя реализация HID и в PC и в контроллере, сейчас я так и делаю.
dima
- Vote on answer
- posted
13 years ago
Hello, Alexey! You wrote to Alexander Sashurin on Sun, 25 Jul 2010 10:12:04 +0400:
AV> Вот так с ней и работай. И не поленись, напиши нормальный парсер AV> команд, ибо придумывание своего бинарного протокола - ошибка номер AV> ноль.
А вот с этим - не соглашусь. Я использовал и продолжаю использовать и текстовые (a-la Hayes modem) команды, и бинарный протокол с пакетами и контрольными суммами, и что-то среднее - обмен строками в Intel Hex формате, и для каждого случая удобно что-то свое. По мере того, как увеличивается количество (и качество) наработок для PC я все реже использую режим терминала, где вместо своей программы можно было использовать чужую готовую, но трудно было научить этому кого-то еще. А заставлять одну программу с другой через терминал говорить - напрасный труд, хотя это я тоже проходил. Собственно результатом этого и был протокол Intel HEX.
dima