Yet Another Development Board или Mini64

Какое-то время назад решил и я сделать себе девборд для STM32…

Предыстория и (частично) мотивация

Прототипом моей платы послужили сразу две платы из серии Maple — оригинальный Maple/Maple RET6 и Maple Mini (подробно об этих платах можно почитать вот тут). Хотелось иметь плату совместимую с бредбордами и макетками (чего нет у Maple, но есть у Mini) и под 64-выводной корпус (чего нет у Mini, но есть у Maple) и потенциальной возможностью ставить процессоры семейств F2 и F4 (этого нет ни у одной из этих плат, правда, есть сторонняя разработка под формат оригинальной Maple). Ориентация на 64-выводной корпус вызвана тем, что, во-первых, в 48-выводном нет версий с большими объемами памяти, а во-вторых, в новых сериях такой корпус вообще отсутствует. Такой выбор прототипов и базовых решений и послужил основанием для выбора имени платы — Mini64.

Я постарался максимально учесть плюхи Maple но, по возможности, сохранить совместимость с ней. В итоге получилась плата (и не одна, на самом деле), которая ставится в бредборд, имеет разведенные на внешние контакты практически все выводы контроллера (а так же входное нестабилизированное напряжение). Из Mini (помимо совместимости с бредбордами) в мою плату перекочевал второй светодиод, подключенный на тот же порт/пин, что и у Mini (так что в итоге на плате два пользовательских светодиода). Мне показалось удобным то, что светодиод на Mini разведен на вывод, на котором есть PWM (на оригинальной Maple на соответствующем выводе PWM не поддерживается). Естественно, то, что было мне не нужно, попало под нож. Это коснулось, в первую очередь, возможности зарядки аккумуляторов и отдельного разъема под JTAG (вместо него есть SWD). Кое-что я добавил (в частности, второй кварц для RTC). Ну и в регуляторе напряжения я поставил микросхему в корпусе способном рассеять больше тепла (о выборе регулятора см. ниже), что позволяет запитать значительно большую нагрузку, чем это могут сделать оригинальные Maple. Наконец, для почти всей пользовательской периферии установленной на плате (в частности светодиодов) есть возможность полного отключения, что может понадобиться для полнофункционального использования этих портов в своих задачах.

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

Описание платы

В аттаче лежат схема и разводка платы варианта, в котором поддерживаются только контроллеры семейства F103. Так случилось, что этот вариант самый проработанный из опробованых в железе. (Схема и разводка варианта с поддержкой F2/F4 тоже готовы, но плата как раз в процессе изготовления, как запущу, выложу и этот вариант).

Итак фичи:

  • STM32F103RBT или STM32F103RЕT
  • Аппаратная совместимость с Maple (Maple RET6)
  • Кварцы (основной) 8Mhz и 32768Hz (RTC) (второй кварц может быть отключен с освобождением соответствующих выводов контороллера)
  • Пользовательская кнопка
  • Два пользовательских светодиода (могут быть отключены, с полным освобождением соответствующего вывода)
  • Все выводы контроллера разведены на разъемы

Баги:

  • Плата не совместима с Maple по нумерации пинов. Те номера, которые проставлены, это собственные номера моей платы и они не совпадают с нумерацией пинов у оригинала.
  • Нет отдельной поддержки в libmaple/wirish для этой платы (а надо ли?)

Комментарии к компоновке и разводке платы

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

Плата содержит две пары однорядных разъемов — внешнюю и внутреннюю. Внутренняя пара ориентирована на установку плат расширения, внешняя — соответственно, на внешние подключения. Расположение разъемов на данный момент зафиксировано и врядли будет меняться в будущем. Расстояния между разъемами в паре (почти) точно попадает в дюймовую сетку. «Почти», поскольку плата сделана в метрической системе, но разница там мизерная, отклонения при монтаже разъемов могут быть значительно больше этой разницы. Внешняя пара расчитана на обычную запайку, а внутренняя запаяна со стороны дорожек.
Все резисторы-конденсаторы-светодиоды в корпусах 0603. Диоды — SOD-323.

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

Комментарии к схеме

Регуляторов напряжения два — один основной и один для аналоговой части. Насколько это помогает я не знаю, поскольку до замера характеристик АЦП пока руки не дошли. В качестве основного регулятора я ориентировался на два возможных варианта: LM3940 и LM2937. Первая позволяет отдавать в нагрузку до 1А, но максимальное входное напряжение ограничено 9 вольтами. Вторая выживет даже если на вход подать скачек до +60В (максимальное постоянное — 26В), но в нагрузку может отдать только 0.5А. Впрочем второй регулятор, который питается от того же входа, ограничивает максимальное входное напряжение на уровне 16В. Можно попробовать от него отказаться и питать аналоговую часть через дроссель от основного питания (в некоторых вариантах я так и делал), но без результатов тестирования АЦП сказать, во что это выльется, сложно. Да, хочу обратить внимание, что названные выше регуляторы не совместимы по разводке с популярными LM1117. Причиной выбора LM3940 и LM2937, помимо напряжений и токов, стало еще и то, что у них вывод (лепесток) которым они, по идее, должны паяться к слою платы играющему роль радиатора, является землей. Это дает возможность использовать весь полигон земли в качестве теплоотвода.

В качестве регулятора для аналоговой части я использовал LP2985А. Особых причин выбирать именно такие микросхемы не было, просто они были под рукой и, вроде как, неплохо подходят для этой цели. Распиновка у них «индустриально-стандартная» и подходящих микросхем вагон, например TPS76333.

Указанные на схеме диоды расчитаны на 20В и 1А, но в этой серии есть и на 40В/60В (в том числе на 2А). Из аналогов PMEG2010 на вскидку находится BAT760.

Микросхема в схеме защиты/дисконнекта USB — USBUF02W6. Ее аналогом по распиновке и размерам является STF203, вполне возможно, что есть еще варианты. С небольшими изменениями в плате можно поставить USBUF01P6, но она несколько мелковата для ручной пайки.

«Цифровой транзистор» в схеме дисконнекта USB — PDTA114ET, но подойдет почти любой из PDTA1xx подходящий по корпусу и сопротивлениям на подтяжку и в базу. Годится так же MMUN2111 (наверняка в этой серии есть еще подходящие).

Кварцы использовались SMD-шные, но я прорабатывал варианты и с более распространенными кварцами (KX-KT, KX-3H для основного и КХ-26 для часового). В принципе, все ложится, только дырок больше сверлить прийдется (ну и плату поправить придется, конечно).

В целом, все использованные компоненты не являются дефицитными или сложно добываемыми, хотя не все есть у одного продавца (во всяком случае в Киеве).

Софт

Поскольку плата аппаратно совместима с Maple, от нее же (или от RET6, смотря какой контроллер стоит на плате) можно взять и готовый бутлоадер вот тут. Там же описана и процедура заливки бутлоадера. В моей плате нужные для заливки через последовательный порт ноги контроллера разведены на один разъем, это, соответственно, контакты 8 (земля), 5 (RX), 4 (TX) на X4. Для заливки я пользуюсь самодельным USB-to-serial адаптером на CP2102 и программой stm32flash, которая работает значительно стабильнее и надежнее, чем скрипт, на который ссылаются в описании процедуры прошивки.
После прошивки бутлоадера, плата совершенно нормально работает с Maple IDE с установками для Maple/Maple RET6.

Ну и, конечно, фотки:
Плата готова к монтажу

Участки платы с плотной разводкой

Тут будет USB disconnect

Собранная плата в разных ракурсах




Ну и, конечно же, традиционно мограем одним светодиодом и (менее традиционно) плавно зажигаем и гасим другой


Планы на будущее

Есть мысль попробовать использовать импульсный регулятор для использования платы в промышленных разработках. Места на плате достаточно (я делал разводку), а сам регулятор (на LM2734) отдельно я уже опробовал. Большой плюс такого варианта — питать можно от чего угодно в широком диапазоне напряжений и при этом снимать около ампера для периферии не боясь перегреть или сжечь регулятор. Из минусов — аналоговую часть тогда придется питать через дроссель от основного питания, что, вероятно, скажется на уровне шумов. Соображения (по делу) по этому поводу категорически приветствуются.

Update
Прикрепил обещанную версию с поддержкой STM32F2xx/STM32F4xx. На ней также добавлен держатель для батарейки и немного потюнена разводка. Заодно заменил кварцы, кнопки и регулятор напряжения на более распространенные. Ниже приведены фотки этого варианта:






Держатель пришлось запаивать почти в самом конце (после него только разъемы). Поскольку доступиться до центрального вывода ("-" батарейки) после вставки невозможно, я сделал так: залудил центральный вывод и повесил на него каплю припоя примерно в том месте, где он должен касаться платы. Площадку тоже смочил припоем и флюсом. Затем вставил держатель и прогревая центральный вывод с обратной стороны платы «посадил» его на место. Второй контакт доступен для пайки, так что тут никаких особенностей нет.
И еще. Мне нужен был вариант в котором боковые разъемы доступны и сверху и снизу, поэтому, как можно заметить на фотках, на разъеме не стоит штатный держатель контактов, а сами контакты запаяны примерно посредине (на самом деле вниз они чуть длиннее, но разъемы нормально садятся на обе стороны). Делалось это просто — разъем вставлялся длинными контактами в плату с обратной стороны и запаивался. Затем я аккуратно снял держатель поддевая его пинцетом (обычный монтажный пинцет с тонкими губками). Если бы можно было легко приобрести вариант разъема с удлиненными контактами (как, например, на дискавери), то снимать держатель было бы не нужно.
  • +4
  • 31 декабря 2011, 05:16
  • evsi
  • 2

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

RSS свернуть / развернуть
Гут, интересная платка.

Тоже любите фотографии в теплой гамме? :)
0
  • avatar
  • _YS_
  • 31 декабря 2011, 12:08
Я мобилой фотки делаю, какую гамму даст, такая и есть :)
0
Фото в теплой гамме сделаны ламповым фотоаппаратом?
0
Ага. На суперортиконе. :)
0
Интересные комментарии. А главное — по делу :)
0
Миленько. Хотя некоторые участки я бы под безмасочный процесс оптимизировал.
Кварц аццкий. А чем не устроил смд-шный, который как низкопрофильный выводной с загнутыми ножками?
Нет отдельной поддержки в libmaple/wirish для этой платы (а надо ли?)
А почему бы и нет?

Алсо, чем лудил так няшно?
0
  • avatar
  • Vga
  • 31 декабря 2011, 13:07
Тут смотря что считать обычным. В таком формате существует несколько стандартных типоразмеров и как минимум несколько производителей выпускают в нем кварцы. Самый популярный — 5.0x3.2 (у Geyer это серия KX-9). Я воспользовался кварцем чуть поменьше (КХ-7), но место под него оптимизировано для ручной пайки — край площадки торчит из-под корпуса. «Низкопрофильный выводной с загнутыми ножками» aka KX-KT не устроил тем, что занимает много места. В такой ситуации аналогичный выводной кварц даже удобнее (он уходит на другую сторону платы и на его месте можно расположить, например, конденсаторы). Я делал несколько версий на KX-3 и KX-KT, и отказался от них когда решил добавить на плату второй кварц и батарейку. Описанная в статье плата — переходная (второй кварц уже есть, а батарейки еще нет). В борьбе за свободное место пришлось отказаться от более распространенных кварцев.

Лудил химической лудилкой, у нас можно купить готовый раствор — налил немножко, бросил плату, через полчаса-час достал готовую и промыл. Качество лужения лучшее из того, что можно сделать в домашних условиях.
0
Лудится таким образом уже после нанесения маски? До маски наверное смысла нет, дорожки, я так понимаю, толще почти не становятся?
0
Да, лудится, конечно, после маски. Маска защищает дорожки лучше лужения, да и расход раствора так значительно (в разы, а то и на порядки) меньше.
0
По поводу описания платы. Наличие описания полезно только если работать с Maple IDE или, в крайнем случае, писать с использованием wirish-а, а это может быть полезно только в самом начале разборок с STM32 и только пользователям пришедшим с ардуины. Да и то, вполне достаточным может оказаться просто составить табличку соответствия пинов Maple номерам на плате (что бы упростить подключение) и пользоваться оригинальным описанием Maple. Так что я пока не определился, нужно ли это вообще.
0
Ну почему, насколько я смотрел wiring — довольно удобный фреймворк, почему бы его и не использовать?
0
Вобщем, нужно подумать еще. Сложностей особых там нет, перепиливания готовых исходников для Maple/Maple RET6 вполне достаточно, но не хочется заниматься сопровождением :)
0
Очень красиво и аккуратно просверлены отверстия. Это руками или станок какой?
0
Я сверлю твердосплавами, там руками расход дикий получается — одно отверстие на одно сверло :) Потому только станок. Точнее, дремель (самый дешевый, на рынке он всего 250грн, что сравнимо с китайцами) и дремелевская же станина (Dremel WorkBench, цену точно не помню, что-то в районе 1000грн). Вместе получается очень приличного качества станок, отлично приспособленый для работы с твердосплавным инструментом, и посверлить плату, и обточить по размеру и паз фигурный вырезать — без проблем (хотя, конечно, получается не все и не сразу :) ). Даже на средних оборотах (а максимум, кстати, аж 37тыс.) сверло входит в плату как в бумагу.
0
Я как раз про это и спрашивал. Просто можно в станке а можно дрельку и руками держать, но все равно качество и повторяемость зависит от рук сверлильщика. В случае со станком повторяемость конечно выше. Я просто думал может какой станок с ЧПУ использовался, может и самодельный. А насчет твердосплавных фрез(или всерла?) уж не сильно они и на сверла похожи, когда то пробовал. У них один недостаток — при большой подаче вместо отверстия фаска получается)))).
0
Самодельный станок с ЧПУ есть в планах, но это врядли скоро.

У твердосплавов много преимуществ, только реализовать их без станка (хотя бы такого примитивного как у меня) невозможно. Для меня главным качеством была способность твердосплавов делать акуратные отверстия не сминая фольгу (к слову, сверла и фрезы у твердосплавов отдельно, сверла категорически не держат боковые усилия). Вторым, не менее важным — способность сверлить много отверстий (я так толком и не знаю насколько много, обычно у меня сверла гибнут от моих кривых рук задолго до того как затупятся). Обычные сверла со стеклотекстолитом не дружат категорически, 8-10 отверстий и сверло можно выбрасывать (или точить, один хрен снимать/вставлять/центрировать). Третим, иногда очень важным стоит назвать способность сверлить отверстие как самостоятельную сущность, даже если оно перекрывается с другим отверстием (что часто случается, когда нужно, например, исправить плюху при сверлении). Обычным сверлом такой трюк не получается.

К слову, у твердосплавов обнаружилось одно интересное свойство — если в центре отверстия нет фольги и кружок без фольги достаточно маленький, то наблюдается эффект самоцентрирования — при подаче сверла достаточно попасть в центральный кружок и чуть приотпустить плату, что бы она могла двигаться в горизонтальной плоскости. Плата мгновенно сдвигается на место, остается ее только прижать снова и продолжить подачу. Получается аккуратное отверстие в центре пятачка или, как минимум, достаточно близко к центру. При определенном навыке получается быстро и достаточно качественно. Плата на фотке не лучшее из того, что у меня получалось (в смысле отверстий), однако особых плюх на ней нет. И я совсем не уверен, что даже такой результат реально получить обычными сверлами, тем более без станка.
0
обычно у меня сверла гибнут от моих кривых рук задолго до того как затупятся
Гм, мож это потому, что у меня твердосплавки толстые (0.8 и 1.0), но я еще ни одного не сломал. А вот затупить затупил как минимум одно. Причем текстолит оно по прежнему сверлит, а вот алюминиевую пластинку в полмиллиметра пять минут грызет. И это при том, что я вручную сверлю.
0
Обычно у меня они ломаются если я по невнимательности допускаю, что бы плата имела возможность двигаться по вертикали. Впрочем, последний раз это случилось довольно давно, видимо постепенно руки выпрямляются :)
0
За ссылку на stm32flash спасибо, не знал о нем.
0
Добавил вариант для F2/F4. В принципе, он был готов давно, просто я не хотел его выкладывать до того, как его спаяю и проверю. В этом варианте я постарался учесть несколько настороженную реакцию на некоторые компоненты использованные в предыдущей версии, поэтому кварцы тут самые обычные трухольные «лодочки» (основной) и «трубочки» (RTC), кнопки — более распространенные трухольные вместо SMD-шных, а основной регулятор напряжения — традиционный 1117. Регулятор напряжения для аналоговой части менять не стал, учитывая, что туда можно поставить практически любой в корпусе SOT23-5. Наконец, несколько оптимизировал разводку USB дисконекта, по мелочи попереносил некоторые компоненты и добавил держатель для батарейки. К сожалению, полноразмерный держатель под широко распространенную 2032 сюда не становится по многим причинам (на верх не влазит из-за размера, а выносить его на нижнюю сторону смысла большого нет, плата перестанет нормально становится в бредборд), поэтому использован держатель Keystone 500 (в Киеве они свободно лежат в «радиомаге»), который установлен на верх. У этого держателя есть одна полезная особенность — он приподнят над платой на ножках, что позволяет ставить его над SMD компонентами. К сожалению, с расположением компонентов я чуть-чуть ошибся и одна нога попадает прямо на конденсатор в регуляторе напряжения. Вариантов тут два — чуть-чуть подрезать ногу (как это сделал я) или не паять этот конденсатор совсем. Этот конденсатор, подключенный к так называемому байпасу, позволяет уменьшить шум регулятора. Насколько он полезен в реальной жизни я пока сказать не могу, поскольку замеры АЦП не делал. В оригинальном Maple на этом месте стоит MCP1701, который подобной фичи не имеет.
0
  • avatar
  • evsi
  • 09 января 2012, 18:02
Добавь фотографий.
0
Добавил.
0
Где берут такие длинные штыри? Сколько стоит одна линейка в 40пин?
0
А не, гоню. Тут обычная PLS
0
Точно. Просто запаяна несколько не традиционно. Правда, это работает только на платах 1.5мм и тоньше, ну и отверстия под разъем я сверлю 0.85 для такого варианта, иначе есть шанс оборвать при вытаскивании разъемов.
0
PLS-40L
0

Такие? сбоку с удлиненными ногами. верхние в Farnell можно заказать, нижние брал в кварце www.quartz1.com/ сайт дерьмо полное правда… я в магаз езжу… благо недалеко от работы… только вот очереди…
0
Вы не могли бы привести линк на страницу в фарнеле или, хотя бы полное название?

По поводу www.quartz1.com: увы, Москва для меня не вариант.
0
по поводу фарнелла не могу, мне подарили, сказали покупалось в фарнелле) на вопрос где брать такие)
насчет нижних могу купить, переслать почтой. не вопрос. почта не далеко от дома, магаз тоже пару остановок от метро.
0
но правда заразы недешевые ((( я хотел 10к взять а в результате взял только две… зеленая пупырчатая душить начала)
0
ну тада я сегодня куплю книги, завтра на оставшиеся куплю этих длинных сколько влезет, мне они тоже нужны для шилдов самопальных ))) и тада скоопереируемся. если надо будет перешлю )
0
Спасибо, мне сейчас особо не горит. Хотя верхние ну очень привлекательно выглядят, видимо поищу где в онлайне их можно купить. Заодно кнопочки закажу, мне тут подкинули партнамбер на весьма симпатичные маленькие кнопочки, вот такие. На мои платы это как раз то, что надо.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.