RomeoGolf

Пт 12 Август 2016

USB-polygon-2: Схема и плата

По амбарам, по сусекам…

С элементной базой более-менее определился. Самое главное — контроллер — заказан AT90USB162 на AliExpress. Заодно там же заказан дешевенький энкодер — побаловаться, но это потом. Штырьки для джамперов и сами перемычки сняты со старых материнских плат и прочей компьютерной техники. Кнопки от мышей, шнур USB — тоже. Первоначально планировалось шнур к плате просто припаять, однако в запасах нашелся разъемчик mini-USB на плату, а также универсальный переходник для зарядки разного рода гаджетов, от которого был отрезан и разобран ответный разъем на кабель. Светодиоды тоже есть, снятые с каких-то плат, уже и не помню, откуда. «Рассыпуху» — резисторы и конденсаторы — решил брать для поверхностного монтажа, чтобы уменьшить размеры платы и поменьше сверлить. Эта мелочь тоже в основном демонтирована с других плат, материнских, винчестерных, флопповодных и прочего, только на 22 Ома пришлось искать. Среди горсти имеющихся кварцев нашелся и на 8 МГц, что радует, ибо пробежка по форумам показала, что с другими (кроме 8 и 16) есть проблемы при попытках программировать через FLIP.

Стал выбирать инструмент для рисования и разводки схемы и платы. Перебрал несколько вариантов. Вообще-то, можно настолько простую схему нарисовать и карандашом, а плату вообще в чем угодно, от Sprint Layout до любого векторного редактора, но если уж задача учебная — будем делать вид, что все по-взрослому, как бы серьезный проект. Поэтому хотелось бы выбрать что-то доступное, кроссплатформенное и достаточно серьезное с учетом возможных будущих действительно серьезных проектов.

Остановился в конце концов на KiCAD. Он кроссплатформенный вполне, в чем я убедился, работая над проектом попеременно то в Windows XP, то в Windows 7, то в Debian Linux. Его возможностей за глаза достаточно для любительских целей. В нем можно и рисовать схему, и разводить плату. При разводке платы он проверяет правильность соединений и неподключенные контакты. И, наконец, он GNU GPL — бери и пользуйся.

Начинаю рисовать

Питание развел в соответствии с атмеловским описанием на контроллер, скомбинировав рисунки 7-1 и 7-2, поставил в нужном месте переключатель. То есть, беру +5 В от USB и, в зависимости от положения переключателя, либо питаю кристалл прямо от +5, либо подаю на встроенный преобразователь напряжения и питаю кристалл от +3,3 В. При рисовании схемы предусмотрел контакты для внешних устройств: +5 В, +3,3 В, текущее питание кристалла (в зависимости от положения переключателя) и корпус (хотя, по идее, корпус можно и так много откуда взять). Между +5 В и корпусом поставил традиционные две емкости, побольше и поменьше, а заодно воткнул светодиод для индикации подключенности питания, через токоограничивающий резистор, конечно.

Кварц тоже воткнул в соответствии с официальной документацией, по рисунку 6-4. Конденсаторы нашел, кажется, на 20 пик. Кварц хотел взять на 12 МГц, один из заказанных в Китае, оставшихся от ремонта флэшки. Но, похоже, лучше всего будет поставить 8 МГц, чтобы избежать неприятностей при «прошивке» по USB.

Подключил разъем mini-USB. Изначально хотел вывести просто контактные площадки, чтоб было куда подпаять шнурок, но подумал, что подпаять можно будет и к контактам, предусмотренным для разъема, а разъем (если вдруг захочется) на абы какие площадки не встанет.

Нарисовал кнопку Reset, подтянутую к напряжению питания. Не к +5, что важно, а именно к текущему питанию, в зависимости от тумблера режима питания.

Аналогичным образом подключил кнопку HWB, которая нужна для переключения контроллера в режим «прошивки» по USB. Но потом пришлось добавить еще один тумблер, переключающий направление с этого вывода к кнопке и к светодиоду. Так уж получилось, что HWB является одной из альтернативных функций порта D, а я хотел бы иметь возможность использовать весь этот порт, все восемь разрядов. На них я посадил по светодиоду (через токоограничивающие резисторы, конечно), анодом к порту, катодом на корпус. То есть, зажигаться они будут логической «1». Линию, соединяющую резисторы этих светодиодов, я провел не прямо на корпус, а через джампер, чтобы иметь возможность отключить их оптом. Например, для того, чтобы попользоваться портом в других целях: каждая нитка порта идет не только на свой светодиод, но и на контактную площадку. Таким образом, можно к порту подпаять что-то внешнее, может, на ввод (типа энкодера), а может, и на вывод (типа экранчика).

Порт B вывел на контактные площадки напрямую, без выкрутасов.

Порт C не вполне полноценный. Разряд 1 занят на Reset, и играться с ним, переключая тумблером назначение, не хотелось бы. Разряд 0 занят на кварц, тут вообще не поиграешься. Разряд 3 вообще отсутствует напрочь. Остается пять штук. Решил посадить их на кнопки, с которыми можно будет поиграться разными методами — опросом в цикле, обработкой прерываний, защитой от дребезга разными программными способами… Каждая кнопка подтянута на питание, каждая нитка к кнопке идет через джампер, и каждая линия порта идет дополнительно на контактную площадку (для чего и джамперы).

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

Резисторы для «подтяжки» кнопок указал по 10 кОм, а токоограничивающие для светодиодов — по 330 Ом, посчитав, что этого должно хватить. При расчете, правда, я предположил, что ток диодов не более 20 мА, то есть, даже при питании от +5 хватит с запасом. Но потом подкорректировал: на индикацию данных поставил резисторы по 270 Ом, а на индикатор питания, где стоит другой светодиод, увеличил уже до 2 кОм, и все равно слишком ярко.

Схема в KiCAD

Вот, собственно, и все с рисованием.

Разводка

Для нормальной разводки сначала надо сформировать список цепей, а потом поставить в соответствие каждому элементу его посадочную площадку. Проще всего было с контроллером — его площадка подцепилась сразу сама.

У разъема mini-USB площадка нашлась в библиотеке, но у нее, нехорошей такой, псевдовывод (пластмассовая «нога») для позиционирования на плате оказался подключен к цепи (не помню уже, к какой) и выдавал ошибку при проверке правильности соединений. Пришлось править и пересохранять в специально сделанной для проекта библиотеке.

Для джамперов посадочные площадки нашлись в одной из стандартных библиотек. Для конденсаторов и резисторов подобрал площадки, исходя из размера элементов, но (как потом оказалось) промахнулся с двадцатипиковыми емкостями кварца — встали «внатяг», оказались маловаты. Для контактных площадок под предполагаемую подпайку внешних штучек вполне подошли квадратные 1PIN_SMD. Для найденных среди барахла переключателей и мышиных кнопок места пришлось рисовать самостоятельно.

Дальше сама разводка. Начал «танцевать» от контроллера, расставлять элементы более-менее компактно, но так, чтобы светодиоды в ряд, контактные площадки портов в ряд, кнопки в ряд.

В один слой компактно не получалось, хоть и хотелось. Особенно неприятно, что у контроллера несколько выводов питания. С учетом того, что питание и корпус надо тянуть от разъема USB, да еще и вывести на контактные площадки, линии питания и корпуса в любом случае пересекаются. А двустороннюю плату в домашних условиях на коленке изготавливать куда сложнее, чем придумывать. В общем, сделал вторую сторону — корпус. Так можно зазоры для участков, которые не надо на корпус подключать (типа ног кнопок и светодиодов) можно сделать достаточно большими, чтобы не бояться промахнуться при совмещении слоев. Переход для соединения сторон предусмотрел перемычечного типа — тупо проволочкой.

В конце концов получились переходные отверстия примерно так — рядом с кварцем, вид со стороны, на которой контроллер, и со стороны, на которой кварц («земляной» полигон):

Переходное отверстие Переходное отверстие

В итоге получилась плата 7,5х10 см. Дальше — лазерно-утюжная технология, естественно. Для разовой работы оптимальный вариант, особенно при желании сильно ужаться по бюджету. И тут, после перевода печати утюгом на плату, оказалось, что разводку придется еще подправить. Во-первых, с проводниками шириной в четверть миллиметра я погорячился, лучше все-таки сделать их полумиллиметровыми, благо, возможность такая есть. То есть, не то, чтобы они где-то непропечатались или непротравились, но как-то хиленько смотрятся, есть опасения насчет их надежности. Во-вторых, ноги мышиных кнопок толстенные, а отверстия в площадках сделаны по образцу других элементов, и при сверлении вручную китайским типа дремелем практически невозможно не порвать ободок меди, который должен остаться вокруг ноги. А какие не порвались, те выглядели настолько хлипко, что было понятно — прогрева, достаточного для толстой ноги кнопки, они уже не вынесут.

Плата в KiCAD

Переделал все контактные площадки, предназначенные для сверления — переходные отверстия между сторонами, светодиоды, переключатели, мышиные кнопки, джамперы — увеличил по максимуму, до 3 мм где возможно, или, хотя бы, до 2 у джамперов. Утолщил дорожки. Перекомпоновал чуть компактнее.

Изготовление

Снова дружба утюга с лазером. Распечатал обе стороны платы на листе А4 фотопринтерной бумаги Lomond глянцевой тонкой. На рисунке печать не зеркальная для наглядности, на бумаге печатал-то конечно же в зеркальном виде.

Печать лицевая Печать задняя

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

Подкрашенная дорожка Подкрашенная дорожка

Защитил «земляную» сторону платы широким скотчем, правда, пришлось внахлест двумя полосками. Сунул в раствор хлорного железа, который у меня стоит уже довольно давно, больше года, и уже пару раз использовался, но работает до сих пор. Протравилось очень хорошо. Был один маленький недотрав, который я убрал скальпелем. Одна дорожка на самом краю вроде бы не рваная, но какая-то подозрительная, лучше ее укрепить. Но потом.

Просверлил отверстия, примерил элементы в них, особенно беспокоили толстоногие кнопки. Совместил с отверстиями платы рисунок второй стороны. Рисунок на бумаге немного шире платы, и после совпадения отверстий он был зафиксирован путем загиба полей. Перевел утюгом вторую сторону, «земляную» — практически сплошной полигон с пробелами под элементы (кнопки, светодиоды, джамперы и переключатели). Такие большие пространства тонером защищаются плохо, поэтому я решил помочь тонеру тем же лаком для ногтей, дополнительно подкрасил.

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

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

Отремонтированные дорожки:

Отремонтированная дорожка Отремонтированная дорожка

Дальше лужение, ремонт двух дорожек, монтаж. Кварц засунул в кусок термоусадочной трубки для изоляции и подклеил к плате суперклеем, а выводы подключил проволочками, чтобы кварц не торчал, как памятник, возвышаясь над кнопками и светодиодами. Ножки джамперов паял, предварительно нацепив на них сами джамперы, для выравнивания. Не стал делать совсем уж хорошо, с пластмассовыми основаниями ножек: они есть, но мало и жалко. Подкрасил отлетевшие при лужении надписи. Еще добавил надписи, не предусмотренные при рисовании платы — как-то не подумал, что джамперы отключения кнопок тоже не мешало бы подписать.

Заключение

Получился такой вид:

Вид со стороны контроллера Вид со стороны навесных элементов

Итого общая стоимость платы — около 200 рублей. Если точно, то 198 за контроллер, пара рублей за резисторы 22 Ома. Не уверен, что сюда стоит плюсовать лист бумаги Lomond, который все равно уже был, разъем USB на плату, который был куплен (давно, рублей за 15), но предназначался для другого места, и хлорное железо, которое еще поработает. Все остальное или б/у, или досталось за спасибо.

Плата была замечена компьютером при первом же подключении, чем меня весьма порадовала. Попросила драйвер — с этим вопросы к фирме Atmel и ее программе FLIP, но это уже другая история.


Теги: