По долгу службы работаю с кучей эмбеддед железяк. А что у них общего? Правильно УАРТ. То, по чему мы отлаживаемся и даем убуту инструкции грузить ядро. Когда борд много, понимаешь, что начинаешь обрастать интерфейсными микросхемами с usb на уарт, как дерево мхом, начинается чехарда(а /dev/ttyUSB0 у меня сейчас к этой плате подрублен, или я его переткнул?). Ну и особенно достает разница в логических уровнях.
В общем, это дело мне надоело и я смекнул:
1. работаю я обычно только с одной бордой из своего зоопарка.
2. на полке лежитмикросхемка ft232rl
3. а в ящике сдвиговые регистры и буферы…
Порывшись в хламе я так же откопал транзисторы в sot-23 корпусе (9012 и 8550), потенциометры и прочих хлам.
Собственно, мысль была такая. Делаем девайсину, которая будет мультиплексором изодного в N уартов. на ft232rl есть выводы CBUS, которые можно юзать в виде пинов общего назначения. Аж 4 штуки. Режим этот зовется bitbang и есть там даже библиотека для него – libftdi. Входы синхронного сдвигового регистра это clk и data. По фронту клока оно защелкивает данные и сдвигает их. Выход же параллельный. Таким образом, к ft232rl приросли 2 сдвиговых регистра.
Первый выбирает питание, второй адрес. Начнем с питания, так как именно оно и есть на базовой плате.
Мосфетов под рукой не было, но были транзисторы. Выбрал PNP, и заставил их работать в ключевом режиме. С коллектора питание идет на линейный стабилизатор ams1117. Выходное напряжение подстраивается потенциометром, а далее через диод Шоттки идет на VCCIO FT232RL и питание регистров. О как!
Итого 5 каналов настраиваемых подстроечниками, канал на 3.3 вольта и канал на 5 вольт. Настраиваться можно в диапазоне от 2х вольт до пяти, что я считаю очень неплохим диапазоном.
На базовой плате присутствовало только 2 разъема торчащие вверх, один с регистра выбора адреса, другой с выходов UART’a. Идея заключается в том, что количество каналов мы будем масштабировать лепя сверху “шилды”, на которых будет находиться, собственно, буфер и выходы уарта.
Далее пошло самое интересное. Оставалось нарисовать принципиалку этой хреновины, развести, протравить печатку и спаять. Хотя бы базовую плату. Эту задачу-то я и выполнил. Вышло примерно такое:

.
Не обошлось конечно без багов. транзисторы пришлось переворачивать и подгибать, ибо перепулось на футпринте база с эмиттером, а так же мне не в домек почему-то было, когда я рисовал схему, что когда все выходы сдвигового регистра отвечающего за питание единицы (то есть PNP транзистор закрыт), то и сам регистр отключен. И выйти из этого состояния никак. Потому пришлоь пожертвовать одним каналом, бросить провод на землю и обеспечить гарантированные 2 вольта дежурного напряжения.
Теперь дело остается за “шилдами”, которые будут крепиться сверху.
Leave a Reply