Универсальная отладочная плата с USB [A2] (USB на Tiny45)

После изготовления нескольких экземпляров плат с USB2UART на контроллере FT232RL, были произведены расчеты стоимости затрат на изготовление платы. Результаты подсчета дали цифру несколько завышенную. Да и как то “по мажорски” использовать FT232RL только для линий TxD и RxD. Этот контроллер нужно использовать там, где он действительно необходим. Например для изготовления настоящего переходника USB-to-RS232, ведь последнее время многие испытывают необходимость в нем. По этому я приступил к поиску варианта реализации USB2UART как можно дешевле, чем использование FT232RL.

Основными критериям поиска было:
1) Малое количество ног у контроллера
2) Отсутствие необходимости использования внешнего резонатора
3) Малый “обвес” контроллера
4) Возможно даже виртуальный USB
5) Скорость с которой будем работать: 4800 бод в секунду

И о чудо! Решение было найдено. Наш японский коллега Osamu Tamura разработал нечто, что имеет название AVR-CDC (CDC-IO, CDC-SPI и CDC-232). Первое предназначено для управления микроконтроллером, т.е. его регистрами, портами и т.д с компьютера. Очень интересная штука. Второе, устройство с выходом SPI. Для чего оно нужно, не сложно догадаться. А третье, устройство, которое имеет на выходе COM порт. Оно то нам и нужно!

Его разработка реализована для микроконтроллеров: ATtiny2313/AT90S2313, ATmega8/48/88, ATtiny45/85. Нам идеально подходит ATtiny45: 8 ног, нет необходимости в кварце, малый обвес мк и т.д.
Из недостатков сразу можно указать то, что он питается от 3.3 вольта, а наша система заточена под 5 вольт. Но это не страшно.

Вот схема, которую предлагает Osamu Tamura (взято с его сайта http://www.recursion.jp/avrcdc/cdc-232.html#usage)

Тут, на схеме видим светодиод. Служит он для понижения напряжения на мк до 3.3 вольт. Лично меня пугает такая концепция и я решил сделать делитель напряжения на импортном стабилитроне. Питать мы будем от 3.3 вольт только преобразователь на контроллере, по этому нам в принципе нужно около 10 мА. Схема вышла такая.

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

Что касается согласования уровней напряжения интерфейсов UART соединяемых контроллеров, то автор проекта AVR-CDC предлагает использовать для этого обычные резисторы. Ну что же, у меня нет повода сомневаться в его правоте. И если данный вариант лично вам не подойдет, то автор предлагает сделать вот такой вот преобразователь интерфейсов на двух резисторах и двух диодах.

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

Вся разница между платами A1 и A2 , в первом случае используется контроллер FT232RL, а во втором Tiny45. В остальном, платы идентичны.

В схеме питания используется диодный мост т.к. хотелось максимально упростить задачу выбора блока питания и избавить от необходимости поисков штекеров с подходящей полярностью. Да и вдруг под рукой будет б/п только с переменным выходным напряжением.

Обратите внимание, я использовал кварц на 16 мегагерц. В других проектах, где будет необходима нулевая ошибка UART, я скорее всего буду использовать кварц на 14,75 мегагерц.

Колодки контактов вышли у меня в таком расположении пинов контроллера. Расположение контактов было сгруппировано по портам и в наиболее удобном для разводки дополнительных плат местах. Меняться расположение пинов на колодках не будет.

Осталось только подсчитать номинал балластного резистора R5 и можно приступать к экспериментам. В общем, поживем – увидим , может нам не подойдет данный вариант реализации USB2UART по каким нибудь причинам. Или найдем что нибудь лучшее.

Приступая к расчетам номинала резистора, я решил остановится на стабилитроне BZX55C3V3 т.к. нам подходит его максимальный стабилизационный ток. По скольку МК имеет не постоянное потребление, то нам надо рассчитать цепь с немного завышенным током, все что лишнее, съест стабилитрон. Считать будем по формулам R5 = (U[вх] – U[VD1]) * I[R1] и P[R1] = 2 * (I[R5]2 * R5). Первая формула нам подскажет какого номинала нужно взять сопротивление. Вторая, его рассеиваемую мощность. В итоге нам надо искать сопротивление около 100 Ом с мощностью 0,5 ватт. На самом деле, 0,5 будет с избытком. можно даже 0,25 ватт.

Cхема и разводка в Sprint-Layout 4

Запись опубликована в рубрике Atmega с метками , . Добавьте в закладки постоянную ссылку.

Оставить комментарий

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

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>