DevBoard STM32 light - сделай сам, бюджетно, часть 1

Хочешь сделать хорошо — сделай сам.

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

В первую очередь отпали AVR — мощи мало, ножек тоже, порядка — никакого.

Далее были отсеяны msp430 — люблю я msp430, но опять же мощи мало и цена кусается: корпус 20 ног с 16кб памяти стоит 100-200 р. И это только сам МК! Дешевле ланчпад с ti.com заказать.

В результате было решено обратиться к камням stm32f. Мощи достаточно, ножек — сколько желаешь, порядок — присутствует, что показали опыты программирования. Цены — почти сказочные (но не в России).

Поиск недорогих development board's под stm32 не увенчался успехом. Борды под интересующие камни на 64-100 ножек наши восточные братья продают минимум за $10. Рассмотрение их фоток с увеличением привело к выводу — паяют в гараже. Куда там роботы, волновая пайка и космические технологии! Я и сам так паять умею. А PCB, все-таки закажу, китайцы лучше меня их делают.

Под катом схема и подробности.


Технические требования.

  1. МК серии STM32F1xxR — 64 ножки, 44 IO-пина. Пока кандидата 2 — STM32F103RBT6 и STM32F103RСT6. С ними я уже работал.
  2. Размер платы — с коробок, ну или с Zippo. Размеры диктуются как практикой — чем меньше, тем проще впихнуть в корпус, так и финансами — seeedstudio предлагает дешевый PCB-сервис 5х5 см.
  3. На плате должны быть кварцы, кнопка и светодиод.
  4. Разъем программатора — SWD. JTAG у меня тоже есть, но уже больше года пылиться на полке, так как SWD-удобнее и меньше места на плате занимает.
  5. USB, оформленный по-человечески, то есть разъем microUSB, с подтяжкой D+ на отдельной ноге МК.
  6. Поскольку есть USB, должен быть и LDO-регулятор на 3.3V. Для МК с обвесом нужно примерно 100 мА.
  7. Вынести USART1 и boot0/boot1 на отдельный разъем
  8. Возможность подключения батарейки к RTC — еще один разъем
  9. Разъемы выводящие питание. Почему никто не догадался сделать их побольше? Куда периферию подключать?

Как оказалось, выбор камня идеально подходит под мини-плату. 38 пинов помещается на двух сторонах платы размером 5х3.7 см. Остальные пины задействованы по списку выше на кнопку, диод, USART, USB, кварцы.

ТЭО (а стоит ли игра свеч).

  • Камни: STM32F103RBT6 312 р. за 5 штук и STM32F103RСT6 за 568 р, итого 880 р. Уже куплены на распродаже 15 марта, вместе с говорящим хомячком :)
  • USB-разъемы — примерно 100 р., aliexpress.
  • Прочая мелочевка — 400 р., wayengineering.
  • Платы — примерно 600 р., seeedstidio.
Итого порядка 2000 р. на 10 плат. Цены приведены реальные, все, кроме плат, уже куплено и в пути. Свою работу я не считаю, так как потыкать паяльником в микросхему или развести замысловатую плату для меня это удовольствие, а тут оно еще и бесплатное.

Вывод: вполне себе нормально. Психологический барьер в стоимость баклажки коньяка не превышен, то есть запороть или спалить плату будет не жалко. А еще это в 2 раза дешевле чем на aliexpress/ebay, и это радует мой семейный бюджет.

Схемотехника.

Собственно схемотехника простая и типичная. Отклонения от традиционных плат следующие:
  • Подтяжка USB сделана полевиком, в отличие от традиционных схем на 2х биполярных транзисторах. Во-первых нужно на это в 2 раза меньше компонентов, во-вторых, мелкие P-MOSFET'ы у меня уже есть и проверены.
  • Компоненты навешаны с обоих сторон платы. Для экономии места.
  • Вместо привычных для китайцев регуляторов типа LM1117-3.3 применены HT7333 — LDO на 250мА с выходным каскадом на полевике. Обещают ток утечки не более 4мкА по даташиту, самое то для батарейного питания.
  • Разъемы раскиданы по плате где попало — для удобства разводки и экономии места. Для кнопочки сделан отдельный разъем, чтобы ее можно было вынести на корпус.
  • Порты на 2х разъемах по периферии платы, между ними соблюдено расстояние кратное 2,54 мм, то есть при желании можно запаять разъем ногами вниз и воткнуть в макетку.

Расположение компонентов получилось плотное. ЛУТом я бы такую плату неасилил. Точно знаю. Пробовал даже.

Поскольку плата вышла меньше условного квадрата 5х5, сбоку был прикручен паттерн под батарейный отсек CR123A, зарядка и протекшн для литий-полимерного аккумулятора. По умолчанию батарейка подключена ко входу LDO-регулятора, но через диод, чтобы не заряжаться самопроизвольно, а вход на зарядку подключен к питанию от USB. Есть джампер для отключения батареи и разъем для съема питания с батареи непосредственно.
Зарядка на TP4057, планирую ограничить ток зарядки 400мА, вполне достаточно для акка 16340, ну и стандартный USB не напряжет.

В архиве схема, плата и библиотеки для DipTrace. В последнем архиве обновил номиналы некоторых деталей.

вид сверху 2

вид снизу 2

Платы еще в процессе. Через пару дней еще раз просмотрю схему и разводку свежим взглядом перед отправкой в SeeedStudio.

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

Приветствую вопросы и критику в комментариях. Может кто заметит ошибки.

По просьбам трудящихся выкладываю картинку, для открытия щелкните по превьюшке:

схема

  • +6
  • 27 марта 2014, 14:01
  • Komimort
  • 2
Файлы в топике: stm32f103rbt6-2-1.jpg, stm32f103rbt6-2-2-3.zip

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

RSS свернуть / развернуть
В самом топике ссылка неправильная на архив.
А можно схему тоже в читаемом формате? Рисуночек там, или пдф?
+1
Ссылку поправил, а как схему выложить не знаю — в DipTrace экспорта в картинку не нашел, а скриншотом мелко будет и нечитабельно. Может кто подскажет как быть.
Качайте DipTrace, там 2 layer'а и сколько-то пинов бесплатно, а где-то здесь на форуме находил ключ для русских на 4 layer'а 1000 пинов.
После P-CAD DipTrace кажется простым и понятным.
0
Плохо искали. :) File->Preview, кнопка Save.
+1
А чем вот этот вариант не подошел?
0
  • avatar
  • evsi
  • 27 марта 2014, 14:45
Размеры, разъемы, способ подвода питания. В общем, по мелочам, но немного не то.
0
Размер поменьше, совместим с бредбордом. Разъемы стандартные. Подвод питания тоже.
0
Моя плата на 10 мм короче, что позволяет сэкономить $5 на seeedstudio. Почти 10% от стоимости.
Разъемы увидел miinUSB (может ошибаюсь) и питание. Зачем? БП под microUSB 1A стоит меньше 100 р, продается на каждом углу.
И вообще, non omnibus eadem placent, nec conveniunt quidem.
Я за видовое разнообразие. В том числе среди электрических моногоножек :).
0
Моя плата на 10 мм короче, что позволяет сэкономить $5 на seeedstudio. Почти 10% от стоимости.
Цена за это — недоступность некоторых ног.
Разъемы увидел miinUSB (может ошибаюсь) и питание. Зачем?
Надежнее держится. Переделка под microUSB вопрос нескольких минут.
0
А почему такой странный (урезанный и нестандартный) разъём программирования?
0
1. Минимализм. Для работы swd достаточно 3х линий.
2. Дырка посередине — чтобы можно было найти ночью с закрытыми глазами :)
0
А программатор же ещё питание ацпирует, не будет ли ругаться, что no voltage?)
0
Нет, проверено. Я подключаю самоделки к бордам типа discovery по 3м проводам. У них и в схемах пин АЦП никуда не подключен.
Или, может, от программатора зависит.
0
А, там он, наверное, на плате на питание заведён. На отдельном программаторе такого уже не будет)
0
Скорее всего будет, мой JetLink8 умеет питание подавать. Другие не юзал. А так — комп под рукой, воткнули в usb-шнурок, вот и питание.
0
ST-Link так не умеет, если не доколхозить дц-дцшкой =)
0
Посмотри схему дисковерей, там пин в воздухе висит, специальная перемычка к программатору и написано что не запаяна.
0
Я про отдельный) В дискаверях вывод-то в воздухе, но вход AIN всё же как-то читерски с питанием связан через делитель. Что и логично, так как программатор с отлаживаемой схемой расположен на одной плате.

Внешнее напряжение т.о. оно не измеряет, если перемычку не ставить и резисторы не долоить=D
0
Это какой то современный фетиш чтоли, раньше все паяли часы и термометры, теперь демоплаты… %)
0
А из чего часы и термометры делать? Я тут сделал погодную станцию на stm32l-discovery, но потом эту плату жалко стало — там проц. низкопотребляющий, LCD, может еще в каком карманном гаджете пригодится. Ну и решил переделать на stm32f. А еще ребенок робота просит. Надо же его на чем-то делать.
0
Все это понятно, имхо существует некоторое засилие демоплатопаяния. Че бы такое спаять… ммм… незнаю… мм, О!, дай-ка я демоплату спаяю :). ИМХО разработка устройств уходит на какой-то 10-100 план, и все паяют демоплаты, только смысл, их и так уже море… и отличаются друг от друга парой соплей на плате и все… Но это мое мнение конечно.
0
Ты наверно прав, что тенденция наличиствует, но это вполне естественный ход: удобно иметь библиотеки под определенный камень и потом их использовать. А где библиотека, там и борда. А готовые борды или дорогие или «на вкус и цвет...». А все остальное — периферия, и подключается по надобности проекта.
А еще модульность имеет неоспоримые плюсы. И устройства становятся вариативными. Захотел — воткнул модуль, захотел — выткнул.
Компы Atari и Amiga вымерли, а IBM живет, потому что модульный. Разделяй и властвуй.
0
Демоплаты разводить прикольно. Ну а поскольку для многих, кто разрабатывает такие платы, это не работа, а хобби, то получение удовольствие от процесса выходит на первый план.
0
Полностью согласен. Чем-то похоже на игру в трубопровод, только правила интереснее :)
0
А в чем фишка R4 и R18? Последовательно соединены 510К и 1К на подтяжку D+?
0
  • avatar
  • ACE
  • 27 марта 2014, 16:03
Забыл резистор на 1.5к в заказ включить. Теперь заказывать ленту за $0.47 и платить $5 за доставку неинтересно.
0
Тогда поправить 510k на 510R.
+2
Будет сделано! Чуть позже…
0
Убрать с платы все не подключенные полигоны (их части)
+1
+Можно схемку в жпг заценить? архив хорошо но не катит)
0
Только не JPG, а PNG.
+2
Смысл? Вихревые токи, наводки и фантомные изображения? Сдается мне, что параллельные проводники будут больше друг на друга наводить, чем проводник — полигон — проводник.
Это можно сделать, но муторно, я там инструментом заливки пользуюсь на всю плату сразу, а так придется хитрые заливки раскладывать.
0
есть инструмент, который в нужных местах убирает заливку.
0
Я тоже грешил этим делом. Вот так
0
USB разъём — может быть есть смысл сделать пару переходных отверстий — зацепиться пайкой фольгу за обратной стороне? Будет крепче чуток.
Финальную версию платы если будут исправления перезальёте?
+1
Не уверен что будет лучше. Паттерн под разъем сделал по даташиту, сам разъем заточен под поверхностный монтаж, дырочки там только для выравнивания, типа «ключи».
Исправления перезалью, может на выходных просмотрю еще раз плату.
0
ну я имел ввиду «скрепить» слои фольги перемычками, чтобы не оторвались по отдельности
+1
Интересная идея! Сделаю несколько vias под разъемом, хуже не будет.
0
Я бы еще увеличил площать медного полигона, к которому припаяны крепежные ноги гнезда. Даташит — это, конечно, хорошо, но отрывает такие гнезда народ без проблем.
дырочки там только для выравнивания, типа «ключи»
Не только. Они принимают на себя сдвиговую нагрузку при втыкании штекера — медь (точнее, клей под ней) хуже держит нагрузки на сдвиг, чем на отрыв.
0
Да, логично, я об этом не подумал.
0
А зачем подтяжка USB через транзистор? Почему бы не прямо на ногу.
0
Если очень грубо обобщить — мощи порта не хватит перетянуть на плюс и порт хоста, и свою ногу. Но это образно. Посмотри как порты устроены, в даташитах обычно рисуют их схемы…
0
А что там перетягивать – 2ма максимум. На F4 Discovery для подтяжки вообще встроенный pullup используется. Правда там насколько помню 6-8к.
0
Это 15-килоомный-то резистор хоста не перетянет? Кажется, ты путаешь STM32 и 80С51.
0
Когда говорю — не перетянет, думаю и о МК и о хосте. И кто знает что и как будет в данный момент времени настроено — не хотелось бы, что встретились два выхода с разными уровнями.
Это конечно можно установить экспериментально… Но я не буду. Не в этот раз.
0
Трансиверы USB должны замыкание терпеть 24 часа без всяких последствий, D+/D- между собой, на землю и даже на VBUS. А через 1.5к резистор встречаться можно сколько угодно, вреда никакого не будет.
0
Ты не забывай, что между пином МК, управляющим подтяжкой, и линией D+ находится резистор 1.5к.
Опять же, поскольку управляющий подтяжкой транзистор у тебя подключен не к питанию USB, а к питанию МК — смысла нету даже в
Стандарт USB требует, чтобы напряжение на подтяжке было только, если на порту есть питание. И если МК питается не от USB и нужна отключаемая подтяжка, то да транзистор нужен.
поскольку при питании не от USB подтяжка тоже будет запитана. Непосредственно от +VUSB ее питать тоже нельзя — подтягивать надо к +3.3В.
0
Транзистор там используют вот почему. Стандарт USB требует, чтобы напряжение на подтяжке было только, если на порту есть питание. И если МК питается не от USB и нужна отключаемая подтяжка, то да транзистор нужен. А у тебя транзистор вообще никакой полезной функции не выполняет. Ток через резистор подтяжки будет не больше 2.2ма. Исток транзистора подключен к той же линии, что и Vdd. Так что резистор вполне можно посадить прямо на ногу. А если не нужен программный дисконнект или дисконнект по сбросу МК, то можно и на Vdd.
0
Думаю, на демо-платах подтяжку делают как раз для случая:
И если МК питается не от USB и нужна отключаемая подтяжка, то да транзистор нужен.

Ну и там она на питание USB +5 завязана, это верно.
Но рассуждение логично. Проверю вариант без транзистора прямо на ногу. Если заработает буду рад.
0
А что за wayengineering? Google выдаёт длинный список компаний не имеющих никакого отношения к электронике.
0
Прошу прощения, неправильно написал, сайт wayengineer. com, сами они из Кантона (Гуаньчжоу), шлют гонконгской почтой обычно, довольно быстро приходят посылки.
0
после этого коммента все ушли в магазин и забыли про топик
0
Вопрос насчёт часового кварца (не только к автору). Насколько я понимаю, используется обычный кварц с нагрузочной ёмкостью 12.5пФ. А в даташите написано:
Caution: To avoid exceeding the maximum value of CL1 and CL2 (15 pF) it is strongly recommended
to use a resonator with a load capacitance CL ≤ 7 pF. Never use a resonator with a load
capacitance of 12.5 pF.
Хотя правильные кварцы я видел только на платах от самой STM, на других платах с чипами STM – обычные.
И хватит ли там конденсаторов на 6пф? В даташите предлагается формула
CL = CL1 x CL2 / (CL1 + CL2) + Cstray, т. е. нагрузочная ёмкость образуется конденсаторами нагрузки, включенными последовательно, и параллельно им паразитной ёмкостью пинов и разводки. Указано, что паразитная ёмкость обычно лежит в пределах 2–7пФ. Тогда для паразитной ёмкости 7пФ ёмкость конденсаторов должна быть: (12.5 — 7) * 2 = 11пФ, а для паразитной ёмкости 2пФ: (12.5 — 2) * 2 = 21пФ, что больше допустимого значения.
Где подвох? И на что может повлиять отклонение нагрузочной ёмкости от рекомендуемого значения, на частоту, стабильность, надёжность запуска?
Интересно что ограничение в 15пФ я больше нигде не видел.
0
У меня есть несколько кварцев 6пФ, я их уже использовал на плате с STM32 и запускал с емкостями по 6пФ каждая. Это дает примерно 5пФ паразитной.
Поскольку емкость дорожек на плате — дело темное (хотя и можно посчитать), я решил взять несколько мелких емкостей и для подстройки, по-моему от 3.3 до 10пФ. Но запустилось с 6пФ и сразу.
От выбора емкости зависит все, что описано — надежность запуска (в первую очередь), отклонение частоты, стабильность. Если делать что-то hardcore realtime, то наверное есть смысл определиться точно и с кварцами и с емкостями.
0
Ясно. Собственно вопрос возник потому, что в цилиндрическом корпусе я видел в продаже только 12.5пФ.
0
когда уже появится вторая часть статьи?
0
Платы еще в пути. Думаю, недели через 3 приедут.
0
Интересный взгляд на девборду, но она же не breadbord'ится на одиночном бутерброде!
(http://tangentsoft.net/elec/bitmaps/iguana-breadboard.jpg если не понятно).

Логичнее делать заточку под DIP64-DIP80.
Плата двусторонняя, такие лучше заказывать. А заказная встанет дороже, чем готовое китайское решение.

Так, что вижу скорее тренировочный проект, нежели практический.
0
Сорри, что отвечаю сам себе, но вот более логичный проект, как раз под вашу задачу в 64 ноги: we.easyelectronics.ru/evsi/mini64se-ili-dip-ne-tolko-dlya-melkih-korpusov.html

и ему год.
0
Сударь, вы меня напугали! Я пошел втыкать плату в бредборд и потом сообразил, что речь идет про одиночный бутерброд, но у меня такой нет. У меня только двойная и я ей редко пользуюсь. А STM32 Discovery платы в какие бредборды втыкать? Мне даже в голову не приходило…
0
И еще, см. выше — лимит на размер платы 5х5 см.
0
Любезнейший, для таких случаев есть Leaflabs maple mini! 14 долларов и спаян прекрасно, а не курица штангой.
А на двойной бутерброд можно угодить в шины питания, или еще куда. DIP, он как-то ближе к телу.
0
Не, безусловно, Leaflabs maple mini — лучше чем все, что я видел.
А зачем мне вообще паяльник? Ф топку его. Бредборды рулят. Sparkfun — двигатель робототехники. Прямые паяльники — китайцам.
А кто продаст десяток Maple за $60 (с доставкой) (ну пусть одна из 10 не работает, и еще одна будет с кривым разъемом )? Куплю хоть сейчас.

И не надо больше ссылок на такую красоту. Плата супер, но слишком хороша для бесчеловечных экспериментов…

А вообще где у нее SWD? А светодиод, чем моргают? А кварц второй?

Ну ладно пойду спать, а то уже несу бред без борды. Всем спокойной ночи и трезвого восприятия!
0
Да, светодиод на Мапле есть, только маленький, а swd отдельного и второго кварца нет. А так на самом деле хорошая плата.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.