Универсальный преобразователь UART-USB на основе FT232R

При изготовлении почти любого устройства с процессорным управлением встаёт необходимость обеспечить его связь с компьютером. Причём зачастую эта связь нужна только при отладке и в дальнейшей работе прибора совершенно не требуется. А порой и сам прибор в дальнейшем не требуется — так, один раз поиграл и засунул в дальний ящик. Лепить в каждом таком девайсе преобразователь интерфейса с обвязкой лень, да и жаба душит. А ведь ещё и разъём нужен… Что бы не возникало таких проблем нужно под рукой иметь внешний преобразователь интерфейса, легко подключаемый к тому девайсу, с которым сейчас работаешь.
Какие интерфейсы использовать особо выбора не стоит — самое простое и универсальное что можно придумать в настоящее время — это uart на стороне девайса и USB на стороне компа. С выбором преобразователя тоже думать особо нечего — достойных альтернатив FT232RL для решения данных задач на горизонте не видно (среди основных бонусов этой микрухи функциональность, качественные дрова, лёгкость монтажа и минимум необходимой обвязки). Делать простой дата-кабель скучно и не интересно, да и не всегда его хватает, кроме того FT-шка имеет много дополнительных фишек, терять которые не охото. В общем, решил я сделать что-то типа демо-платы для микросхемы FT232R. После вдумчивого курения даташита, нарисовалась примерно такая схема:
Схема преобразователя
Основным является трехвыводной разъём XP5, на который выведены линии RxD и TxD. Собственно, в 90% случаев достаточно его одного (именно по этой причине эти линии обособлены в отдельный разъём). На разъёме XP4 можно подоткнуться ко всем остальным линиям последовательного порта, а так же к выводам CBUS. Если CBUS настроены не по дефолту, то следует отключить от них светодиоды, сняв соответствующие перемычки на разъёме XP3 (да, изначально их надо поставить, что бы светодиоды мигали).
Помимо того, что все функциональные ноги микрухи выведены на разъёмы, плата позволяет поиздеваться над питанием себя и девайса. Делается это с помощью перемычек и проводов на разъёмах XP1 и XP2. Для тех, кто ещё не работал с FT232 напомню — на вывод VCCIO подаётся уровень напряжения, на котором должны работать ноги ввода вывода (в связи с этим, кстати, светодиоды питаются именно от VCCIO, а не от VCC). И ещё одно замечание по питанию: по умолчанию FT232 разрешается кушать не более 100мА, если нужно питать целевой девайс от USB и он прилично жрёт, то что бы получить свои положенные 500мА нужно сконфигурировать FT232 с помощью сервисной программы.
Вот краткая инструкция по настройке преобразователя с эквивалентными схемами (слева схема включения, справа схема как подключать провода и куда ставить перемычки):
  1. Раздельное питание — преобразователь питается от USB, девайс от своего источника. Тут три варианта в зависимости от питания целевого устройства:
    а) девайс работает на 5В
    Инструкция
    б) девайс работает на 3.3В
    Инструкция
    в) девайс работает на другом (1.8В — 5.25В) уровне питания
    Инструкция
  2. Общее питание от USB — преобразователь питается от шины, девайс от преобразователя. Тут у меня получилось четыре варианта разной степени бредовости:
    а) девайс работает на пяти вольтах
    Инструкция
    б) девайс работает на 3.3В (ВНИМАНИЕ!!! в этом случае девайс должен потреблять ток не более 50mA, а светодиоды лучше отключить, иначе можно спалить FT-ку)
    Инструкция
    в) девайс работает на 3.3В, но питается от 5В
    Инструкция
    г) девайс работает на вообще фиг знает чём (1.8В — 5.25В), но питается от 5В
    Инструкция
  3. Общее питание от девайса (может понадобиться при прототипировании, когда предполагается, что FT232R будет в составе конечного девайса). Тут можно выделить всего два варианта — питание равняется VCCIO и питание не равняется VCCIO (главное, что бы питание было не ниже 4В, так как внешний кварц для FT не заложен):
    а) напряжение питания и напряжение обмена равняются
    Инструкция
    б) напряжение питания и напряжение обмена различаются
    Инструкция
В итоге получился вот такой вот ёжик размерами 35x45мм.
Устройство
Печатная плата:
Печатная плата
Ёжику на спину ещё предлагалось повесть мезонинную плату, делающую его по совместительству программатором для AVR, но до изготовления дело пока не дошло, так как сейчас не сильно нужно, да и разъёмы для мезонинных плат я так и не добыл.
Модуль программатора
Принцип работы программатора объяснять не буду — о подобных схемах уже писали много, отмечу только основные схемотехнические особенности. Во-первых, обращу внимание на то, что у меня питание таргета по умолчанию отвязано от питания самого модуля, ибо нехорошо это, коротить питальник девайса и питальник программатора (ну это, конечно, когда девайс не от программатора запитывается, для этого случая предусмотрена перемычка XP8).
Печатная плата программатора
Десятиконтактный разъём программирования XP7 состоит из стандартного шестиконтактного ISP и двух контактов порта uart, что позволяет сократить количество проводов, подключенных к подопытному девайсу в процессе его разработки и отладки. Предполагается на плате устройства ставить такой же разъём и соединять их шлейфом, в котором RX и TX поменяны местами. Выкусанные две ноги позволяют программировать такую плату стандартным программатором с шестиконтактной головой.
Модель программатора
Пачка резисторов по 33Ом предназначена для того, что бы защититься от кратковременного КЗ на девайсе, а 10k резистор подтягивает к земле линию RX дабы избавиться от возможных помех. Если понадобится внешний тактовый сигнал, то можно настроить его вывод на любую из ног CBUS.
Ну вот, вроде бы всё. В приложенном архиве находится комплект файлов для этих двух плат в формате Altium Designer и печатные платы в формате P-CAD PCB.

Ссылки:
  1. Даташит на FT232
  2. Сервисная утилита для настройки FTF232 и документация по ней
  3. Программатор от DiHalt
  4. Программатор USBBit
  • +14
  • 24 марта 2011, 14:21
  • Alatar

Комментарии (24)

RSS свернуть / развернуть
хорошо, годно :) реквестирую фотки поменьше(с увеличением по клику хотя бы), а то на 1024p уплыло за край.

ритуальный вопрос: платы где заказывал?
0
Кстати, по поводу фоток вообще косяк — закачивалка их автоматом жмёт до 700 пикселов в ширину, в итоге схемы перекашивает (некоторые линии исчезают). Неплозо было бы вывесить где-то рекомендации по закачке картинок.
А у тебя какой браузер? У меня в FF всё ок, а опера с выключенным Fit to Width режет, со включенным нормально отображает. Причём такое ощущение, что так стало недавно, потому что в предыдущих своих статьях я этого при публикации не замечал, а сейчас полез смотреть — тоже все картинки пообрезаны…

По поводу плат — скорее всего Резонит, но точно сказать не могу, эти не я в изготовление отдавал, да и давно это было.
0
заливай куда-нибудь еще. пикаса, она умеет отдавать превью с увеличением по клику, размерами 400, 600, 1000 пх.
или хабраэффект. но ресайзить самому тогда :)

браузер — хром последний.
0
Ок, попозже тогда везде исправлю.
0
Мощно задвинул! Внушает. © А плата заказная? Если да, то какая стоимость платы вышла?

Я кстати себе тоже похожий девайс сделал. Правда у меня поменьше переключателей. Вот что получилось: USB-ISP/UART
0
Тоже хотелось бы узнать по поводу платы.Почему заводскую решили сделать? Одну плату заказали?
0
Почему заводскую? Да работаю я в конторе, которая приборы разрабатывает — постоянно новые модификации, новые платы. Проще заказать, чем делать самим — время дороже. А раз всё равно постоянно платы идут в заказ, то почему бы и с этой мелочёвкой не присоседиться? Увеличение цены за счёт добавления такого кусочка копеечное.
0
Заводскую, в смысле не самодельную плату.
0
Одну плату заказали?
В блоке помимо других блат было две этих, заказывали два блока, соответственно, всего пришло четыре платки.
0
Плата заказная. По стоимости очень сложно сказать, там же от размера цена не сильно зависит. Если заказать одну такую платку, может получиться, например, 2кр., а если заказать лист из десяти таких, то будет 2к2р., а если заказать пять листов по десять штук, получится, например 3кр. Мы заказывали в составе листа с несколькими другими платами, так что сколько стоила одна такая платка рассчитать весьма сложно.
0
Круто! Схему/печатку можете выложить? Друг давно просил программатор USB запилить ему, да и себе такой пожалуй сделаю
0
Так выложено же, смотрите внимательнее, в конце статьи ссылка на архив с исходниками для AD и платами, сконвертированными в формат P-CAD PCB.
0
я Krieger'у ответил… его вариант попроще
0
а, сорри, стормозил… надо бы внимательнее иерархию смотреть =)
0
можно в pdf или другом формате печатку? с pcb не получается пока разобраться как вывести на печать правильно(
0
Пожалуйста, тут правда немного модифицированный вариант, но именно такой у меня сейчас на столе лежит.
+1
премного благодарен. только вот еще одна просьба — не могли бы вы в каком-нибудь более универсальном формате выложить? скажем схему в PDF, а плату в герберах… альтиум мой старенький комп не тянет :(
0
Дубль два. Схему перевел в PDF. Сгенерировать герберы сходу не получилось, я с ними мало работал, поэтому выкладываю в ASCII P-CAD и на крайний случай в PNG для ЛУТа =)
+1
По поводу картинок надо допилить движок. Почему то некоторые браузеры, если не хватает разрешения экрана (я вот на нетбуке щас сижу) срезают картинку. Опера умеет делать подгон под размер. Насчет других хз.

Раньше была отсечка по 500пх, но 500 пх мало, все мелко получается. Картинки лучше грузить на хабраэффект какой нить.
0
ой надо. пользователи нетбуков — не люди, чтоли)
0
не подскажете, что это за чудо-программа для разводки плат в 3д?
0
Это Altium Designer, но, вообще-то, сейчас многие умеют рендерить плату в 3D, например Eagle, KiCAD, Proteus. Другой разговор, что сами они тебе отрендерят только плату с дорожками и контактными площадками и, возможно, прямоугольнички/цилиндрики над футпринтами, а сами компоненты надо либо рисовать, либо искать в инете.
(и да, разводка там везде классическая, в 2D, а в 3D максимум можно подвигать компоненты)
0
А по мне так лучше программатор собрать с UART. Для своих нужд вот такой прибор сделал:
Разъем IDC10 по распиновке частично совместим с stk200.

[URL=http://habreffect.ru/af8/34003e48b/DSC01219.JPG][IMG]http://habreffect.ru/files/af8/34003e48b/DSC01219.JPG[/IMG][/URL]
[URL=http://habreffect.ru/203/ef03e711c/DSC01218.JPG][IMG]http://habreffect.ru/files/203/ef03e711c/DSC01218.JPG[/IMG][/URL]
0
А по мне так лучше программатор собрать с UART. Для своих нужд вот такой прибор сделал:
Разъем IDC10 по распиновке частично совместим с stk200. Все в корпусе от флешки.
http://habreffect.ru/files/203/ef03e711c/DSC01218.JPG
http://habreffect.ru/files/af8/34003e48b/DSC01219.JPG
Если кому интересно опишу.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.