В продолжение моей предыдущей статьи по сборке USB-UART адаптера на микроконтроллере STM32, решил собрать ещё один вариант адаптера — на специализированной микросхеме FT2232D. Микросхема является USB-UART преобразователем с двумя интерфейсами UART на борту. Из преимуществ, по сравнению с адаптером из предыдущей статьи, следует отметить следующие:
- не требует прошивки,
- может работать на более высоких скоростях UART (до 3 МБод/с),
- имеет улучшенную светодиодную индикацию (длительность свечения светодиода не привязана к длительности передачи байта).
Из недостатков — содержит только два UART интерфейса, вместо трёх. Конечно, существуют подобные микросхемы и с большим количеством UART интерфейсов, например, FT4232 с четырьмя UART интерфейсами. Но использовать такое количество UART-ов одновременно требуется крайне редко, поэтому я ограничился микросхемой FT2232D с двумя UART-ами.
Так как про микросхему FT2232D в интернете существует большое количество статей, подробно останавливаться на описании её возможностей (а это далеко не только UART) я не буду. Вместо этого, предлагаю сразу перейти к делу.
Схема устройства.
Помимо классических LDO стабилизаторов и фильтрующих конденсаторов, схема содержит буферные микросхемы, необходимые для защиты выводов UART микросхемы FT2232D от воздействия статики, а также для согласования логичеких уровней UART по напряжению. Напряжение логических уровней UART выбирается при помощи джампера, доступны фиксированные напряжения: 1,8В; 3,3В; 5В. Также предусмотрена установка произвольного напряжения в диапазоне 1,65В — 5В, при этом джампер выбора напряжения необходимо снять, а напряжение с отлаживаемого устройства подать на UART адаптер для питания согласующих буферов.Также на схеме имеется микросхема памяти EEPROM 93C46, позволяющая изменять и сохранять конфигурацию для микросхемы FT2232D. Стабилитроны совместно с резисторами защищают микросхемы согласующих буферов от воздействия статики и превышения допустимого напряжения. На обоих UART интерфейсах задействованы только линии RX и TX, поэтому управление потоком программное.
Внешний вид печатной платы в процессе разработки.
Печатная плата после производства.
Промывка плат в ультразвуковой ванне.
Печатная плата после монтажа компонентов.
Установил плату в корпус.
Как видно, общая конструкция адаптера заимствована из моей предыдущей статьи. Применён корпус «BOX-G025», конструкция которого показалась мне очень удачной.
Светодиодная индикация реализована на светодиодах Kingbright серии L13. Всего адаптер имеет 6 светодиодов:
- один светодиод индицирует подачу питания;
- один светодиод индицирует завершение энумерации на USB шине и готовность устройства к работе;
- два светодиода индицируют работу линий RX/TX UART канала «A»;
- два светодиода индицируют работу линий RX/TX UART канала «B».
Теперь необходимо снабдить корпус стикерами. Распечатал их на обычной бумаге, покрыл слоем канцелярского скотча, аккуратно вырезал по контуру:
Наклеил слой двустороннего скотча, ещё раз вырезал по контуру, стикеры готовы.
Внешний вид готового устройства.
На фото справа виден джампер выбора напряжения логических уровней UART.
Устройство получилось простым и удобным в использовании. Для желающих собрать себе такое же утройство, в конце статьи я приложил все необходимые материалы, включая gerber-файлы для заказа плат, и BOM-файл для покупки компонентов.
Если одновременное использование двух (и более) адаптеров FT2232D на одном компьютере не планируется, то микросхему EEPROM 93C46 можно не устанавливать.
Если планируется одновременное подключение и использование двух (и более) адаптеров FT2232D на одном компьютере, то необходимо для каждой микросхемы сгенерировать серийный номер и записать его во внешнюю EEPROM. Сделать это можно двумя способами.
Способ 1.
Скачать и запустить утилиту «FT-Prog», нажать «Devices -> Scan and Parse», выбрать строку «USB String Descriptors», установить галочки «Serial Number Enabled» и «Auto Generate Serial», затем записать настройки, используя пункт «Devices -> Program». Серийный номер автоматически сгенерируется перед записью. Затем необходимо снова нажать «Devices -> Scan and Parse», и убедиться в том, что серийный номер теперь отображается.
Способ 2.
Прошивка EEPROM через внешний программатор. Для этого необходимо предварительно перевести микросхему FT2232D в состояние сброса, переключив DIP-переключатель SW1 в положение «ON», при этом все выводы FT2232 переходят в высокоимпедансное состояние, и она не будет мешать процессу прошивки EEPROM 93C46. Выставить на программаторе напряжение логических уровней 3,3В. Затем подключить программатор к разъёму XP2. При помощи программатора стереть микросхему EEPROM и записать в неё прошивку. Архив с прошивками EEPROM прикреплён в конце статьи. Затем отсоединить программатор и вернуть DIP-переключатель SW1 в положение «OFF».