Лёгкий способ сделать крохотный USB-хаб для Raspberry Pi

Бывало у вас такое, что вам не хватает USB-портов при создании проекта на Raspberry Pi Zero? Притом внешние USB-хабы или HATS не подходили из-за ограничений по размеру? Если да, или если вы просто ищете себе интересный проект с пайкой деталей, в результате которого получится нечто полезное, то этот проект – для вас!
Я постоянно пытаюсь впихнуть Raspberry Pi в какие-нибудь предметы для моих проектов, и несколько из них используют Pi Zero, совершенно не имея свободного места для USB Hub/HAT. Я поискал и нашёл несколько сайтов, продающих крохотные платы с USB-хабами, однако стоимость у них довольно высокая. Поэтому я решил сделать собственную платку, которую достаточно просто собрать из всего лишь 6 дешёвых компонентов. У неё есть версия размером с ноготь на 2 порта и немногим более крупная версия на 4 порта. Я дал общий доступ к проектам плат на OSH Park и вы можете заказать их оттуда:
Конечно, платы, возможно, будут совершенствоваться и дальше, в основном на основе отзывов читателей. Пока что они работают нормально, но не стоит заказывать их сразу по 100 штук.
OSH Park продаёт платы по 3 штуки с бесплатной доставкой [даже международной]. 3 платы на 2 порта обойдутся вам в $2,95, а 3 платы на 4 порта – в $3,55. Довольно дёшево! После заказа платы магазин предложит вам заказать и трафарет (об этом позже).
Обратная сторона платы на 4 порта
Материалы для изготовления
FE1.1s SSOP-28 IC, 1 шт (их придётся заказывать у китайцев, чтобы было подешевле – с eBay или AliExpress; я купил 50 штук примерно за $20)/
Керамический конденсатор 0603 10 мкФ, 3 шт (то же самое — eBay или AliExpress)
Резистор 0603 2.7кОм (аналогично)
Осциллятор на 12 МГц, 1 шт (с ногами; в Китае можно купить 100 шт за $5)
Лучшим местом для таких покупок является Китай. Придётся подождать 2-3 недели, однако в итоге будет дешевле, чем у любого продавца в США [то же обычно верно и для России / прим. перев.]. Я всегда покупаю большие количества компонентов, чтобы хватало надолго.
Сборка платы
На фотографиях показана старая версия платы, но процесс сборки новой ничем не отличается.
Сначала нужно припаять FE1.1. Это может оказаться сложным, поскольку шаг (расстояние между ног) равен всего 0,64 мм. Я уже паял их вручную, однако достаточно просто соединить контакты вместе. Иногда можно провести паяльником, чтобы разделить контакты (не забудьте добавить флюс!), но если так этого сделать не получится, попробуйте использовать косичку для удаления припоя.
У меня отлично получилась пайка при помощи паяльного фена, и теперь я всегда использую этот метод. Для такого метода можно заказать у OSH Stencils трафарет после заказа платы. Трафареты помогут нанести паяльную пасту на небольшие площадки платы.


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

Я использую такой паяльный фен. Он очень дешёвый (Amazon, Ali), у него есть много версий, однако все они, кажется, сделаны на разных фабриках по одному шаблону. Если вы не очень часто паяете компоненты с поверхностным размещением, то этот фен вам послужит. Для такой пайки крайне рекомендую прикупить силиконовый мат, чтобы не сжечь стол.
Затем я обычно ставлю три конденсатора на 10 мкФ. Поскольку у моего шаблона нет вырезов под них, я просто паяю их вручную. Добавляю флюса, и держу конденсатор пинцетом, припаивая каждую сторону по очереди. Обязательно держите его пинцетом, иначе он прилипнет к паяльнику.

Припаяв конденсаторы, я тем же методом паяю резистор на 2,7 кОм.

После установки планарных компонентов я ставлю осциллятор на 12 МГц.

Когда все компоненты установлены на места, и флюс очищен, вы получаете крутейший крохотный USB-хаб! Кстати, цвет покрытия плат на фото называется After Dark – это один из вариантов, предлагаемых OSH Park. Стандартным у них является фиолетовый, но мне очень нравится, как выглядят эти чёрно-медные платы, и к тому же, за цвет не берут дополнительных денег!

Если вы выбрали платы на 4 порта, их сборка будет абсолютно такой же.
Ниже привожу несколько справочных изображений со схемой подсоединения к Raspberry Pi Zero и USB-портам.
Как крепить ОСП к стене?
Прежде, чем приступить к описанию особенностей работы с листами ОСБ, необходимо пояснить, что же представляет собой этот материал.
Плита ОСБ состоит из древесностружечного материала, склеенного полимером. Отсюда и названия: OSB — oriented strand board, ОСП – ориентированная стружечная плита, как перевод с английского, и ОСБ – транслитерация с английского. Последний вариант прочно прижился в современном русском языке. Технология разработана в период строительства сборных каркасных домов более 30 лет назад.
Способ изготовления: древесную крупноразмерную стружку обрабатывают клеевой смесью и укладывают во взаимно перпендикулярных направлениях, то есть внешний слой в продольном направлении, а внутренний – в поперечном. Затем полуфабрикат попадает под мощный термический пресс, здесь происходит затвердение клея. Так древесные отходы превращаются в материал с высокой прочностью и плотностью.

Плиты ОСБ применяются при:
- возведении крыш, служа основанием для некоторых видов кровельного материала;
- изготовлении опалубочных конструкций;
- облицовке стен каркасных строений;
- возведении межкомнатных перегородок;
- создании напольных покрытий, стеллажей и стендов;
- обшивке потолков и деревянных лестниц.
Классификация плит ОСБ
Производители делят ОСБ на четыре основных класса, в основном по двум показателям – прочности и влагостойкости плиты.

Влагостойкость в процентах определяется следующим образом: плиту помещают на сутки в воду, затем измеряют толщину разбухания относительно изначальной, значение в процентах и есть показатель влагостойкости.
В продаже можно встретить облагороженную плиту ОСБ:
- ламинированную;
- шпунтованную (края листов торцуются специальными фрезами для получения пазов и гребней, соединяющих их друг с другом, в результате — плоское соединение без щелей);
- лакированную.
Существуют стандартные размеры и толщины листов:
- 1220х3660 мм
- 1250х6000 мм
- 1250х2500 мм
- 1250х3700 мм
Для разных вариантов работ — возведение крыши, облицовка мебели или стен – рекомендуется определенная толщина листа. Например, для кровли выбирают 22 или 25 мм, а для облицовки стен – достаточно 8 или даже 6 мм.

Общие правила монтажа ОСБ плит
Крепление ОСБ можно обобщить несколькими правилами:
- Подготовка поверхностей: выравнивание поверхностей, обработка антисептиком, разметка.
- Выбор толщины листа в зависимости от того, где он будет крепиться: к стене, к потолку или кровле.
- Выбор материал, который и будет составляющей каркаса: металлический профиль, деревянная обрешетка.
- Крепление каркаса к поверхности посредством дополнительных элементов, подвесов, дюбелей или саморезов.
- Необходимость использования соединительных нержавеющих элементов (оцинкованных или из нержавеющей стали) при монтаже несущих конструкций.
- Рекомендации, как крепить ОСБ: расстояние между саморезами в середине плиты не более 300 мм, монтаж плит малой толщины следует начинать с середины и продолжить крепление вниз и по сторонам во избежание возникновения прогибов плиты, саморезы необходимо выбирать длиной в 2,5 раза больше толщины плиты.
Чем можно крепить?
Выбор креплений для монтажа OSB зависит от материала, к которому будут крепиться листы и от ровности поверхности. Для крепежа плиты к бетону или кирпичу можно применять клей или дюбели, а для монтажа к деревянной основе чаще используют саморезы длиной от 20 мм для тонких плит до 50 мм и более для толстых. На ровное основание ориентированно-стружечные плиты можно просто приклеить вне зависимости от материала основания. Если на ОСБ планируется большая нагрузка, для монтажа лучше использовать более прочные кольцевые (ершенные) гвозди.
Чаще всего в качестве креплений используют саморезы, которые должны иметь высокую прочность, потайную головку, острый наконечник для легкого вкручивания и нержавеющее покрытие.
Методы крепления и монтажа в разных вариантах .
Методы крепежа ОСБ при кровельных работах
Кровля – это многослойное покрытие. Устройство кровли всегда предполагает создание дополнительной решетчатой конструкции или каркаса. Обрешетка изготавливается из досок и брусьев.
ОСБ используют под мягкую кровлю. Существует два вида обрешетки: сплошная и разряженная. При сплошной обрешетке зазор составляет 1 см, разряженная подразумевает индивидуальный подход. Для кровельных работ вполне подойдет разряженная.
Крепить ОСБ к каркасу следует вдоль брусков, снизу — вверх. Каждая плита должна располагаться не менее, чем на двух брусках, и соединяться со следующим листом на подпорке. Между плитами необходимо оставить зазор не менее 2 мм, так как из-за влияния температур плиты могут расширяться.
Крепление ОСБ к обрешетке-каркасу осуществляется спиральными или кольцевыми гвоздями, разбег длины 45-75 мм. Минимальное расстояние от края плиты — 1 см. Шаг вбитых гвоздей по брусьям – 30 см, по поперечным балкам – 15 см.
Крепление ОСБ к потолку
Перед тем, как начать монтаж, следует подготовить поверхность потолка. От этого будет зависеть долговечность конструкции.
- Если используется утеплитель или шумоизоляционный материал, необходимо рассчитать высоту потолка. Рекомендованный зазор между потолком и утеплителем от 1 см.
- Далее выполняется разметка.
- Важный этап – сделать прочное крепление, на котором будет держаться в дальнейшем вся конструкция. Для крепления каркаса следует использовать подвесы. Подвесы – это элементы, которые фиксируются в потолке дюбелями или саморезами и используются для сооружения подвесных потолочных систем. Они довольно жесткие и надежные, изготавливаются из стали. Если крепить к бетонной плоскости, понадобится перфоратор.
- Выбор каркаса. Металлический уголок или деревянный брус нарезается на части нужной длины, которые крепятся на расстоянии от стены. Поперечные элементы должны быть строго параллельны в горизонтальной плоскости, для чего натягивают леску и подставляют прокладки.
- Заранее нужно позаботиться об установке электропроводки и размещении осветительных приборов.
- Сделав необходимую подготовку, крепление плиты не составит труда.
- Начинать крепить листы следует от угла. Использовать лучше саморезы по металлу.

Вертикальный или стеновой способ монтажа ОСБ
По законам физики, плита ОСБ в вертикальном положении может выдержать большую нагрузку, чем в горизонтальном. Это обусловлено направлением волокон, из которых склеен лист, и гравитацией. Поэтому крепить ОСБ к деревянному каркасу лучше гвоздями, чем саморезами.
Встает вопрос: какими гвоздями – гвоздями с кольцевой нарезкой или же спиральной. Подходят и те, и другие. Но есть варианты, где листы крепятся только саморезами. Это межкомнатные перегородки, испытывающие дополнительные нагрузки, на которые впоследствии могут еще повесить дополнительные элементы. Например, кухонный шкаф или тяжелое зеркало в прихожей.
Монтаж плит на пол
Существует несколько вариантов для полов:
Самый простой вариант — монтаж на бетонные полы. В начале необходимо выполнить подготовительные работы:
- Необходимо тщательно пылесосить (чем чище будет поверхность, тем сильнее будет сцепление клея).
- Делается бетонную стяжку.
- Высохшая стяжка покрывается грунтовкой.
Далее плиты раскладываются по бетонному полу, при необходимости делается подрезку.Потом наносится клей на шероховатую поверхность плиты зубчатым шпателем, а гладкая лицевая сторона будет видимой. После этого листы приклеиваются к бетону. В заключении остается запенить зазоры по всему периметру.
Можно укладывать плиту на дощатый пол. Следует предварительно его выровнять. Крепится ОСБ в этом случае саморезами.
Основание пола выстилается лагами. В качестве лаг используется брус из хвойных сортов древесины. Чтобы конструкция не уступала по прочности стяжке, нужно учесть соотношение толщины плиты с шагом лаг. Для пола приемлема толщина 9 мм, соответственно шаг лаг должен быть не более 25 см, если 16мм, то шаг – 35-60 см. Далее листы раскладываются и закрепляются.
Пол из OSB
Роль OSB в каркасном строительстве и при утеплении стандартных домов очень велика. Особенно часто с помощью OSB формируют и выравнивают напольные поверхности. OSB плиты имеют повышенную механическую прочность и стойкость к влаге, характеризуются хорошей термоизоляцией и шумоизоляцией. К преимуществам выбранного решения можно отнести и довольно простой монтаж.
Плиты идеально подходят для строительства и выравнивания полов, отлично выдерживают нагрузку от мебели, оборудования, передвижения людей. При выравнивании небольших дефектов пола, достаточно применить плиты OSB толщиной 10 мм. Если же предстоит создание пола на лагах, то толщина применяемых плит OSB должна быть не меньше 15–25 мм.

Монтаж плит OSB на бетонный пол (цементную стяжку)
Работы должны выполняться по следующей схеме. Бетонное основание должно быть абсолютно чистым, без пыли для обеспечения хорошего сцепления с монтажным клеем. Основание плиты OSB рекомендуется покрывать специальным адгезионным грунтом Soppka .
Затем нужно плиты OSB разложить на поверхности и при необходимости выполнить подрезку электролобзиком или циркулярной пилой. На изнаночную сторону OSB нанести паркетный клей и приклеить листы к бетонному основанию. При укладке между плитами обязательно нужно оставлять швы толщиной 3–5 мм. По периметру помещения, между OSB и стеной, шов должен составлять 12 мм. Швы между плитами рекомендуется заполнять специальной шпатлевкой для стыков OSB SOPPKA SMART ELASTIK. Срок полного высыхания — 24 часа.

Монтаж плит OSB по дощатому настилу
Укладка OSB на старый деревянный пол помогает выровнять поверхность и подготовить ее под финишное покрытие. Для начала с помощью уровня нужно определить локализацию неровностей дощатого настила. Доски, которые «гуляют» или слишком возвышаются над общим уровнем, притянуть к лагам дюбелями, утапливая их в материал.
По полу разложить плиты OSB со смещением швов каждого следующего ряда. Крестообразных стыков быть не должно. Обязательно нужно оставлять зазоры между плитами — 3–5 мм, по периметру стен — 12 мм. В плитах просверлить отверстия через каждые 20–30 см и притянуть OSB к полу с помощью саморезов. Cделать пол еще более прочным можно, смонтировав подобный второй слой OSB. Швы вышележащего и нижележащего слоев должны быть уложены со смещением в 20–30 см.

Укладка ОСП по лагам на бетонном основании
При наличии бетонного основания (например, плиты перекрытия), устройство лаг и обшивка их позволяет создать ровный пол без применения мокрых выравнивающих стяжек. А также вместить в конструкцию утепляющие, влаго- и шумоизолирующие материалы. Лаги (деревянные бруски) закрепляются на бетонном перекрытии с помощью дюбелей или анкеров. Расчет расстояния между лагами ведется в зависимости от толщины плит OSB. Чем толще плиты, тем реже можно устанавливать лаги и наоборот.
Благодаря лагам, между ОSB и бетонным перекрытием создается пространство. Его можно использовать с пользой, заложив изоляционным материалом. Например, в полы первых этажей можно уложить теплоизолятор: минеральную вату, пенопласт, ЭППС При наличии под перекрытием влажного подвала конструкцию пола часто дополняют пароизоляционными пленками или мембранами. Плиты OSB необходимо укладывать поперек лаг. Швы между соседними плитами (по ширине) должны идти строго по середине лаги. При монтаже также рекомендуется оставлять дилатационные зазоры (3–5 мм — между плитами, 12 мм — между ОSB и стеной, которые в дальнейшем легко загерметизировать SOPPKA Smart Elastik). Плиты OSB фиксируются к лагам саморезами или гвоздями (спиральными, кольцевыми). Шаг крепежных элементов: по периметру листов — 15 мм, на промежуточных (дополнительных) опорах — 30 мм.

Монтаж чернового пола из OSB на лагах
Данная технология уместна только при имеющемся столбчатом, свайном, фундаменте. На фундаменте нужно смонтировать лаги. Шаг лаг должен соответствовать толщине используемых плит OSB (чем больше шаг, тем больше толщина). Далее выполнить черновой накат пола. Для этого вдоль лаг нужно прибить удерживающие бруски, на которые будут укладываться и закрепляться плиты ОSB. Поверх OSB рекомендуется укладывать слой пароизоляции, после чего нужно закрыть утеплитель еще одним слоем OSB. Крепление проводится так же, как при укладке OSB на лагах по имеющемуся бетонному основанию. На этом процесс работ считается завершенным.

Подготовка OSB под финишные покрытия
Прочная, твердая и ровная поверхность делает OSB универсальной основой под все современные виды финишных напольных покрытий. Вот несколько популярных решений:
В этом случае плиты OSB будут выступать в качестве чистовых полов, которым потребуется только декоративная отделка лакокрасочными материалами. Никакой дополнительной подготовки листы OSB не требуют, достаточно очистить их от пыли и нанести 2–3 слоя лака (краски), специально разработанных для плит OSB.
Рулонные материалы — линолеум и ковролин.
При укладке рулонных материалов необходимо проследить, чтобы места стыков между плитами OSB были расположены вровень с остальной поверхностью. Все неровности желательно убрать с помощью шлифовальной бумаги. Cтыки между плитами загерметизировать с помощью SOPPKA SMART ELASTIK.Умный шов.
Чтобы плитка удерживалась на основании из OSB, необходимо обеспечить его неподвижность. Для этого лаги располагают чаще, чем того требует толщина листов. Шаг между элементами крепления также рекомендуется уменьшить. Плитку приклеивать на ОSB, используя специальный клей, подходящий для деревянной поверхности и используемой плитки. Поверхность плиты предварительно рекомендуется обработать SOPPKA для лучшего сцепления с плиткой.
Это покрытие достаточно жесткое, поэтому подготавливать OSB под укладку ламината не нужно. Незначительные неровности, которые могут быть в местах стыков плит, нивелируются подложкой.
Виды саморезов и их расход при монтаже плит
Учитывая особенности конструкций, крепеж для плит ОСБ выбирается в зависимости от климатических условий. Например, для кровельных конструкций используются кольцевые гвозди, т.к. отличаются большей прочностью на срез. Эта характеристика имеет значение при ветровых и снеговых нагрузках.
Общие правила выбора саморезов для крепления ОСБ:
- саморез должен быть повышенной прочности, лучше, если он будет изготовлен из стали;
- саморез дожжен иметь головку потайного типа, чтобы крепежные узлы были практически незаметными;
- наконечник самореза должен быть сверлообразным, что обеспечит легкое проникновение как в металл, так и в дерево;
- саморезы следует вкручивать в обшивку, не нарушая фактуры материала;
- саморез должен иметь надежное противокоррозийное покрытие, это защита от влажных и других агрессивных факторов.
Расход саморезов или гвоздей составляет в среднем 30 штук на 1 кв. метр.
В заключение, собираясь работать с ОСБ, не забудьте позаботиться об экологичности данного материала. Как любой продукт, произведенный методом склеивания, плита имеет класс эмиссии, который говорит о содержании формальдегидов и смолах.
Существует несколько классов эмиссии:
- Е 0,5 или 1 – это безопасное содержание, и такая плита пригодна для внутренних отделок жилых или рабочих помещений.
- Е 2 или 3 — здесь имеет место применения такого материал только в технических целях, например – обшивка кровли и стен каркасного дома.
При покупке плит требуйте у продавцов сертификат соответствия!
Удалось ли Вам решить свою проблему по рекомендациям из статьи?
Нет. Требуются дополнительные ответы. Сейчас спрошу в комментариях.
Частично. Еще остались вопросы. Сейчас отпишусь в комментариях.
Характеристики плит OSB
OSB – это строительный аналог фанеры и ДСП. Эти плиты отличаются большей прочностью и прекрасно адаптированы для отделки. Материал появился на рынке сравнительно недавно. ОСБ изготавливают из древесной щепы, которая укладывается в 3 слоя. Они склеиваются между собой специальными составами на основе смол. При этом слой в середине укладывается перпендикулярно по отношению к 2 остальным. За счет этого формируется устойчивость материала к нагрузкам.

Этот параметр при маркировке обозначается цифрой. Чем значение меньше, тем ниже устойчивость к нагрузкам и воздействию разрушающих факторов, таких как влажность. К примеру, индекс 2 означает, что OSB-плита невлагостойкая и не способна выдерживать интенсивные длительные нагрузки. А цифра 4 говорит о том, что изделие может использоваться как перекрытие, которое не будет разрушаться даже при воздействии влаги.
ПОЛЕЗНАЯ ИНФОРМАЦИЯ: Выбрали плитку для ванной? Не забудьте о затирке для швов

Материал для укладки на пол выбирается исходя из упомянутых обозначений с целью формирования ровной черновой поверхности. Не стоит экономить на качестве OSB-плиты. Это чревато необходимостью укладки дополнительного слоя, что дорого и неудобно. Оптимальный вариант – плита OSB 3.
Часто возникает вопрос: «А нужна ли подложка под OSB?». С практической точки зрения – нет. Древесина сама по себе – отличный теплоизоляционный материал, а если учитывать, что укладывается она на деревянные доски, то подложка не нужна. Но иногда для достижения максимально возможного звукоизоляционного эффекта ее все же используют.
USB устройство своими руками
Мы хотим сделать так, чтобы наши устройства управлялись с компьютера программой и можно было использовать возможности компьютера для управления машиной. Для этого нам надо организовать связь по USB между нашим устройством и программой на компьютере.
Прежде чем приступить к этому вы должны были в предыдущей статье ознакомится с Управлением машиной и получить знания о том, что такое микроконтроллер AVR. Если этого не было, сделайте это.
Далее нам надо для связи по USB сделать устройство, программу для микроконтроллера AVR и программу для компьютера.
USB управление для своего устройства
Берем кабель USB и с одной стороны срезаем провода, видим 4 провода, которые нам нужны — красный, чёрный, жёлтый (бывает зеленым) и белый. Красный провод — это плюс питания +5V, чёрный провод — это минус питания. Этими проводами запитываем наше устройство. А другие 2 провода — жёлтый D+ и белый D- используются для обмена данными по USB.
Схема USB устройства на микроконтроллере AVR
Также воспользуемся вспомогательными инструментами для удобства — это зажим на 20 гнезд, чтобы легко извлекать микроконтроллер для перепрограммирования. И это 2 клеммника, чтобы прикрутить провода USB к макетной плате. Вообщем для сборки устройства нам потребуется сделать такой закуп:













Собранное готовое к работе USB устройство выглядит так:
USB устройство своими руками
Программа на микроконтроллер AVR для USB связи
1) Скачиваем исходные коды OpenRoboFW и распакуйте архив на диск C:\, я собрал этот архив из файлов проекта V-USB, настроил их на Attiny2313A и тактовую частоту 12 МГц (эти настройки меняются в файле Makefile, если используется другой микроконтроллер), упростил код для внесения изменений. V-USB дает нам исходники программ с идентификаторами VID и PID, которые нужны для распознания USB устройства компьютером. На всякий случай вот ссылка на проект . После распаковки архива содержимое директории выглядит так:
![]() |
Назначение важных файлов: main.c — главный файл программы на языке C, она осуществляет обработку информации, пришедшей по USB, и в ней программируется реакция микроконтроллера на USB пакеты с компьютера Makefile — параметры сборки, тип микроконтроллера (взяли — attiny2313a), частота, информация по фьюзам для других микроконтроллеров, при использовании другого микроконтроллера, в этом файле его нужно прописать в строке DEVICE (например — atmega16a) usbconfig.h — параметры USB, порт подкючения линии D-, ток |
Откройте main.c и обратите внимание на 2 области кода, которые там выделены — программа реакции на USB пакет и настройка портов. В этих областях надо вставлять свой код, остальное можно не трогать. Для примера там уже стоит код, его можно менять. В приходящем пакете USB с компьютера есть 2 параметра — p1 и p2, которые передаются из программы в виде параметров, в зависимости от их значений можно менять состояние линий микроконтроллера (портов) в программе реакции.
2) Скачиваем программу WinAVR и устанавливаем, она нужна для создания HEX-прошивки микроконтроллера AVR, сайт WinAVR
3) Запускаем командную строку Windows, которая находится тут c:\Windows\System32\cmd.exe появляется чёрное окно. В этом окне вводим 2 команды (набираем команду, нажимаем enter):
Подготавливаем программу МК
Также надо прошить fuse-биты настроек микроконтроллера, чтобы изменить его тактовую частоту на совместимую с USB стандартом. Встроенной подходящей частоты нет, поэтому применяется внешний источник тактовой частоты 12 МГц. Для прошивки настроек fuse-битов устройство с программатором надо доработать, подключить к микроконтроллеру внешний кварцевый генератор 12 МГц и 2 конденсатора 20 пФ по схеме как на устройстве USB, т.е. в случае с ATTiny2313A к линиям PA1 и PA0, и также соединить это всё с минусом питания, вообщем как на схеме USB устройства, смотрите на фото ниже как подключено. Это нужно для того, чтобы устройство продолжило работу после установки для него нового источника тактового сигнала, именно этот источник 12 МГц и подключаем. Не забудьте кроме программы также прошить fuse-биты.
Меняем настройки программатором





При этом установите такие биты конфигурации:
Для ATtiny2313A (наш случай):
CKSEL0..3=1111 SUT0..1=10 CKOUT=1 CKDIV=1 RSTDISBL=1 BODLEVEL2..0=101 WDTON=1 SPIEN=0 EESAVE=1 DWEN=1
Установите В справочнике эти fuse-биты и прошейте их в микроконтроллер полученной строкой через программу AVR dude, о том Как прошить тут. Также дам на всякий случай fuse-биты для других микроконтроллеров.
Для ATmega8A:
CKSEL0..3=1111 SUT0..1=10 BODEN=0 BODLEVEL=1 BOOTRST=1 BOOTSZ0..1=00 EESAVE=1 CKOPT=0 SPIEN=0 WDTON=1 RSTDISBL=1
Для ATmega16A:
CKSEL3..0=1111 SUT0..1=10 BODEN=0 BODLEVL=1 BOOTRST=1 BOOTSZ0..1=00 EESAVE=1 CKOPT=0 SPIEN=0 JTAGEN=1 OCDEN=1 LB1..2=00 BLB=0000
Теперь когда программа написана и записана в микроконтроллер, можно проверить правильность сборки устройства. Напишите программу на компьютер для USB связи, читайте далее как это сделать и при этом в процессе будет установлен фильтр для возможности опознания устройства. Подключите устройство к USB порту компьютера, установите фильтр как далее будет описано, если все правильно было собрано и установлено, то оно будет обнаружено и опознано как LEDCtlHID. Если этого не произошло, то ищите проблему и ошибки при сборке устройства или при установке программ, еще раз внимательно все сверьте и проверьте, что ничего не пропущено и что все контакты соединены или запаяны как надо. Бывает проблема тут, если пайка была совершена с неконтактами, с не правильными контактами или не всеми контактами, а также что элементы схемы были повреждены высокой температурой паяльника, и устройство поэтому не работает. Важно собирать устройство именно на макетной плате первый раз.
Программа на компьютер для USB связи
Для начала сделаем простую консольную программу, потом будем делать программу с окнами.
1) Скачиваем исходные коды консольной программы OpenRobo, которые собраны из исходников проектов V-USB и LibUSB. Распаковываем архив на диск C:\, после чего содержимое директории C:\OpenRobo должно выглядеть так:
![]() |
Назначение файлов: include и lib — это драйверы LibUSB для доступа к USB из программы set-led.c — это исходник нашей программы |
2) Скачиваем программу LibUSB, которая нужна для работы с устройством из программы. Устанавливаем. Сайт разработчика LibUSB. После установки подключите собранное устройство к USB. Запустите через меню Пуск/Программы/LibUSB-Win32/Filter Wizard. В открывшейся программе выберите для установки фильтра на порт, в следующем списке выберите только что подключенное устройство, его можно найти по vid:16c0 pid:05df. Нажмите кнопку Install. Если устройства в списке нет, значит вы либо не правильно собрали устройство и оно не опозналось, либо драйверы уже были установлены. В случае смены порта подключения устройства, надо опять заходить и устанавливать фильтр, иначе программа не сможет распознать устройство. Обязательно подключайте устройство USB к тому же порту USB, что был подключен при установке фильтра!
3) Скачиваем программу MinGW, которая нужна для сборки программы из исходника. Устанавливаем. Сайт разработчика MinGW. После установки зайдите в Панель управления, Система, Дополнительные параметры системы, Дополнительно (вкладка), Переменные среды (кнопка), Системные переменные (список), Переменная Path (найти в списке, выделить, нажать кнопку Изменить). Дописываем в поле Значение переменной в конце ;c:\MinGW\bin\ и нажимаем ОК, надеюсь вы установили MinGW в C:\MinGW, иначе надо путь другой прописать.
Настраиваем системную переменную Path для MinGW
Подготовка программы ПК
Изменяем программы под наши нужды
Берём под контроль все порты, прибавляем свои функции. И так, теперь в C:\OpenRobo размещены исходные коды программы для компьютера, а в C:\OpenRoboFW исходные коды программы для микроконтроллера. Их можно изменять, но после каждого изменения надо их занова пересобирать (и перепрошивать микроконтроллер), делать это теперь вы умеете — см. выше пример — пересобрать обе программы можно 4-мя командами в cmd:
Изменение программы для микроконтроллера
1) Открываем файл C:\OpenRoboFW\main.c, находим там область кода, обозначенную как настройка портов, надо установить все свободные порты на вывод командами DDR, меняем содержимое области на следующий код. Код для main.c:
2) Открываем файл C:\OpenRoboFW\main.c, находим область кода, обозначенную как программа реакции на USB пакет, сделаем, чтобы по команде зажигались светодиоды на всех свободных линиях. Меняем содержимое области на. Код для main.c
К тому же неплохо бы научится вставлять свои функции, которые будут выполняться по вашим командам, пока есть только on, off, status, нужно добавить еще команд, например добавим команду discoteka, по которой будет вызываться какая-нибудь наша функция в микроконтроллере, например — светодиоды горят через один на порте B. Добавим в микроконтроллере обработку дополнительных кодов, пусть это будет код 2, т.к. 1 и 0 уже используются для функций on и off, из программы для компьютера будем посылать потом микроконтроллеру код 2 функцией, вызываемой по команде discoteka. Опять меняем файл C:\OpenRoboFW\main.c, область реакции. Код для main.c
Изменение программы для компьютера
1) Открываем файл C:\OpenRobo\set-led.c
2) Надо научиться отправлять микроконтроллеру более сложные сообщения, при приеме которых он будет выполнять нужные функции. Сейчас отправляется только 2 сообщения в переменной isOn — 0 = выключить светодиод, 1 = включить светодиод. Научимся отправлять также код 2 = выставить светодиоды через один на порте B (в предыдущем примере мы подготовили микроконтроллер для обработки этого кода, теперь просто пошлём его программой с компьютера).
3) Редактируем файл set-led.c вставляем сверху от строчки
Обратите внимание на функцию usb_control_msg, в ней можно передать 2 изменяемых параметра (в первом у нас передаётся 2 или переменная isOn, которая равна 1 или 0), следующее число (там стоит 0) может передать еще 1 значение, например, 1 переменная может быть всё также быть изначальной командой на on или off, а второй переменной можно передать, например, номер порта, который следует включить. Получить доступ к этим параметрам в программе для микроконтроллера можно по именам p1 и p2, для этого примера p1=2, p2=0.
Как сделать программу для Windows
Чтобы создать программу для Windows, скачайте бесплатное средство разработки программ для Windows . На указанной странице найдите в середине где-то по названию продукт Microsoft Visual C++ 2010 Express и установите его. Но перед этим проверьте, что у вас не установлена программа .NET Framework версии выше 4. Если такая установлена в вашей системе — перед установкой удалите ее. В комплекте будет поставлен фреймворк нужной версии 4 автоматом. Иначе у вас не будут работать проекты, будет возникать ошибка — Microsoft Resource File To COFF Object Conversion не работает при попытке компиляции проекта. Windows update автоматом попытается поставить последнюю версию .NET Framework, нужно такую установку отменить — не перезагружать компьютер с новыми обновлениями, а зайти в Windows Update и снять галочку напротив фреймворка.
1) Заходим на сайт, выбираем русский язык, нажимаем INSTALL NOW.
2) После установки запускаем, нажимаем Создать проект. Для начала создадим простую программу с 1 кнопкой — нажимаем эту кнопку, текст в ней меняется.
3) Выбираем шаблон Приложение Windows Forms, внизу вводим название программы, нажимаем OK.
4) Перетаскиваем справа элемент Button на центральное окно с формой и оставляем его внутри формы.
5) Кликаем на форму и на кнопку, при этом справа внизу есть окно Свойства, его содержимое меняется. В этом окне задаём необходимые свойства элементов — текст кнопки и окна. Редактируем свойство Text, пишем там любой текст, например, Моя кнопка. Текст на кнопке меняется, это видно на форме в центральном окне.
6) Теперь сделаем так, чтобы при нажатии на эту кнопку, ее свойство, которое определяет текст на ней менялось на другое. Так же можно менять любые другие свойства.
7) Делаем двойной клик на кнопке Моя кнопка, которая находится в форме в центральном окне, попадаем в файл кода Form.h (его можно выбрать в любое время слева в меню). В этом файле после двойного клика была создана функций button1_Click (остальной код автоматом был создан по шаблону при создании проекта), курсор находится внутри нее, нажмите Enter, чтобы создать пустую строку, куда и будем писать код.
8) Как можно видеть в этом же файле чуть повыше есть разделы — button1 и form1, там заданы начальные установки для элементов — кнопки и формы. Воспользуемся ими, скопируем внутрь нашей функции клика по кнопке (это место отмечено красной стрелкой) строчку, где устанавливается название кнопки, а именно this->button1->Text = L»Моя кнопка»; Только текст Моя кнопка изменим на Работает!
9) Нажимаем на кнопку с зеленым треугольником, через некоторое время наша программа запустится (если вы не совершили ошибок) и при нажатии на кнопку, текст внутри меняется с Моя кнопка на Работает!
10) Забрать готовую программу (файл .exe) можно в директории текущего пользователя
Весь процесс показан на картинках.
Крепление плат с USB-разъемами на панель

В своих разработках мне довольно часто приходится использовать интерфейс USB. Ничего с этим не поделаешь – больно уж он нравится заказчикам, что, конечно, неудивительно. Я и сам люблю USB, хотя бы уже́ за то, что он позволяет запитать поделку без дополнительных источников/брикетов. И вроде бы всем хорош этот интерфейс, да вот только разъемы у него дебильные, ибо во-первых, все они прямоугольные/квадратные, а во-вторых (и в самых главных) – не предусматривают штатного крепления самих себя на панель устройства. В связи с этим запилил заметку про то, как можно крепить платы с USB-разъемами к панели устройства, и в лучших традициях сообщества решил сразу поделиться опытом с читающими мои заметки камрадами. Отмечу, что здесь я лишь обрисую в общих чертах сам принцип крепления платы с USB-разъемом к панели. Если же эта идея вам подходит – вот тут есть конкретные размеры предлагаемой конструкции и все рекомендации по ее реализации.
В общем случае плата с USB-разъемом, засунутая в корпус, будет выглядеть так:

Ну а отдельно от корпуса – вот так:

На этом рисунке видно, что для крепления платы к панели используются обычные «стандартные» шестигранные стойки со сквозной резьбой М3 (длина стоек – 20мм). Подобные стойки проходят по категории «говно и палки», т.е. есть практически везде и сто́ят копейки (в случае моего любимого магазина «Чип-НН» это будут PCHSS-20 (металл) и HTP-320 (пластик)). Правда, в «чистом» виде такие стойки для рассматриваемого крепления плат не подходят. Поэтому их надо немного допилить. Допиливание заключается в изготовлении всего одного сквозного отверстия с резьбой М3 на расстоянии 15мм от края стойки:

(на данном рисунке все размеры, относящиеся к допиливанию стойки, отмечены красным цветом).
Допиленную стойку надо прикрутить к плате. Для этого в плате делаются дырки диаметром 3,2мм, через которые винтами М3 и прикручиваются стойки:

Ну а далее полученную конструкцию можно устанавливать на панель с заранее изготовленными крепежными и «разъемными» отверстиями:

Замечу, что предложенный механизм крепления плат к панелям нужно рассматривать лишь как общую идею, использующую готовые дешевые и доступные комплектующие. А мелочи в каждом конкретном случае могут различаться. Например, если до́ма валяется куча винтов М2.5, то для крепления платы к стойкам можно использовать именно их, а не «тройку» (практика показывает, что даже толщины́ крепежа М2 в большинстве случаев вполне хватает). Можно резать резьбу в плате, а не в стойке (для домашних условий это обычно более предпочтительный вариант). Можно вообще обойтись без нарезания резьб, а использовать гайки (хотя это не так удобно). В общем, вариантов масса – здесь приведен лишь наиболее удобный лично для меня.
Ну а на сегодня, наверное, всё. Желаю удачи при установке плат с USB-разъемами в корпус – все необходимые для этого рекомендации есть в оригинале заметки. Если же останутся какие-то вопросы – добро пожаловать в камменты.

