THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму

Класичний конвертер USB-to-UART на CP2102. Якщо Ви не знаєте, що це, значить він Вам не потрібен. Решту прошу під кат.

Відразу скажу: працює, як повинен. Конвертер зроблений на відомій і добре себе зарекомендувала схемою від SiLabs з мінімальною обвеской. Гарний варіант для тих, кому ліньки паяти самостійно.

Врахуйте, що не дивлячись на всі можливості самого чіпа, висновки для апаратного контролю (DTR / DSR, RTS / CTS) не розлучені. Для управління потоком залишається тільки програмний метод (X-On / X-Off). розведені:

TX / RX.
- Харчування від USB (+ 5V) і земля.
- + 3.3V від вбудованого в чіп перетворювача напруги. Вольтметр показивет 3.15V. Поняття не маю, який реально ток можна з нього з нять, але по даташіту все 500 мА.
- RST.

Входи / виходи «5V tolerant», можна подавати до 5.8V. Перевірявся на швидкостях 115200 kbit / s і 57600 kbit / s з двома контролерами. Проблем немає.

На борту один червоний SMD-світлодіод, загоряється при подачі живлення. Пайка китайська і зовсім не така, як на картинці. Мені навіть здалося спочатку, що пайка холодна. Кількість олова і шрифт на масці такі, що, здається, роблять на зовсім вже стародавньому виробництві.

У комплекті йде диск з драйверами. Я його просто викинув, під Linux пристрій і так постає як / dev / ttyUSBx.

працює
+ Маленький (за моїми вимірами 42x15)
+ Провене роками схема
+ Драйвери під всі платформи, а може заробити і зовсім без них

На долар дорожче згаданого вище конвертера
- сполучних проводів немає в комплекті

Планую купити +11 Додати в обране огляд сподобався +14 +21

Адаптер RS232 порту для послідовної універсальної шини (USB to UART Bridge) являє собою високошвидкісне USB-пристрій призначений для підключення периферійних пристроїв, що відповідають стандарту TIA / EIA232.

Адаптер виконаний на основі контролера Silicon Labs CP2102 і призначений для використання в системах, оснащених шиною USB. Підключення периферійних пристроїв виконується за допомогою стандартного роз'єму DB9.

  • підтримка специфікації USB 2.0;
  • повний набір сигналів інтерфейсу RS232;
  • амплітуда сигналу RS232 не гірше ± 5.5В;
  • живлення від шини USB.

Установка і підключення адаптера

  1. Перед установкою і підключенням адаптера CP2102 переконайтеся в тому, що зовнішні пристрої знеструмлені і підключені до контуру заземлення.
  2. Потім, підключіть зовнішній пристрій до роз'єму DB9.
  3. Встановіть адаптер в вільний USB-роз'єм, візуально контролюючи посадку контактних майданчиків до упору в роз'ємі.
  4. подачі напруги живлення на пристрій вводу-виводу система готова до роботи.

Приступаючи до установки адаптера CP2102, слід взяти до уваги, що специфікація USB передбачає можливість «гарячого» підключення, але її дія не поширюється на периферійні пристрої послідовного введення-виведення. При роботі з адаптером необхідно підключати тільки знеструмленому периферійне устаткування! Недотримання цих правил може призвести до виходу з компонентів комп'ютерної системи!

Установка драйвера на базі операційних систем Windows

Після підключення адаптера CP2102 до USB роз'єму в середовищі операційних систем Windows 2K / XP він виявляється таким чином:

Тепер необхідно завантажити драйвер CP210x USB to UART. Запускаємо його установку:

В процесі роботи пре-інсталятора користувач може вказати каталог, в якому будуть зберігатися драйвера пристрою CP210x:


Якщо операційна система зажадає інформацію про розміщення драйверів пристрою, користувач зобов'язаний буде вказати шлях до них. програмна модель адаптера CP2102 складається з композитного пристрої і мосту USB to UART, кожна з яких описана власним inf-Файл.

Тому в процесі автоматичного виявлення операційна система послідовно запитує обидва файли.

Драйвера адаптера повинні бути запропоновані системі для установки з каталогу, зазначеного в процесі пре-інсталяції, якщо інше не передбачає сам користувач. Спочатку операційна система встановлює драйвера для композитного пристрої (USB Composite Device):

Якщо поточна версія драйверів USB Composite Device не підтверджується цифровим сертифікатом компанії Microsoft, користувач попереджається про це наступним повідомленням:

Шлях до необхідних для композитного пристрої файлів вибирається виходячи з умов пре-інсталяції:

Наступний етап інсталяції - драйвери моста USB to UART. Як і на попередньому етапі рекомендується автоматична установка.

Якщо поточна версія драйверів USB to UART Bridge Controller не підтверджується цифровим сертифікатом компанії Microsoft, користувач попереджається про це зі спілкуванням. Шлях до необхідних файлів вибирається виходячи з умов пре-інсталяції:

Після інсталяції у властивостях системи з'являється контролер універсальної послідовної шини CP210x USB Composite Device, і послідовний порт COM3, реалізований за допомогою CP210x USB to UART Bridge Controller, а список пристроїв при знаходить такий вигляд:

Все, драйвер встановлений!

Даний матеріал публікується вперше, люб'язно наданий для публікації на нашому сайті компанією IC Book Labs і є ексклюзивною власністю даної компанії. Передрук без письмового дозволу правовласника заборонена.


Як відомо, для діагностики і перепрограмування автомобільних систем, зокрема ЕСУД, використовується діагностична лінія K-Line 12 V (ISO 9141), електрично сумісна з послідовним інтерфейсом RS232, застосовуваним в персональних комп'ютерах. Але, при сполученні авто і комп'ютера виникає проблема, пов'язана з тим, що обмін з автомобільними системами виконується на швидкостях 200 і 10400 бод, які нетипові для комп'ютерів. У пропонованій статті розглядається просте рішення даної проблеми для адаптерів USB-to-COM за допомогою програмного забезпечення, штатно поставляється розробниками.


Управління швидкістю обміну

Швидкість обміну для послідовного інтерфейсу залежить від встановленого подільника. Значення дільника визначається вмістом регістра Baud Rate Divisor. Аналіз архітектури контролера і нескладні розрахунки показують, що немає перешкод для використання цікавлять нас швидкостей в 200 і 10400 бод. Так в чому ж проблема?


При написанні операційних систем, драйверів і різних прикладних програм обслуговування послідовного інтерфейсу, з метою спрощення, використовувався стандартний, що став традиційним для персональних комп'ютерів, Ряд швидкостей: 300, 600, 1200, ..., 115200 бод. Швидкості 200 і 10400 бод, які використовує діагностична лінія автомобіля, не входять до цього ряд.

Наше завдання - забезпечити підтримку швидкостей обміну, які підтримують контролери FT232 і CP2102, але не підтримує "класичне" програмне забезпечення. Ідея полягає в тому, щоб перевизначити швидкості зі стандартного ряду новими значеннями, наприклад, замінити 14400 бод на 10400 бод. Після такого перевизначення прохання активувати режиму 14400 бод буде приводити до включення режиму 10400 бод. Сенс в тому, що ми додаємо нову швидкість, Зберігши інтерфейс, сумісний з наявним програмним забезпеченням. В принципі, для підстановки можна використовувати будь-яку швидкість із заданого ряду.

Перевизначення швидкостей для контролера CP2102

Розглянемо реалізації описаної вище ідеї для забезпечення сумісності контролера USB-to-COM CP2102 з контролером електронної системи управління двигуном (ЕСКД) автомобіля. Як було сказано вище, для діагностичної лінії K-Line 12 V типові швидкості в 200 і 10400 бод.

На щастя, виробник контролера CP2102 передбачив можливість гнучкого управління режимами роботи і забезпечив свій пристрій утилітою для перепризначення швидкостей обміну, тому сьогодні нам не знадобляться дизассемблер і відладчик, наші дії будуть дуже простими і зведуться до використання штатної утиліти, що поставляється компанією Silicon Labs.

Також відзначимо, що результатом наших дій буде зміна вмісту таблиці, що зберігає значення подільників частоти для підтримуваних швидкостей. Ця таблиця знаходиться у внутрішній незалежній пам'яті мікросхеми CP2102, тому зміни збережуться при виключенні живлення або перенесення перепрограмованого пристрою на інший комп'ютер. Для більшості застосувань, такий варіант зручніше, ніж, наприклад, внесення змін в драйвер. Для забезпечення сумісності з діагностичною лінією автомобіля і програмним забезпеченням, використовуваним для контролю стану ЕСУД, нам необхідно здійснити наступні перевизначення: 14400 на 10400 і 300 на 200 бод.

Отже, запускаємо утиліту CP210 xBaudRateAliasConfig.exe . З'являється вікно CP210 x Baud Rate Configuration. Якщо підключено кілька пристроїв CP2102, в верхньому рядку Connected Devices необхідно вибрати пристрій, який ми будемо перепрограмувати. Якщо пристрої підключалися вже після того, як утиліта була запущена, слід використовувати кнопку Refresh для оновлення списку задіяних адаптерів.

Натискаємо кнопку Get Configuration і отримуємо список підтримуваних швидкостей обміну для вибраного пристрою.

Якщо використовується один USB-to-COM адаптер, список формується автоматично, якщо кілька, - то після вибору пристрою обов'язково слід натиснути кнопку Get Configuration, інакше візуалізуватиметься таблиця, відповідна не поточні, а раніше обраному адаптера!

Лівий стовпець під символом # означає умовний номер швидкісного режиму. Стовпці High і Low в графі Application Requested Baud Rate Range містять верхню і нижню межу діапазону швидкостей, асоційованого з даним режимом. Якщо запитуваний програмним забезпеченням параметр потрапляє в цей діапазон, він використовується в поточному режимі. Для підтримки швидкості, запитуваної програмним забезпеченням, використовується режим, в діапазон якого потрапляє ця швидкість. Стовпці Desired і Actual в графі UART Baud Rate показують швидкість обміну, запрограмовану для даного режиму. Desired - ідеальне значення (зазвичай з стандартного ряду швидкостей). Actual - фактичне значення, яке в силу особливостей схем тактирования контролера, не завжди однаково ідеального.

Двічі клацаємо мишею на рядку, що відповідає редагованому режиму. Вводимо необхідне значення швидкості обміну - Desired Baud Rate. При цьому автоматично оновлюється фактичне значення швидкості Actual Baud Rate. З точки зору стандарту послідовного інтерфейсу, допустимим є відхилення ± 3%. Точність установки швидкості для контролера CP2102 задовольняє цій вимозі. Редагуємо рядок 19. Початкове значення швидкості обміну 14400 бод.


Вводимо нове значення - 10400 бод, натискаємо OK і перевизначення задано!


Редагуємо рядок 28. Початкове значення швидкості обміну 300 бод.


Вводимо нове значення - 200 бод, натискаємо OK і перевизначення задано.

Після того, як всі зміни внесені, не забуваємо натиснути кнопку Set Configuration у вікні CP210 x Baud Rate Configuration і перевірити, що значення Desired і Actual в редагованих рядках змінилися.

Скориставшись утилітами діагностики послідовних портів, можна перевірити результати виконаних дій, встановлюючи швидкості обміну, відповідні перевизначення і порівнюючи встановлені і виміряні швидкості.

Додатково зазначимо, що кнопка Advanced дозволяє виконати більш тонке налаштування параметрів. Для перевизначення необхідно встановити прапорець Override Recommended.

Параметри Prescaler (коефіцієнт ділення для попереднього дільника частоти) і Reload (значення для завантаження в лічильник основного дільника частоти) визначають швидкість обміну Baud Rate в бодах у відповідності з наступною формулою:

Baud Rate \u003d ( 24 .000 .000 / Prescaler) / (65536 -Reload)

Відзначимо, що контролер CP2102 підтримує швидкості до 1 .000 .000 бод в режимі 7 і 8 -бітний даних і 921 .600 бод в режимі 5 і 6 -бітний даних, для полнодуплексного обміну. При установці швидкості, що перевищує зазначені обмеження, можливі збої в роботі контролера.

Управління таймаут при обміні даними по USB здійснюється редагуванням параметра USB Receive Timeout. Значення таймаута в секундах визначається по формулі:

Timeout \u003d ( 65536 - Reload) / 500 .000

Зазначений таймаут використовується при передачі по USB в комп'ютер даних, прийнятих по послідовному інтерфейсу. Він визначає проміжок часу, протягом якого контролер очікує вхідних даних. Якщо протягом заданого проміжку дані не надходять, контролер завершує передачу по USB. Типове значення часу очікування - 1 ms. Управління таймаут дозволяє встановлювати компроміс при досягненні двох взаємно суперечать критеріїв:

1. Мінімізація затримки обслуговування USB пристрої комп'ютером, що в даному випадку дає збільшення швидкості реакції діагностичної програми на події в діагностується.

2. Мінімізація завантаження комп'ютера операціями передачі порожніх пакетів даних по USB, що мають місце при відсутності надходження даних по послідовному інтерфейсу. Від цього залежить загальна продуктивність.
Чим більше таймаут, тим довше пристрій "не засинає" при відсутності даних, тобто для поліпшення першого критерію, таймаут слід збільшувати, а для другого - зменшувати.

Перевизначення швидкостей для контролера FT232

Розглянемо рішення такого завдання для одного з конкуруючих продуктів - контролера FT232 компанії FTDI. На відміну від вище наведеного прикладу, тут нам доведеться редагувати файл конфігурації драйвера послідовного порту FTDIPORT.INF . Структура цього файлу описана в, процедура редагування полів, що встановлюють швидкість обміну для послідовного порту, описана в. Тому, з метою компактності викладу, в нашому описі увагу акцентовано тільки на тих параметрах, які необхідно змінювати. Також відзначимо, що даний приклад відповідає одному з декількох варіантів представлення параметрів, всі можливі варіанти перераховані в,.

Знаходимо в файлі FTDIPORT.INF наступний запис:


HKR "« ConfigData », 1, 01, 00, 3 F, 3 F, 10, 27, 88, 13, C4, 09, E2, 04, 71, 02, 38, 41, 9 c, 80, 4 E, C0, 34, 00, 1 A, 00, 0 D, 00, 06, 40, 03, 80, 00, 00, d0, 80

Послідовність, починаючи з шостого по рахунку параметра, містить пари байтів, кожна з яких задає коефіцієнт ділення частоти для подільника, що визначає швидкість обміну по послідовному інтерфейсу. Кожна пара відповідає певній швидкості. Розглянемо першу пару параметрів 10 h, 27 h.

1. Так як два суміжних байта 16 -бітний слова записані починаючи з молодшого байта, для отримання 16 -бітний числа, їх потрібно обміняти місцями: 10 , 27 відповідає 2710 h, H - означає, що число записано в шістнадцятковій системі числення.

2. Переводимо 16 -річное число 2710 h в двійкову систему.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0
2 7 1 0

3. Інтерпретуємо отримане двійкове значення. Два старших біта 16 -бітний числа, а саме біти 15, 14 визначають дробову частину коефіцієнта ділення частоти відповідно до наступної таблиці:

біт 15 біт 14 Дробове а частина подільника
0 0 0
0 1 0 .5
1 0 0 .25
1 1 0 .125

У нашому випадку дрібна частина подільника дорівнює нулю. Бітове поле 13 -0 16 -бітний числа чисельно одно цілої частини подільника, переведемо з шістнадцятковій системи в десяткову 2710 h \u003d 10 .000.

4. Тактова частота на вході дільника дорівнює 3 MHz \u003d 3 .000 .000 Hz. Швидкість обміну в бодах (Baud Rate) буде дорівнює вхідний частоті подільника, розділеної на коефіцієнт розподілу.

Baud Rate \u003d 3 .000 .000 / 10 .000 \u003d 300 бод.

Таким чином, перша пара значень задає швидкість 300 бод. Нехай нам необхідно перевизначити цю швидкість на 10400 бод. Обчислимо необхідний коефіцієнт ділення (Divisor):

Divisor \u003d 3 .000 .000 / 10 .400 = 288 ,46

Найближче доступне значення 288, 5. Нам потрібно задати цілу частину подільника рівній 288 , Дробову рівній 0 ,5 . Згідно таблиці 2, біти 15, 14 будуть рівні 01 b, b - означає, що число записано в двійковій системі числення. Переведемо 288 в шістнадцяткову систему: 288 \u003d 120 h. Це значення необхідно помістити в бітове поле 13 -0. Об'єднуємо біти 15 -14 і 13 -0, отримаємо 4120 h.

Для перевизначення швидкості 300 бод на 10400 бод запис повинна мати вигляд:


HKR "« ConfigData », 1, 01, 00, 3 F, 3 F, 20, 41, 88, 13, C4, 09, E2, 04, 71, 02, 38, 41, 9 c, 80, 4 E, C0, 34, 00, 1 A, 00, 0 D, 00, 06, 40, 03, 80, 00, 00, d0, 80

Нагадаємо, що якщо драйвер пристрою FT232 вже встановлено, для вступу змін в силу, програмне забезпечення пристрою необхідно повністю деінсталювати і встановити повторно з каталогу, в якому знаходиться відредагований INF файл. В силу особливостей операційної системи, Функція оновлення драйвера або видалення пристрою в диспетчері пристроїв може не дати результату.

Джерела інформації.

Інтерфейс UART підтримується практично всіма микроконтроллерами і вельми зручний при розробці і налагодженню усіляких МК-девайсів: і прошивку через завантажувач залити, і дебаговие логи пристрою на комп'ютері переглянути. Але, на жаль, в сучасних комп'ютерах COM-порт поступово зникає з числа доступних інтерфейсів, будучи витісненим шиною USB, а в ноутбуках і поготів відсутня. Це і змусило замислитися над питанням виготовлення перехідника USB -\u003e COM. Зазвичай, такі перехідники роблять на основі популярної мікросхеми серії FT232, але є у неї пара недоліків: 1) вартість мікросхеми ~ 150 рублів 2) мікроскопічні розміри з усіма наслідками, що випливають звідси складнощами пайки і виготовлення друкованої плати.

В якості альтернативи FT232 виявилася менш відома CP2102, що стоїть рази в два дешевше, і має рази в два менші розміри та ще й корпус QFN-28 (5мм х 5мм). Ця мікросхема є повністю готовий USB-UART-перетворювач не вимагає ніякої зовнішньої обв'язки (пара фільтруючих конденсаторів на шину живлення не береться до уваги) і володіє наступними можливостями:

  • відповідність специфікації USB 2.0, full-speed (12 Mbps)
  • інтегрована EEPROM на 1024 байта для зберігання ID виробника, ID продукту, серійного номера, опису пристрою і т.д.
  • швидкість віртуального RS232 від 300 bps до 1 Mbits
  • підтримка форматів передачі даних 5, 6, 7 і 8 байт даних; 1, 1.5 і 2 стоп-біта, різні контролі парності
  • буфер приймача - 576 байт, буфер передавача - 640 байт
  • вбудовані джерела опорної частоти, вбудований стабілізатор на 3.3В
  • Драйвера для Windows Vista / XP / Server 2003/2000, Linux, Mac OS-X / OS-9

схема

Схема адаптера взята з даташіта, опциональная периферія була викинута і доданий світлодіод для індикації наявності живлення.

Вилка DB9 розпаяна аналогічно виходу COM-порту комп'ютера, ось його розпаювання (напрямок сигналів зазначено щодо комп'ютера).

Основна проблема конструювання перехідника - проблема друкарської плати і монтажу QFN-28 була вирішена приклеюванням мікросхеми догори ногами до друкованої плати і подпаіваніе її висновків проводом ПЕВ 0.1 мм. Кілька клопітно, зате, мініатюрно. Ось, що в результаті вийшло:


І в корпусі від DB-9 все виглядає наступним чином:

драйвера

Тепер, ретельно перевіривши монтаж, можна відчувати. Девайс виявився системою але драйверів windows знайти не змогла. Їх я скачав. Після чого у мене в системі з'явився новий порт - COM5 в Windows і / dev / ttyUSB0 в Linux. Тепер, з'єднавши RXD на TXD (2 і 3-й висновки вилки перехідника) і запустивши будь COM-термінал, можна переконатися, що байти відсилаються .. і приймаються .. причому, останні збігаються з першими ..

Один важливий момент: Рівні сигналів на виході перехідника - ТТЛ і відрізняються від рівнів сигналів стандартного інтерфейсу RS232, тому, до перехідника можна підключити безпосередньо звичайні пристрої для COM-порту, більш того, це може вивести з ладу перехідник. Для підключення стандартних COM-пристроїв необхідно додати перетворювач рівнів на мікросхемі сімейства MAX232.

Нижче ви можете завантажити проект в Eagle, а також готовий малюнок друкованої плати для лазерного праски (для прасування двосторонньої друкованої плати рекомендую друкувати малюнок на кальці).

У продовження до теми «Програматор AVR910», про маленький пристрій, хочу запропонувати вашій увазі наступний мій «девайс».
В один час, починаючи освоювати мікроконтролер, у мене виникла мета обмінюватися, за допомогою нього, даними з комп'ютером.

У контролері АТmega16 є UART (RS-232) або простіше кажучи, СОМ порт, тільки з рівнями 5 Вольт.
Щоб «звести» його з комп'ютером необхідно підвищити ці рівні до 10 Вольт.
Цю операцію, в основному, робить мікросхема MAX232.

Її можна використовувати в разі, коли використовується СОМ порт на комп'ютері (апаратний).
Але я хотів використовувати порт USB. Пішов в магазин і купив простий дата кабель до стільниковому телефону.
Як я думав, тоді всі кабелі однакові і піни в них задіяні RX і TX.
Я помилявся ... Кабелі, що попалися мені, зроблені на мікросхемі PL2303, яка не забезпечує повний СОМ порт.
З трьох куплених кабелів, попався один, який, що називається, працював «на ура».
Він заснований на мікросхемі CP-2102. це USB-RS232 адаптер.

Знайшовши в мережі схему адаптера, заснованого на цій мікросхемі, я почав збирати пристрій. Ця мікросхема може програмуватися під ваші дані (Виробник, серійний номер, Назва пристрою, якщо ви хочете свій пристрій зв'язати з комп'ютером). Все у вкладених файлах.

Схема його до неподобства проста.
Причому контролер, можна відразу з'єднувати, без перекладів рівнів (5-10 Вольт).
Виконання, як завжди понад мініатюрне.

Виключений фрагмент. Наш журнал існує на пожертви читачів. Повний варіант цієї статті доступний тільки

файли

зразок драйвера
🕗 13/12/08 ⚖️ 3,23 Mb ⇣ 435 Здрастуй, читач!

--
Дякую за увагу!

Прога для виготовлення ваших власних драйверів
🕗 13/12/08 ⚖️ 238,88 Kb ⇣ 416 Здрастуй, читач! Мене звуть Ігор, мені 45, я сибіряк і завзятий електронник-любитель. Я придумав, створив і утримую цей чудовий сайт з 2006 року.
Вже більше 10 років наш журнал існує тільки на мої кошти.

Хороший! Халява скінчилася. Хочеш файли і корисні статті - допоможи мені!

--
Дякую за увагу!
Ігор Котов, головний редактор журналу «Датагор»

Схема і печатка
🕗 13/12/08 ⚖️ 41,22 Kb ⇣ 461

THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму