Электрификация

Справочник домашнего мастера

Ch340

Содержание

vasilii76 ›
Блог ›
Конвертер USB -> UART .

В данном опусе пойдет речь об USB-UART конвертере. Все, что вы хотели узнать про конвертер USB-гнезда вашего любимого Lap- или Desktopa в UART, но боялись/стеснялись спросить.
Итак, что же это за зверь такой? Эту штуку, что характерно, знает в глаза почти каждый, у кого был мобильник, на который можно было закачивать картинки и страшненькие мелодии через, так называемый, дата-кабель. Собственно, дата-кабель и есть этот самый пресловутый конвертер USB-UART.
Почему я снова поднял тему этой штуки? Да потому что раньше для некоторых поделок я пользовался USB-UART именно от мобильного телефона. От его шнурка я отрезал телефонный разъем, припаял туда тот, что нужен был мне и был счастлив. Но тут случилось непредвиденное. А именно, пришлось перейти на Ось зла Win7. А так как мой шнурок был выпущен в те лохматые годы, когда женщины были молоды и красивы, а деревья были зелены, как голубые яйца дрозда на брезентовом поле, то… Короче, не знает виндовс 7 про такой шнурок, как я его ни уговаривал. Итог – пришлось делать новый USB-UART.
Сердцем данного устройства стала уже полюбившаяся многим мелкосхема от монстра подобных микросхем – FTDI – FT232RL. Да-да, эта та самая штуковина, которую так любят ставить в KL-line-адаптер. Поборники справедливости, конечно, могут сказать что на CP2102 было бы дешевле раза в два… И, что характерно, будут полностью правы! НО. Вот оно, это самое слово, которое готово поставить все с ног на руки. Но, у меня была в наличии именно она. А ехать по снегом заваленному мегаполису, коим, бесспорно, является Самара (такой мегаполис-лайт), было бы еще хуже, себе дороже и все такое.
Загуглил схему. Схема простая. Целиком и полностью соответствует даташиту.

Что характерно, схема предлагалась сразу с печатной платой, что было особенно приятно (все взял ). Осталось только достать лазерный черно-белый утюг и заЛУТить платку. УСБ-разъем сдонорил с неудавшегося в свое время программатора AVR910. Остальное нашел под ногами, пока шел на работу.
Результат всего проделанного курса мероприятий не может не радовать. Работает как швейцарские часики, которые я купил в Шеньчжене, на рынке в Ло-Ху (мольчать, гусары!) за 50 юаней. В общем, четко и отлично. Рекомендую к сборке.


А если вдруг появилось желание немного съэкономить, то можно сделать подобное устройство на более дешевой миксросхеме ATTINY2313. Для этого нужно просто напросто проследовать по данной ссылочке, и следовать советам, что там приведены. Ссылку любезно предоставил камрад Mail1977. А он в таких делах чушь пороть не будет. Так что, срочно изучать материал!

Введение

LPT и COM порты уже большая редкость на современных стационарных компьютерах, а про ноутбуки то и говорить нечего. USB медленно, но верно вытеснила их, усложнив жизнь разработчикам и упростив пользователям. Эх, как приятно было когда-то подключить микроконтроллер к COM порту компьютера, используя всего лишь max232 и не заботясь о драйверах. Еще чуть-чуть и это будет возможно только на промышленных компах.

Следуя общей тенденции, производители микросхем стали выпускать доступные микросхемы для работы с USB. Такие как USB-UART преобразователи или микроконтроллеры с поддержкой этой шины. К сожалению последние, несмотря на наличие библиотек, все еще сложны в освоении, поэтому неискушенному инженеру проще использовать первый вариант. И в этой статье мы рассмотрим две подобные микросхемы — FT232 и CP2103 и схемы преобразователей на их основе.

USB-UART преобразователь на FT232RL

Микросхема FT232RL фирмы FTDI пользуется заслуженной популярностью в инженерных кругах. Она предоставляет пользователю возможность создания полноценного COM порта, имеет функцию управления отдельными выводами, драйвера, простую схему включения с минимальным количеством дополнительных элементов и приемлемый для пайки корпус. Также дополнительным плюсом этой микросхемы, является возможность программирования ее EEPROM памяти, в которой можно изменить некоторые параметры USB устройств. Из недостатков можно отметить ее высокую цену ~120-150 рублей, которая вполне сравнима с ценой на микроконтроллер atmega.
Я сделал на FT232RL свой вариант USB-UART преобразователя. Все пользовательские выводы развел на PLS`ку по краям платы. Расстояние между PLS выбрал таким, чтобы можно было втыкать переходник в макетную плату. Выводы RXD и TXD, предназначенные для подключения UART`a микроконтроллера, развел на отдельную PLS для удобства подключения. Также на плату помесил 2 светодиода, для индикации процесса передачи/приема информации микросхемой FT232RL, и перемычки для выбора напряжения питания выводов. Оно может быть пяти или трех вольтовым. USB разъем взял в мини исполнении, USB-B слишком громоздкий. Плату развел в одном слое, с тремя перемычками.

Схема USB-UART переходника на FT232RL

Внешний вид полученного девайса

Если ты соберешь этот USB-UART переходник, то не спеши сразу втыкать его в USB порт. Перед работой нужно убедиться в отсутствии замыканий между плюсом питания, землей и выводами D+, D-. Возьми тестер и прозвони их. Если замыканий нет, визуально проверь другие вывода и только после этого можешь подключать переходник.

При первом включении операционка попросит установить драйвера. Их можно скачать с официального сайта производителя — драйвер для FT232. Установка драйверов не представляет никакой сложности, поэтому говорить об этом не будем.
Когда драйвер установится, в системе появится дополнительный COM порт. Это так называемый виртуальный COM порт, но его можно использовать точно так же как и обычный. Чтобы увидеть его порядковый номер, нужно залезть в диспетчер устройств, если у тебя винда. Заходишь в панель управления, выбираешь система > диспетчер устройств. В разделе «Порты (COM и LPT)» должен находиться наш переходник — «USB Serial Port (COM10)». У тебя может быть какой-нибудь другой номер порта.
Чтобы убедиться в работоспособности переходника нужно открыть любую терминальную программу, выбрать соответствующий COM порт, замкнуть джампером выводы RXD и TXD и отправить через терминал любую последовательность символов. Если переходник функционирует, терминал примет ответ в виде эха, а на плате кратковременно вспыхнут светодиоды.
Для подключения переходника к микроконтроллеру, нужно вывод RXD микроконтроллера соединить с выводом TXD переходника, а вывод TXD микроконтроллера с выводом RXD переходника. Также нужно соединить их земли.

USB UART переходник на CP2103

Микросхема CP2103 фирмы Silicon Labs — это по сути аналог FT232. Имеет простую схему включения с минимальным количеством внешних компонентов, позволяет организовать полноценный COM порт со всеми его сигналами, имеет дополнительные пользовательские выводы и программу для их конфигурации, драйвера, маленькие габариты и более демократичную цену. Из недостатков стоит отметить мелкий и неудобный для запайки в домашних условиях корпус. Пожалуй, это главная причина непопулярности этой микросхемы в среде самодельщиков.
Ради интереса я сделал USB UART преобразователь и на ее базе. Все пользовательские выводы развел на PLS`ки по краям платы. RXD и TXD вывел на отдельный разъем. Джампер для выбора напряжения питания выводов здесь не понадобился, так как это напряжение не может быть большее 3.6 В. USB разъем выбрал в мини исполнении, плату развел в одном слое с четырьмя перемычками на обратной стороне. Светодиоды для индикации передачи/приема данных не сделал, потому что микросхема CP2103 не имеет выделенных для этих целей выводов. Можно задействовать любые пользовательские выводы, но их нужно конфигурировать с помощью специального софта. Когда я это узнал, переходник уже был готов и переделывать его было лень, особенно после мучений с запайкой. Единственное, что я добавил из индикации — это светодиод по питанию.

Схема USB-UART преобразователя на CP2103

Внешний вид полученного девайса

Я немного помучился с изготовлением этого переходника. Во первых между ножками CP2103 очень маленький зазор, нужно аккуратно делать плату. Во вторых ее сложно припаять. Если бы у меня не было фена, я бы за это вообще не взялся.
Запаивал я ее следующим образом. Залудил плату сплавом Розе. Он плавится при 100 градусах, что позволяет избегать перегрева платы и микросхемы . Обильно смочил посадочное место микросхемы флюсом и положил ее туда. Используя увеличительное стекло и пинцет, кое-как сориентировал ее по посадочному месту. Далее стал нагревать микросхему феном с температурой ~150-200 градусов. Когда припой расплавился, микросхема стала шевелиться и за счет сил поверхностного натяжения заняла точное положение на посадочном месте. Получилось очень ровно, но переходник не заработал. Я повторно нагрел микросхему и слегка придавил и пошевелил пинцетом. После этого микросхема сконтактировала с дорожками платы.
После сборки переходника нужно убедиться в отсутствии замыканий между плюсом питания, землей и выводами D+, D-, а затем между остальными выводами. Поскольку микросхема очень маленькая, между выводами легко может сесть сопля. После проверки выводов, USB UART переходник можно подключать к компьютеру.
Как и с предыдущем переходником, при первом включении система предложит установить драйвера. Скачивай их с официального сайта производителя — драйвер для CP2103.
Установленный переходник определяется в диспетчере устройств в разделе «Порты» как «Silicon Labs CP210X USB to UART Bridge (COM6)». У тебя может быть другой номер порта.
Работоспособность проверяется аналогично, повторяться не буду.

Альтернативные варианты USB-UART адаптеров

Альтернативные варианты адаптеров можно сделать на микросхемах FT230XS и CP2102. Это урезанные и соответственно более дешевые аналоги FT232 и CP2103. Обе микросхемы имеет меньшее число пользовательских выводов и не совпадают по распиновке.

Файлы

Я уже затрагивал тему преобразования компьютерного интерфейса USB в последовательный интерфейс UART – стандартный интерфейс любого современного микроконтроллера. В частности сделал обзор модуля PL2303 USB UART BOARD. Показал насколько просто с помощью этого модуля подключать к USB порту компьютера устройства с интерфейсами UART, COM, RS232.

К существующим на рынке мостам USB-UART не так давно добавилась китайская микросхема CH340G (изготовитель – компания WCH). Не просто добавилась, а претендует на то, чтобы стать самым популярным компонентом сопряжения интерфейсов USB и UART.

Этому способствует:

  • Низкая цена микросхемы. По моей партнерской программе на момент написания статьи (январь 2017г.) микросхему CH340G можно купить всего за 40 руб., а модуль CH340 продается по цене 90 руб.
  • Удобный корпус SO-16. Маленький корпус с небольшим числом выводов и минимум внешних компонентов значительно облегчают применение микросхемы. Если раньше я отдавал предпочтение модулям USB-UART, то сейчас задумываюсь об установке микросхемы CH340 непосредственно на плате устройства.
  • Неслучайно практичные китайцы в большинстве своих клонов плат Ардуино используют именно эту микросхему. И это еще один фактор способствующий распространению конвертера CH340. У многих на компьютере уже установлен для него драйвер.

В серию китайских микросхем CH340 входят:

Название Корпус Назначение Официальная техническая документация
CH340T SSOP-20 Мост USB — UART CH340.pdf
CH340R SSOP-20 Мост USB — IrDA
CH340G SO-16 Мост USB — UART CH340G.pdf

Техническую информацию о микросхемах CH340T и CH340R можно загрузить в формате PDF по этой ссылке CH340.pdf.

Но последний вариант из таблицы – микросхема CH340G оказался наиболее удачным благодаря корпусу с меньшим числом выводов. Именно он получил широкое распространение. Его я и буду описывать. Технические характеристики и параметры я взял из официальной документации производителя – китайской компании WCH. Информацию можно загрузить в формате PDF по этой ссылке CH340G.pdf.

На базе этой микросхемы разработан модуль — преобразователь интерфейсов. О нем я расскажу в следующей публикации.

Мост USB-UART CH340G.

Микросхема предназначена для преобразования интерфейса USB в UART. Позволяет создать на компьютере дополнительный UART порт. Подробно о технологии конвертирования интерфейсов USB и UART можно прочитать по .

Микросхема CH340G:

  • Поддерживает полную скорость спецификации USB 2.0.
  • Требует минимум внешних компонентов. Только кварцевый резонатор и 4 конденсатора.
  • Создает виртуальный последовательный порт, который эмулирует все функции реального COM порта.
  • Позволяет использовать все существующие приложения для COM портов без изменения и доработок.
  • Аппаратная часть поддерживает последовательный дуплексный интерфейс с внутренним буфером FIFO. Скорость обмена от 50 бит в сек, до 2 Мбит в сек.
  • Поддерживает полный контроль сигналов управления передачей данных RTS, DTR, DCD, RI, DSR и CTS.
  • При использовании внешних преобразователей уровней поддерживает интерфейсы RS23, RS422, RS485.
  • Может работать с сигналами уровней 5 и 3,3 В.
  • Конструктивно микросхема выполнена в корпусе SO-16.

Назначение выводов.

Вывод Обозначение Направление Описание
1 GND Питание Общий провод (земля). Должен быть соединен с общим проводом шины USB.
2 TXD Выход TXD сигнал UART.
3 RXD Вход RXD сигнал UART.
4 V3 Питание Внутреннее опорное напряжение для USB интерфейса. При питании 3,3 В вывод должен быть соединен с Vcc. При напряжении питания 5 В, к нему необходимо подключить относительно земли блокировочный конденсатор емкостью 4,7 – 20 нФ.
5 UD+ Аналог. D+ сигнал USB.
6 UD- Аналог. D- сигнал USB.
7 XI Вход Вход кварцевого генератора. К нему подключается кварцевый резонатор и конденсатор.
8 XO Выход Выход кварцевого генератора. К нему подключается кварцевый резонатор и конденсатор.
9 CTS# Вход CTS сигнал UART.
10 DSR# Вход DSR сигнал UART.
11 RI# Вход RI сигнал UART.
12 DCD# Вход DCD сигнал UART.
13 DTR# Выход DTR сигнал UART.
14 RTS# Выход RTS сигнал UART.
15 R232 Вход Включение инверсии входа RXD. Активный уровень – высокий. Вход имеет внутренний резистор, подключенный к земле.
16 VCC Питание Питание.

Предельно-допустимые параметры.

Превышение значений этих параметров может привести к выходу из строя микросхемы.

Обозначение Название Минимальное значение Максимальное значение Единица измерения
Ta Рабочая температура — 40 85 °C
Ts Температура хранения -40 125 °C
Vcc Напряжение питания (относительно вывода GND) — 0,5 6,5 В
Vid Напряжение на цифровых выводах (относительно вывода GND) — 0,5 Vcc + 0,5 В

Параметры постоянного тока.

Обозначение Название Мин. Тип. Макс. Ед. изм.
Vcc Напряжение питания Питание 5 В 4,5 5 5,5 В
Питание 3,3 В 3,3 3,3 3,8 В
Icc Потребляемый ток 12 30 мА
Islp Потребляемый ток в режиме сна Питание 5 В 150 200 мкА
Питание 3,3 В 50 80 мкА
Vil Входное напряжение низкого уровня — 0,5 0,7 В
Vih Входное напряжение высокого уровня 2,0 Vcc + 0,5 В
Vol Выходное напряжение низкого уровня 0,5 В
Voh Выходное напряжение высокого уровня Vcc – 0,5 В
Iup Ток внутренней подтяжки к питанию 3 150 300 мкА
Idn Ток внутренней подтяжки к земле — 50 — 150 — 300 мкА
Vr Напряжение сброса по питанию 2,3 2,6 2,9 В

Динамические характеристики.

Обозначение Название Мин. Тип. Макс. Ед. изм.
Fclk Тактовая частота 11,98 12 12,02 мГц
Tpr Время сброса по включению питания 20 50 мс

Подключение микросхемы CH340G.

Микросхема CH340G содержит внутренние подтягивающие резисторы для шины USB и цепи подавления отраженного сигнала. Поэтому выводы UD+ и UD- должны быть подключены непосредственно к соответствующим сигналам USB (выводам разъема USB).

Микросхема имеет встроенную логику сброса по включению питания.

Для нормальной работы микросхемы необходимо сформировать на выводе XI сигнал частотой 12 мГц.

  • Обычно это обеспечивается подключением кварцевого резонатора частотой 12 мГц между выводами XI и XO. Также необходимо подключить нагрузочные конденсаторы между этими выводами и землей. Формирование тактового сигнала при такой схеме включения обеспечивает внутренний генератор.
  • Можно использовать внешнюю тактовую частоту. В этом случае тактовый сигнал необходимо подать на вывод XI, а вывод XO оставить неподключенным.

Микросхема поддерживает два напряжения питания: 5 В и 3, 3 В.

  • При питании 5 В необходимо подключить блокировочный конденсатор емкостью 4,7-20 нФ между землей и выводом V3.
  • В режиме питания 3,3 В вывод V3 должен быть соединен с выводом Vcc.

Конвертер CH340G поддерживает все сигналы управления передачей данных стандартного интерфейса RS233: CTS, DSR, RI, DCD, DTR, RTS. Программное обеспечение также поддерживает все эти сигналы.

С помощью вывода R232 можно включить инверсию сигнала RXD. Инверсия включается высоким уровнем на входе R232. Состояние сигнала запоминается при включении питания. Вход R232 имеет внутренний резистор, поэтому если в режиме инверсии RXD нет необходимости, то можно оставить вывод R232 неподключенным.

Типовая схема использования CH340G в преобразователе интерфейсов USB – UART выглядит так.

Микросхема получает питание 5 В от интерфейса USB. При питании от напряжения 3,3 В необходимо соединить выводы Vcc и V3.

Режимы работы конвертера CH340G.

У микросхемы CH340G есть встроенный буфер типа FIFO.

CH340G поддерживает симплексный, полудуплексный и полнодуплексный асинхронные режимы обмена.

Микросхема поддерживает все стандартные режимы передачи данных:

  • 1 стартовый бит и 5-8 битов данных;
  • 1 или 2 стоповых битов;
  • бит паритета с проверкой на четность или нечетность.

Скорость обмена может быть выбрана из следующих значений:

Скорость обмена, бод
50 900 19 200 128 000
75 1 200 28 800 153 600
100 1 800 33 600 230 400
110 2 400 38 400 460 800
134,5 3 600 56 000 921 600
150 4 800 57 600 1 500 000
300 9 600 76 800 2 000 000
600 14 400 115 200
  • Ошибка временных параметров передачи данных не превышает 0,3 %.
  • При приеме допустимо отклонение временных характеристик до 2 %.

Микросхема полностью эмулирует работу стандартного COM порта. Все приложения для реальных COM портов работают с конвертером интерфейсов CH340G без изменения кода. Подробнее о технологии виртуальных COM портов моно прочитать по .

С помощью CH340G можно подключать существующие периферийные устройства к компьютерам, не имеющим COM портов. Для реализации таких распространенных интерфейсов как RS232, RS422 и RS485 достаточно добавить преобразователи уровней сигналов.

Вот пример схемы для подключения устройств с интерфейсом RS232.

CH340G может быть использована для реализации USB инфракрасного адаптера (интерфейс IrDA). Типовая схема USB — IrDA адаптера выглядит так.

В следующей публикации я расскажу о модуле CH340, созданном на базе этой микросхемы.

Преобразователь USB-UART на базе CH340G

Серия микросхем CH340 предназначена для преобразования шины USB в другие интерфейсы. На основе этой микросхемы можно построить преобразователь USB в последовательный интерфейс (например COM-порт), инфракрасный интерфейс (IrDA порт), интерфейс принтера. Наибольшую популярность данный чип приобрел в USB-SERIAL TTL модулях CH340G. Популярность переходника, в первую очередь, обусловлена ценой. Он значительно дешевле широко используемых чипов FTDI. Кроме того, в последнее время все чаще стали появляться платы Arduino, построенные с использованием CH340 (например Arduino UNO R3, модель BTE14-04 и Arduino MEGA 2560). Для подключения этих плат и модулей необходимо установить ch340g драйвер на свой компьютер.

Смотрите ещё:

Обозначение контактов:

DTR
RXI Прием данных
TXO Передача данных
VCC Питание устройств с уровнем сигнала TTL 5В / 3.3В
CTS
GND Общий контакт

Характеристики CH340G:

Разъём USB на плате.
Полноценный переходник USB <> COM-порт (RS232) с уровнями TTL/CMOS и линиями: TxD, RxD, DTR, CTS.
В случае, если вам не требуются дополнительные линии DTR, CTS, рекомендуется приобрести «облегченную» версию переходника: CH340G-1
Переключатель выходного напряжения для вывода «VC»: 3,3v / 5,0v.
Светодиоды индикации.
Само восстанавливающийсяпредохранитель, защищающий USB порт компьютера от замыканий/перегрузки по току.
Кнопка активации при использовании в качестве загрузчика для семейства микроконтроллеров STC (опция).
Готовый модуль в комплекте с соединительными проводами.
Доступны драйвера для систем: WIN98 / WIN-ME / WIN2000 / WINXP / WIN2003 / VISTA / WIN2008 / WIN7 / WIN8(32/64) / MAC OS32 / MAC OS64 / LINUX
Миниатюрные размеры: 17 * 57 мм.
Вес модуля 5,5 гр.

Схема подключения RX TX CH340G

Схема подключения между двумя преобразователями CH340G

Схема подключения преобразователя и радиомодуля HC-11 или HC-12

PavelBolotnikov ›
Блог ›
Корректировка одометра VDO с использованием переходника USB to TTL (Модуль CH340G/CH340)

Всем привет! Думаю многим кто интересовался корректировкой одометра на приборной панели VDO известна эта схема адаптера для COM порта компьютера.

Адаптер для корректировки одометра через COM порт

На большинстве современных компьютеров данный порт отсутствует. Но жажда поизвращаться над приборкой не гасла, и поэтому был заказан переходник USB to TTL (Модуль CH340G/CH340), который должен был заменить COM порт. Но почитав литература про данное устройство, пришел к выводу что данный переходник полностью заменит адаптера для COM порта.

Полный размерМодуль CH340G Полный размерМодуль CH340G

Обратите внимание на перемычку, она должна стоять на контактах 5V и VCC
Далее всё было подключено по схеме ниже. Обратите внимание, что «земля» с Белой колодки и с адаптера должны быть соединены, это очень важно!

Полный размер

Схема подключения Полный размерМаленькое окошечко (слева от красной колодки) для подключения переходника (для версий панели 0.8 и 1.1)

После того как всё подключено скачиваем программу VDO Research. В настройках программы мы должны установить порт для переходника. По умолчанию номер порту компьютер даст любой, но мы должны выставить либо COM 1, либо COM 2. Следовательно и в программе выставляем либо COM 1, либо COM 2. В программе есть калькулятор с помощью которого выставляем пробег.

Последовательность шагов в программе

Ну и напоследок немного фото с различными пробегами.

Как «чайник» делал UART <-> RS232 конвертер для Orange Pi

Началось всё с того, что я купил себе Orange Pi, поддавшись рекламному слогану «аналог Rasberi Pi всего за 15$». Девайс был заказан на алиэкспрессе и прибыл через пятнадцать дней ещё в феврале. Тогда же были куплены все необходимые дополнительные компоненты: радиатор на процессор, 15 ваттный блок питания, карточка micro SD объемом 32 Гб, HDMI-кабель для подключения монитора. За неимением времени он пылился в ящике стола аж до июня. И вот наконец дошли руки проверить его работоспособность.
На стандартных прошивках, предлагаемых на официальном сайте работоспособность не вызвала нареканий. Но стандартные прошивки меня не устраивают по той причине, что уж так я устроен — любой попавший мне в руки девайс должен быть кастомизирован по полной программе. Поэтому в руки был взят U-boot, исходники которого скачаны с официального FTP, а так же сборка Arch Linux для ARM. В качестве опорного мануала и отправной точки для копания был взят вот этот мануал для Banana Pi.
Путем некоторых нехитрых манипуляций (описание которых более подходит для хабра) и загрузчик и арч были водружены на карту памяти и устройство было включено. Однако, после загрузки меня ждал черный экран и горящий зеленый светодиод на «апельсине».
Ну не беда, подумал я. На «апельсине» распаян UART, подключусь как я к нему терминалом да посмотрю что происходит. Были куплены необходимые детали и провод и спаян вот такой кабель (картинка под спойлером)
Нубский вариант кабеля
Тот кто в теме, сразу поймет в чем я был не прав, сделав такой кабель, и таких среди читающих больше половины. Я же заподозрил неладное после того как увидел кракозябры, которые плевал в терминал мой «апельсин». Именно понимание причины моей глупейшей ошибки и побудило меня к действиям, описанным ниже.

1. В чем разница между UART и RS232

Разница в уровнях. Последовательный интерфейс, реализованный в Orange Pi и других подобных устройствах, основан на TTL-логике, то есть нулевому биту соответствует нулевой уровень напряжения, а единице уровень в +5 В. RS232 использует более высокий уровень напряжения, до 15 В, и единице соответствует -15 В, а нулю +15 В. Для увеличения помехозащищенности канала как ноль воспринимается любой уровень напряжения ниже 3 В по модулю. Протокол передачи данных на уроне последовательности логических значений и у UART и у RS232 абсолютно одинаков. Всё это иллюстрируется следующей диаграммой передачи байта
Вот как я мог об этом забыть? В бытность своей работы в электровозостроительном НИИ эти вещи я знал. А тут почему-то глупость сморозил. В общем стало понятно, что нужен некий преобразователь уровней с инвертированием сигнала. Выбор пал в сторону подключения всего хозяйства к COM-порту, который есть на матплате моего домашнего компьютера. Хотя конечно можно было посмотреть в сторону UART <-> USB, ибо старинный последовательный интерфейс неуклонно теряет актуальность. Однако моя склонность к более простым решениям победила и в качестве кандидата на приобретение всплыл вот такой девайс

продаваемый на том же «али» за 464 рубля. В принципе, такое можно было найти и в магазинах или на радиорынке в моем городе, но зуд сделать что-то руками уже был разбужен. Поэтому я отверг мысли о покупке платы сопряжения и решил попробовать сделать её самостоятельно.
Надо сказать, что с паяльником я вообще-то дружу. В школе и университете до покупки первого компьютера пайка всякой полезной и не очень ерунды была для меня главным увлечением. Но я жил в деревне, были девяностые годы. Денег особо не было, компоненты доставались путем разборки попавшего в поле зрения радиохлама. Источником информации были книги из районной библиотеки — «интернеты» тогда были далеко не у каждого. Богатого инструмента тоже не было. Фольгированный текстолит и хлорное железо были легендарным чудом. В общем было трудно.
После покупки компьютера вся увлеченность переключилось на него. А скил паяльщика мелких усилителей-приемничков положен на полку. Так что я «чайник». Поэтому ко многому из того, о чем я напишу ниже, прошу относится снисходительно. И эта статья, по большому счету для таких же «чайников» как и я.

2. Выбор схемы устройства и его компьютерное моделирование

Схему подобного девайса найти в сети раз плюнуть. Таких схем реально много. Выбор пал на такое решение
Сердцем всего устройства является микросхема типа MAX232 — преобразователь уровней, действующий по принципу «зарядового насоса». Повышение напряжения с 5 в осуществляется за счет поочередной зарядки внешних конденсаторов C4 и C5. В моменты выдачи сигнала на RS232 эти конденсаторы соединены последовательно, и напряжение накопленное в них складывается. При обратной передаче микросхема работает как делитель. В обоих направлениях передачи сигнала происходит его инвертирование.
Диод VD1 играет роль «защиты от дурака» — запирает цепь питание при подаче напряжения неверной полярности.
Прежде чем приступать к изготовлению устройства я решил посмотреть, как всё это будет работать, поэтому начал с моделирования будущего устройства в среде Proteus. Для испытания схемы был собран виртуальный стенд
Первое что хотелось сделать — смоделировать всё, включая цепи питания, так как меня интересовало влияние диода на работу схемы. По умолчанию в Proteus пины питания на микросхемах скрыты и подтянуты к плюсу нужного уровня и земле. Чтобы их разблокировать, нужно, во-первых, отобразить скрытые пины. Для этого идем в меню Template -> Set Design Colors и ставим галку Show hidded pins
Далее щелкаем правой кнопкой по микросхеме и выбираем пункт (самый последний) Decompose. Микросхема разберется на отдельные части. Двойной клик по нужному пину отобразит окно
В котором ставим галки Draw body и Draw Name. После этого выделяем всю микросхему, включая текст, которым подписаны выводы и правой кнопкой меню выбираем Make Device. Нам будет предложено выбрать имя для нового устройства и сохранить его. Всё, после этого цепи питания будут включены в процесс симуляции явно.
Далее, передавать по UART будем нечто осмысленное, например букву «A» кодируемую в ASCII кодом 65 в десятиричной системе счисления или последовательностью 01000001b в двоичной. Кроме того, чтобы иницировать передачу необходимо послать стартовый бит с уровнем «0», а для завершения передачи послать один или два стоп-бита уровнем «1». Таким образом, временная диаграмма кадра, передаваемого по UART будет выглядеть так
Для формирования подобного сигнала используем источник именуемый Digital Pattern Generator (DPATTERN) с настройками вида
Ширина импульса в 104 микросекунды соответствует скорости 9600 бод. Форма сигнала задается строковым шаблоном где «L» означает низкий уровень, а «F» — высокий уровень. Соответственно наша строка будет выглядеть как «FLFLLLLLFLF». Контроль принимаемых в RS232 данных будем производить виртуальным терминалом, настроив его так
Не будем использовать бит четности, и будем использовать один стоп-бит. Кроме того, скажем что сигнал, подаваемый на терминал инвертирован, что соответствует протоколу RS232. Запустив моделирование схемы получаем осциллограмму сигналов и вывод в виртуальный терминал
По каналу A идет выходной сигнал, подаваемый в COM-порт. На канале B — входной TTL-сигнал. В терминал выводится заветная буква «A». Таким образом мы убеждаемся в том, что предлагаемая схема вполне работоспособна. В теории.

3. Подбор и покупка компонентов

Из ближайших к месту моего обитания магазинов, где можно разжиться радиодеталями есть два заслуживающих внимания: магазин «Радиодетали» на Буденовском проспекте (это город Ростов-на-Дону) и магазин «1000 радиодеталей» на проспекте Нагибина, напротив ТЦ «Рио». Последний выгодно отличается тем, что у него есть сайт, правда довольно древний, и видимо лениво обновляемый (и сделанный на Joomla…). Поползав по прайсу я подобрал список того, что мне нужно прикупить.
Сразу скажу, я тщательно избегал SMD-компонентов в виду своей неопытности. Поэтому я выбрал MAX232CPE в исполнении для монтажа в отверстия. Такие же взял и электролиты и диод. Однако по место оказалось, что в наличие только микросхема MAX232CWE — то же самое, только… SMD! Подумав с секунду я согласился с предложением продавца — надо же когда-то начинать… Конденсаторов на 15 В не нашлось, зато нашлись на 100 В той же емкости и тех же габаритов. Ну ладно, тоже ничего. Вместо разъема DB-9 типа «папа» мне предложили «маму». Таким образом получился следующий список

Позиция Количество, шт Стоимость, руб
MAX232CWE 1 70
Конденсатор электролитический, 1 мкФ х 100 В 4 15
Диод 1N4148 1 5
Розетка DRB-09FA 1 20
Розетка DB-9F 1 20
Вилка DB-9M 1 20
Корпус для разъема DB-9 2 20
Штыри PLS-40 1 15
Гнезда PLS-40 1 15
Текстолит односторонний 200 х 200 мм 1 200
Цапон лак зеленый, 30 мл 1 50
Хлорное железо 6-ти водное, 250 г 1 160
Итого: 655

Хлорное железо, цапон лак и текстолит, разумеется не были использованы полностью. Кроме того, в этот список я не включил приобретенный инструмент: простенькую паяльную станцию (ибо до этого располагал только 40 ваттным паяльником с медным жалом), бокорезы и маленькие плоскогубцы, ножницы по металлу для резки текстолита, жидкий канифольно-спиртовый флюс ЛТИ-120 ну и так далее. В общем эта эпопея стоила мне порядка 3000 рублей.
В общем компоненты были куплены и принесены домой. 40-пиновые PLS-колодки были отпилены под нужное число контактов. Один из контактов вынут, с целью обеспечения однозначности соединения. Отверстие в гнездовой колодке, соответствующее вынутому пину заделано полиэтиленом.

4. Сборка устройства на макетной плате и проверка работы

В принципе, для такого простого девайса это и не обязательно. Но я же «чайник», поэтому прежде чем делать плату, решил все-таки проверить схему в реальной работе.
Сложнее всего пришлось с микросхемой. Чтобы впаять её на макетную плату пришлось извратится с подпайкой двенадцати ног к медным проводникам. Вышел паук-монстр о двенадцати ногах
В этот момент я понял две вещи: хорошо, что я все-таки купил паяльную станцию. А плохо то, что мне придется изрядно повозится с этой мелкотой. В общем компоненты были запаяны на «макетку», схема собрана с «апелисновой» платой. Питание +5 В взято с «апельсина» — 2-й контакт на двухрядной 40-пиновой штыревой колодке
Для коннекта с устройством использовался терминал putty, который есть и под Linux, и в отличие от minicom имеет цветной вывод и не требует дополнительной настройки на ввод символов в терминал с клавиатуры.
В общем, плата заработала — по экрану терминала побежали строчки лога загрузки: сначала от u-boot а потом и от ядра linux
Надо ли говорить как я обрадовался: во-первых схема работает правильно, а во-вторых — линукс на «апельсине» установлен верно, нормально работает в многопользовательском режиме
Неработающий HDMI-разъем и отсутствие Ethernet-интерфейса, таким образом связано с настройкой самого дистрибутива. Эти проблемы, разумеется будут решены и речь тут не о них. Поэтому перейдем к следующему пункту программы

5. Разводка печатной платы

Делал её в Altium Disigner. Разводку платы лучше делать после того, как куплены компоненты. Возможно, как и в моем случае, потребуется установка дополнительных библиотек компонентов для Altium. Размеры компонентов и топология посадочного места для каждого должны соответствовать фактически имеющимся деталям. Тут о меня не обошлось без досадной оплошности, но об этом ниже.
Скажу сразу — не пользуйтесь автоматической разводкой. Возможно это и настраивается, но авторазводка норовила протащить дорожку между ног у конденсаторов, что при расстоянии в 2 мм между ними делает дорожку шириной около четверти миллиметра, что для меня как для «чайника» было слишком круто. Да и интуиция подсказывала, что таких вещей желательно избегать. Поэтому я использовал ручную разводку (опираясь на результаты автоматической), задав в правилах разводки ширину дорог 0,5 мм (Design -> Rules -> Routing -> Width)
Кроме того, по умолчанию Altium полагает, что плата двухслойная. Чтобы заставить его разводить одностороннюю плату в правилах разводки следует указать разводку в одном слое, скажем в Top Layer
Схема была набрана в редакторе схем
При этом надо учитывать тот факт, что свободные неподпаянные входы микросхемы (ноги 8 и 10) следует подтянуть к земле, иначе Altium не скомпилирует схему для передачи её в редактор плат.
В итоге, путем самостоятельных ковыряний в программе и уроков Алексея Сабунина цель была достигнута и плата разведена
Все компоненты с монтажом в отверстия расположились с чистой стороны текстолита, а микросхема, в силу SMD-исполнения — со стороны дорожек. Для вывода разводки схемы на печать необходимо создать в проекте устройства так называемый Output Job File
который настраивается следующим образом. В списке опций настройки выбираем Documentation Output и щелкаем на Add New Docimentation Outpu, выбирая в появившемся меню PCB Prints и проект платы, касающийся нашего устройства.
Переименовываем появившийся пункт документации, назовем его скажем LUT, по транслитерации технологии (ЛУТ), которую собираемся использовать для перевода рисунка платы на медь. Правой кнопкой мыши щелкаем по LUT и в контекстном меню выбираем Configure. В настройках слоев выводимых на печать оставляем только два пункта: Top Layer и Multi-layer и расставляем галки как показано на скрине
Галка Mirror нужна в частности для зеркального отображения рисунка на печати. Это важно, иначе при переводе рисунка на медь получится зеркальное отражение наших дорожек, а нам это не надо. Кроме того, следует заглянуть в Page Setup
чтобы выбрать формат бумаги и обратить внимание на масштабный коэффициент (Scale). При первой печати он оказался равен 1,36 почему-то, а должен быть равен единице
Теперь жмем Print. У меня нет своего принтера, поэтому я распечатал в PDF используя Foxit Reader, а затем отнес полученный файл на флешке в ближайшую ко мне «шарашку», в которой распечатал рисунок на глянцевой фотобумаге. В итоге получилось вот это
Размер платы вышел 62 х 39 мм, по этому размеру ножницами по металлу вырезан кусочек текстолита. Раньше я пилил текстолит ножовкой и часто (а точнее всегда) это получалось ужасно. Ножницами же выходит ровненько, без мусора и повреждения токопроводящего слоя.

6. Изготовление печатной платы

Был выбран метод ЛУТ (лазерно-утюжная технология) из-за своей простоты и доступности. Руководством к действию послужила эта статья на Хабре. Старался не нарушать технологию: прошелся по меди нулевкой, обезжирил, правда не ацетоном, ибо не нашел где купить, а универсальным обезжиривателем на основе уайт-спирита, купленным в Lerua Merlin. Тщательно и с усилием прогладил бутерброд из текстолита и рисунка уюгом на максимальной температуре. Или из-за того, что где-то ошибся, или потому что не дал остыть заготовке, или просто в «шарашке» экономят тонер на принтере, в общем вышло не очень
Однако, я благоразумно запасся перманентным маркером Edding 404, которым, не без помощи своей любимой жены (с прокачанным скилом подведения ресниц и рисования узоров на ногтях) обвел все дорожки
Далее был разведен раствор 6-ти водного хлорного железа из расчета около 180 грамм на 300 мл воды (воду набрал из-под крана, горячую) и плата была брошена на съедение в кювету для травления. Чтобы протравить плату и не отравить при этом жену, операцию производил на закате на балконе
«Хлоняк» не подвел, ходят ходят слухи что часто продают некачественный. Травление заняло 13 минут, последние островки меди уходили прямо на глазах. Главное не забывать периодически пинать плату пинцетом по кювете и следить за процессом. Как только лишняя медь исчезнет, достаем плату срочно и промываем обильным потоком воды.
После промывки, протирки и просушки настает момент истины. Надо снять защитное покрытие. Я пытался делать это уайт-спиритом,

но дело шло туго. Потом жена предложила свою жидкость для снятия лака для ногтей — этот чудо-эликсир смыл покрытие мгновенно (я до сих пор в ужасе от того, какими реактивами пользуются наши женщины. Красота — страшная сила!)
Не подвел и маркер — все дорожки уцелели
После очистки защитного покрытия можно приступать к сверлению отверстий. И вот тут я совершил досадную ошибку — у меня не оказалось сверла на 0,5 мм, и вместо того чтобы отложить дело до завтра, купив нужное сверло, я поторопился и взял миллиметровое, посчитав что оно подойдет. В итоге я повредил многие контактные площадки, к счастью не сильно и не бесповоротно. Но все же никогда не спешите. Как говорил мой знакомый Марк из лаборатории кафедры мехатроники Мюнхенского университета, где я проходил преддипломную практику «Дмитрий, для каждой работы бери подходящий инструмент». И он был тысячу раз прав.

7. Лужение платы и пайка компонентов

Места пайки компонентов должны быть покрыты тонким блестящим слоем припоя. Это основное условие успешности работы. Я не стал лудить дорожки целиком. Во-первых, побоялся покоробить их, а во-вторых всё равно собирался покрывать плату цапон лаком. Так что я облудил лишь места пайки. Для этого кисточкой наносим на них канифольно-спиртовый флюс ЛТИ-120 и паяльником, разогретым до 250-300 градусов, с жала которого свисает крохотная капелька припоя, проводим по нужным точкам платы. За счет увеличения флюсом поверхностного натяжения припой растекается по точно контактным площадкам.
После этого была разобрана «макетка», проводки удалены с микросхемы и в первую очередь была припаяна она. Аккуратно руками или пинцетом помещаем микросхему на её место в соответствии с цоколевкой, так чтобы каждая ножка заняла свою площадку. Затем ряды ножек смазываем флюсом. Короткими и точными движениями касаемся всех ножек по очереди, не забывая набирать припой на жало паяльника (но не слишком много, достаточно маленькой капли). Если всё сделано верно, то ножки паяются к площадка очень быстро и точно, без «соплей» и перемыкания соседей. На запайку микросхемы у меня ушло меньше минуты, а я делаю это впервые. Вдохновило меня на этот подвиг такое видео, за что я очень благодарен его автору. Всё оказалось действительно не так страшно.
Похожим образом я разобрался и с остальными деталями. Главное тут аккуратно обрезать выводы деталей на нужную длину — я оставлял торчать над дорожкой не более миллиметра вывода, и правильно и аккуратно согнуть их, если требуется. Важно, крайне важно никуда не торопиться и делать всё вдумчиво. В итоге получилось то что получилось
От «соплей» уйти не удалось, но для первого раза вышло довольно сносно, хоть меня, вероятно и раскритикуют.

8. Проверка цепей и ещё одна досадная ошибка

После пайки смываем весь флюс спиртом, берем в руки мультиметр и звоним все цепи, с целью проверки их проводимости и соответствия принципиальной схеме. И вот тут бяка подкралась незаметно. Разъем COM-порта оказался распаяна зеркально! «Земля» сидела на первой ноге вместо пятой, Rx — на четвертой вместо второй. И я до сих пор не пойму как, ведь при разводке в Altium всё было верно. Это осталось для меня загадкой. Никакой загадки — просто имея по факту разъем «маму», при формировании схемы в Altium всё равно использовал «папу». Отсюда и зеркальная распайка, получившаяся в итоге. К счастью я решил эту проблему соответствующей распайкой кабеля, предназначенного для подключения девайса в COM-порту компьютера. Но из-за этой ошибки COM на плате оказался таким вот «проприетарным».
В остальном монтаж оказался верным и я, распаяв соединительные кабели и прибрав рабочее место, подключил новенькую плату к «апельсину» и компьютеру
По окну терминала снова побежали строки лога загрузки. Я был счастлив!

9. Наводим «красоту»

С целью защиты контактов от окисления и придания девайсу вида «промышленного» плата была окрашена зеленым цапон лаком. Все метки, нанесенные перед монтажем перманентным маркером были этим самым лаком смыты. Ну да ладно… Вот фото готового изделия вместе с комплектом кабелей
Теперь можно приступить к дальнейшей доводке ПО для «апельсина». Теперь я не буду слеп и нем, а смогу налаживать систему через последовательный терминал.

Это было интересно. Интересно для меня, потому что впервые. Первое устройство спроектированное на компьютере и собранное на печатной плате своими руками. И если кто-то иронично усмехнется, то пусть вспомнит, что он тоже когда-то делал это впервые…
Спасибо всем за внимание, уделенное моей писанине!

Простой переходник USB — UART TTL

Статья устарела — сейчас уже не найти data-кабели с USB на старенькие телефоны; поэтому готовый переходник можно за недорого заказать на алиэкспрессе (примечание домовенка сайта).

Честно говоря, мы все обленились… наши прадеды могли спаять схему из сотни элементов за один вечер и не обламывались. Нам же подавай все готовенькое. Примером является простой переходник с COM порта на TTL уровень. Кажется схема в 5 деталей, а как лениво паять. Тем более что последовательные порты теперь в большом дефиците. А на ноутбуках так их вообще нет. Можно конечно воспользоваться интерфейсом USB, но, кто-нибудь пробовал его программировать? Жесть! Да и не всякий контроллер его держит. А вот UART есть почти во всех AVR, причем аппаратно реализованный.

Вывод напрашивается сам. Нужен дешевый, простой и надежный переходник с USB на UART (COM) с уровнями TTL-логики (0-5вольт). И желательно дополнительными цепями питания, чтобы наше устройство можно было запитать прямо от переходника, не подключая дополнительное питание. И такой переходник есть. Причем готов поспорить, что не дальше чем в километре от вас. В любом салоне Евросети можно всего за 300рублей (или 160 как повезет) купить такое чудо. Простой Data-кабель. Переходник с USB на телефон. В большинстве моделей трубок данные передаются именно через TTL-UART. Тоесть последовательный интерфейс с уровнями напряжений 0-5вольт. (я использовал кабели для старых ericsson R-320)

Вот так выглядит это чудо на прилавке. Внутри — проводок и диск с драйвером. Желательно брать именно такого вида, ибо похожие по форме, но без этикетки евросети — полный отстой: работают через одного и не развязаны с компом по питанию. Обратите внимание, что проводок должен быть с небольшой пластиковой коробочкой. В ней вся соль. Это и есть наш переходник.

Итак, раскурочившем наше приобретение. Внутри плата с чипом PL-2303HX компании Prolific и две группы контактных площадок. Одна — это вход USB, вторая это как раз то что нас интересует. UART с TTL уровнями сигнала. Осталось определить какой из контактов кто. В моем варианте это было так:

V+

+5V

Итак, нам необходимы только GND, RxD, TxD, для особых эстетов можно взять +5V для питания (ток маленький 100мА в прыжке с кепкой) и сигнал DTR если нужно отследить подключено ли устройство к компьютеру (или, к примеру, включить светодиод прямо в коробочке чтобы красиво было, и видно когда устройство в работе) Подключаем землю к земле, приемник к передатчику, передатчик, соответственно к приемнику. Вот и все. Железо готово. Кстати, на диске есть несколько любопытных PDF файлов c описанием схемы и самого чипа. И если ваша плата отличается от моей, то просто проследите к какому контакту какая нога этого чипа подключена.

Теперь инсталлируем софт с диска… каталог F:\2303dirver\pl2303new\newpl2303_setup\DRIVER\SETUP… запускаем «PL-2303 Driver Installer.exe». Если нет диска, то драйверы и дополнительную информацию можно скачать у компании производителя PL-2303 USB to Serial Bridge Controller. Что очень приятно, для данного устройства есть драйвера под все мыслимые систамы и операционки (Linux, PDA, Mac OS, итд.) что существенно расширяет круг возможных применений.

В результате при подключении устройства мы получаем дополнительный COM порт, который ОБЯЗАТЕЛЬНО надо настроить. Во первых, во вкладке параметры порта установить режим управления потоком. Правильный — это «нет». Ни в коем случае нельзя устанавливать «аппаратный» (в этом режиме можно только отлаживать конструкции: данные передаются побайтно по фронту на CTS). Далее необходимо установить номер используемого порта. Для этого надо войти в окно дополнительные параметры и установить нужный номер из незанятых. Все. Теперь с Вашим устройством может работать любая терминальная программа. Такая например как HiperTerminal.

Dingoo A320.Русский Ресурс

Наверное, кто-то уже прочитал на нашем форуме сообщения exmortis об изготовлении кабеля USB-TTL из подручных средств.

Мы решили оформить это, как отдельную статью-руководство. Спасибо exmortis за предоставленный материал.

Аннотация: Данная статья является дополнением к статье Antony о подключении к приставке Ritmix RZX-50 по последовательному интерфейсу, которую рекомендуется предварительно прочесть.

Как известно из вышеупомянутой статьи, приставку Ritmix RZX-50 можно подключить к компьютеру через uart ttl, но так как сигналы по вольтажу не совпадают со стандартом rs-232, то нужен переходник. В качестве готового решения можно воспользоватья специальным конвертером, например, таким или даже таким.

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

Однако, можно приспособить обычный кабель-переходник usb-rs232 (com), который продаётся в любом компьютерном магазине. Например, такой:

Кабель Gembird usb-rs232 uas111. Он удобен тем, контроллер спрятан в аккуратную коробочку. Правда, она запаяна, поэтому для вскрытия придётся либо её распиливать, либо срезать пластик паяльником.

В принципе, подойдёт любой другой подобный кабель, однако, нужно обращать внимание на удобство доступа к плате с контроллером. На некоторых кабелях она спрятана в разъёме rs-232, вскрывать который затруднительно, а на других может оказаться микросхема-капля, подпаятся к которой непросто. В конце-концов такой кабель может быть основан на каком-нибудь экзотическом чипе.

Микросхема pl2303. Интересны прежде всего ноги 1 (TXD) и 5 (RXD), нумерация ног идёт против часовой стрелки от угла, отмеченного на самом чипе точкой.

Обратная сторона с чипом max213. Cигнал от 1-ой ноги pl2303 приходит на 6-ю ногу max’а, а сигнал от 5-ой — на 19-ю ногу «максимки».
В принципе, эта микросхема для uart-ttl не нужна, она даже может помешать. Поэтому её нужно аккуратно выпаять, и тем легче будет подпаиваться к контактным площадкам.

Микросхема max213 выпаяна. Красный провод припаян к сигналу TXD, жёлтый — к RXD, чёрный провод — земля. Впоследствии можно подключать по схеме Antony, присодиняя провода «перкрёстно», т.е. RXD контроллера к TXD приставки, а TXD к RXD соответственно.

Выводы последовательного интерфейса у Ritmix RZX-50.

Вторая немаловажная часть — непосредственное подсоединение к компьютеру и настройка соединения.
Ниже будет рассмотрена специфическая ситуация, когда на компьютере (ноутбуке) установлена W7 x64, а в виртуальной машине VirtualBox — Xubuntu 11.10 x32. Всё нижеописанное также справедливо для любых дистрибутивов linux.

Перепаянный как указано выше кабель подсоединяется к компьютеру (при этом rzx-50 НЕ подключена). Естественно, что драйвер системой не установится, но это и не требуется. Загружаем xubuntu в виртуальной машине, пробрасываем вовнутрь подсоединённое устройство (должно обозначаться как Prolific Technology Inc. USB-Serial Controller). После чего загружаем консоль и вводим dmesg. Одной из последних строчек должно оказаться определение подключённого устройства (pl2303) и его отражение на файловую систему — в данном случае это /dev/ttyUSB0. Запоминаем это имя.

Теперь надо установить minicom. Команда стандартная: «sudo apt-get install minicom». Запускаем настройку: «sudo minicom -s» и попадаем в меню конфигурации. В Serial port setup устанавливаем /dev/ttyUSB0 в качестве Serial Device, скорость потока устанавливается 56700 8N1, hardware и Software Flow Control выключается (No). Далее в Modem and dialing нужно стереть строки Init String и Reset String.

После чего настройку можно сохранить либо как дефолтную, либо под любым именем. В последнем случае minicom следует запускать с именем настройки в командной строке.

Выходим из настройки и запускаем minicom в обычном режиме (sudo minicom). Теперь можно протестировать кабель, замкнув провода от сигналов TXD и RXD. Если при нажатии любых клавиш в minicom на экране появляются соответствующие символы, значит кабель работает.

Теперь можно подсоединять приставку к проводам способом, указанным выше, и включить её, наслаждаясь выводом в окно эмулятора терминала. Когда выпадёт приглашение ввести пароль, следует ввести «root». Если при вводе и выводе символов периодически появляются мусорные или посторонние, значит что-то не так с землёй (скорей всего оборвана). В идеаля земля также никак не должна замыкаться с сигналами TXD и RXD.

От редакции: Я лично сразу вспомнил конец 90ых, когда началась эпоха Palm. В то время я был счастливым обладателем Handspring Visor Deluxe, мощнейшим, по тем временам КПК (слово «планшет» еще не придумали). Так вот, в силу дефицита USB портов (да! да!) приходилось самому изготавливать кабель RS232-TTL. Более того, поскольку сигналы у Visor были трехвольтовые, а микросхема Maxim, обеспечивающая нужный уровень сигнала была дефицитной — приходилось на ножку «выхода» вешать делитель напряжения с 5 до 3.3в, чтобы не спалить устройство.

Сейчас все гораздо проще, и можно сосредоточиться на более содержательной деятельности, например внести посильный вклад в создание альтернативной прошивки для RZX-50 🙂

CH340G — преобразователь USB — UART

CH340G

Микросхема CH340G — преобразователь интерфейсов USB — UART, выпускаемая китайской компанией WCH появилась на рынке сравнительно недавно, и очень быстро обрела широкую популярность. Из основных причин этого можно выделить:

  • низкую стоимость
  • хорошую поддержку основными операционными системами — Linux, Windows (XP, 7, 8, 10) и Mac OS X
  • работа с уровнями 3.3В и 5.0В
  • микросхема требует минимум дополнительных компонентов и имеет удобный для пайки корпус SOIC-16

В частности, эти преобразователи широко используются в китайских клонах ардуино.

CH340G создаёт виртуальный последовательный порт, эмулирующий все функции реального COM-порта (с полным контролем сигналов управления передачей данных — RTS, DTR, DCD, RI, DSR и CTS).

Микросхема поддерживает спецификацию USB 2.0. Скорость обмена по UART может быть в диапазоне от 50 бит/сек, до 2 Мбит/сек. Аппаратная часть поддерживает последовательный дуплексный интерфейс с внутренним буфером FIFO.

Схема включения

Микросхема требует минимум внешних компонентов — 4 конденсатора и кварцевый резонатор. Наличие внутренних подтягивающих резисторы для шины USB и цепей подавления отраженного сигнала позволяет подключать выводы UD+ и UD- непосредственно к соответствующим сигналам разъёма USB.

Схема включения очень проста (библиотеку для Eagle можно скачать в конце статьи):

Вывод V3 является выходом внутреннего источника опорного напряжения для USB интерфейса. При напряжении питания 3.3В он должен быть соединён с Vcc. При напряжении питания 5В, между ним и землёй подключается блокировочный конденсатор ёмкостью 4.7 – 20 нФ.

Вывод R232 является входом включения инверсии RXD. Высокий уровень на нём включает инверсию. Этот вход можно оставить неподключенным, т.к. он имеет внутренний резистор, подтягивающий его к земле.

Кстати, при использовании внешних преобразователей уровней можно получить поддержку интерфейсов RS23, RS422, RS485.

При работе микросхема может потреблять ток от 12мА до 30мА. В режиме сна потребление сокращается до 150-200мА при питании от 5В (и до 50мА — 80мА при питании от 3.3В).

Режимы работы

CH340G поддерживает симплексный, полудуплексный и полнодуплексный асинхронные режимы обмена.

Доступны все стандартные режимы передачи данных:

  • 1 стартовый бит и 5-8 битов данных
  • 1 или 2 стоп-битов
  • бит паритета с проверкой на чётность/нечётность

В таблице ниже приведены поддерживаемые скорости обмена. Зелёным цветом отмечены скорости, которые могут быть достигнуты на AVR-микроконтроллерах, работающих на частотах 8 МГц, 16 МГц и 20 МГц (отклонение частоты передачи при этом находится в допустимых границах).

При этом ошибка временных параметров передатчика не превышает 0.3%, а допустимое отклонение временных характеристик для приёмника может составлять не менее 2%.

Библиотека для Eagle

UART-USB на CH340

Для управления и настройкой некоторых конструкций на микроконтроллерах PIC и ATMEGA необходимо удобное их подключение к компьютеру или ноутбуку. В серии микроконтроллеров PIC16 (на которых я обычно и делаю свои самоделки) нет аппаратной реализации USB, но есть обычный последовательный порт UART, который является урезанной версией COM-порта старых компьютеров. Работа с ним не вызывает особых трудностей, а также необходимо не много ресурсов самого микроконтроллера, т.к. в отличии от USB в нем более простой протокол, который тем не менее позволяет так же передавать данные. В некоторых компьютерах все еще есть COM-порт, правда иногда он не выведен наружу — в таком случае для подключения необходимо только подключение преобразователя уровней (например, MAX232) , но на более новых материнских платах, а также ноутбуках его нет вовсе.
В таких случаях можно использовать UART-USB переходник на распространенной микросхеме CH340. На сайте Aliexpress ее обычно продают уже в виде готового модуля на плате, но иногда для постоянного использования удобнее заказывать ее отдельно.
В таком случае микросхему можно припаять прямо на свою плату, а там уже установить гнездо micro-USB для удобного подключения кабеля и более законченного вида конструкции.
Подключение микросхемы достаточно простое даже для начинающего радиолюбителя.
Для питания необходимо 3.3V (VCC), кварц на 12 МГц (Выводы XI и XO), остальные выводы используются для работы с COM-портом (для работы достаточно RX и TX, остальные для передачи сигналов готовности устройства и на практике используются редко).


Стоимость: ~51 Подробнее на Aliexpress
Доставка новых самоделок на почту

Получайте на почту подборку новых самоделок. Никакого спама, только полезные идеи!

*Заполняя форму вы соглашаетесь на обработку персональных данных

Программатор для нового семейства tinyAVR на базе дешевого китайского конвертера CH340

Unified Program and Debug Interface (UPDI) — это однопроводной интерфейс для программирования/отладки новых 8-битных микроконтроллеров Atmel, пришедший на смену двухпроводному интерфейсу PDI, использовавшемуся для программирования микроконтроллеров AVR XMEGA.
Итак, полку атмеловских протоколов прибыло — ISP, JTAG, debugWIRE, TPI, aWire, PDI, теперь вот UPDI. При этом ситуация с экосистемой у AVR по-прежнему весьма нерадужная, так что мы собирались совсем уже отказываться от их использования, но последняя тенденция нас слегка порадовала, поэтому и была написана данная статья.
Использовать протокол UPDI могут только счастливые обладатели программатора Atmel ICE, который не очень удобен в эксплуатации из-за довольно странного выбора разъема, да и стоит не так уж дешево, чтобы позволить себе закупать его в промышленных масштабах. К тому же он требует установки Atmel Studio, которая периодически отказывается с ним работать, так как согласно политике нашей фирмы, большинство компьютеров не имеют доступа к Интернету, а студия периодически туда лезет то за драйверами, то за какими-то библиотеками, в итоге были моменты, когда программатор был виден в системе, то есть, драйвера установились верно, но он в упор не замечался самой студией до тех пор, пока она не получила доступ к сети и не была обновлена принудительным образом.
Поэтому сразу же после того, как мы начали использовать в своих разработках новый и довольно удобный микроконтроллер ATTiny1616 (о его достоинствах позднее), возникла потребность в инструменте, который мы могли бы применять для записи в контроллер первичного загрузчика в производстве. Разумеется, без смс и регистрации доступа к Интернету.
После небольших поисков я обнаружил на Гитхабе проект pyupdi (https://github.com/mraardvark/pyupdi) — реализацию протокола UPDI на Питоне, причем основана эта реализация на обычном протоколе UART, разве что без преобразователей уровня, что, на самом деле, еще удобнее, потому что позволяет использовать стандартные микросхемы преобразователей от FTDI или их китайские аналоги CH340/341.
Проект был скачан и опробован, дело пошло довольно бодро. Но через пару дней стало понятно, что он все-таки не совсем нам подходит. Причины:

  • необходима инсталляция Питона и целой группы пакетов (напоминаю, речь идет о компьютерах без доступа к Инернету), пришлось скачать и вручную поставить почти десяток различных пакетов, которые зависимостями тянули друг друга. Да, в принципе, можно сделать из скрипта на Питоне исполняемый файл на другом компьютере, это как-то решало проблему, но на этом список проблем не заканчивался
  • в скрипте почти отсутствует проверка на ошибки, любая ошибка заканчивается прерыванием с указанием кучи ссылающихся друг на друга файлов, что для рядового персонала выглядит не очень понятно
  • невозможно прочитать содержимое памяти контроллера, что делает невозможным конечное тестирование процесса записи
  • нет возможности прочитать фьюзы
  • скорость работы скрипта оставляет желать лучшего, 16 кб пишутся почти минуту, связано это с отсутствием какой бы то ни было оптимизации в процессе передачи, все построено на жестких таймингах
  • отсутствие индикации процесса записи
  • проект не поддерживает целый ряд процессоров, которые мог бы поддерживать
  • проект находится в полумертвом состоянии и не реагирует на запросы

Проблемы какое-то время решались в рамках Питона, но после любого фикса приходилось пересобирать проект, тестировать, так что появилось желание переписать скрипт на чем-то более привычном и быстром, то есть, на Си. Мы же эмбеддеры, в конце концов!
Теперь кратко о достоинствах нового семейства tinyAVR 1-Series:

  • реальная унификация периферии и адресного пространства в рамках от 2 кб до 32 кб
  • удобная конфигурация загрузчика (в начале памяти!)
  • существенное упрощение алгоритма ISP (In-System-Programming)
  • переход к фон-неймановской архитектуре
  • до 32 кб флэш-памяти в мелком корпусе (3х3мм) с 24 выводами, из которых до 22(!) можно использовать как IO
  • наличие внутреннего осциллятора на 16/20 МГц
  • меньшая зависимость работоспособности от конфигурации фьюзов (вечная головная боль AVR)
  • отличная для мелкого контроллера аналоговая часть (ADC/DAC/компараторы с возможностью как внутренней, так и внешней коммутации входов/выходов)
  • однопроводные программирование и отладка
  • крайне низкая цена в рознице (от 0.6€ за 16 кб)

В качестве железной части программатора мы взяли уже имеющийся в наличии преобразователь USB-UART TTL на базе китайского чипа CH340, вот такой:
Для программирования достаточно соединить два его вывода RX и TX, так как они уже оснащены выходным резистором на 1.5k, если резистор в Вашей модели преобразователя отсутствует, то его нужно добавить. Объединенный вывод соединяется с ножкой UPDI на программируемом чипе, земля преобразователя должна быть также соединена с землей контроллера. При наличии внешнего питания, нужно обратить внимание лишь на то, соответствует ли оно питанию, которое использует преобразователь (3.3В или 5В). Если есть необходимость, то можно запитать схему с контроллером и от самого преобразователя, что может быть очень удобным для первичного программирования.
Внимание! Резистор является опциональным, его нужно допаивать только в случае, если Ваш преобразователь не имеет никаких защитных резисторов на выходе.
Единственная проблема, которая связана с чипом CH340 — он не заработал в моей Линукс-версии программы, так как в протоколе программирования используется бит паритета, а драйвер CH340 в моей версии ядра работает с этим битом неправильно. Возможно, проблема будет устранена в ближайшее время, пока что заниматься этим у меня не хватило терпения.
В результате работы и экспериментов в IDE Code::Blocks была написана и отлажена программа updiprog, исходные коды которой выложены на Гитхабе.
Что было реализовано в данной версии программы:

  • добавлена возможность считывания содержимого флэш-памяти контроллера в hex-файл
  • добавлена возможность считывания состояния всех фьюзов контроллера
  • по возможности добавлены обработки ошибок с соответствующими сообщениями
  • добавлена индикация процесса записи/считывания
  • значительно увеличена скорость работы (около 6 секунд для считывания 16 кб)
  • добавлена поддержка всех микроконтроллеров семейства 1-Series

Исходный размер программы составляет около 25 кб в сравнении с 5 с копейками Мб для скомпилированного исходного скрипта на Питоне.
Надеюсь, что проделанная работа будет кому-то полезна. Буду рад отзывам и предложениям.

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх