Пайка модулей uni_v2 · Into unknown

Пайка модулей uni_v2


March 7, 2024

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

Припаиваю диод D6 на его законное место
Припаиваю диод D6 на его законное место

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

У меня не устоялось разговорного понятия, которым я определяю это устройство. Проектное имя: uni_v<version>. uni от uni versal. В тексте и “на пальцах” я её называю:

А как бы вы назвали эту мелкую смешную штуку?

Видео-версия

Как всегда, публикую видео-версию этой статьи. В этот раз два видео – тайм-лапс с пайкой одной из плат, и второе длинное с говорением.

Тайм-лапс пайки

Статья-самосказ

Требования к ноде управления

Мне хотелось от неё следующее:

Как устроена плата

Оказалось, что мне надо несколько уровней напряжения:

Впихнём невпихуемое

Коробочка, в которую я хотел вписаться, довольно маленькая – 50х80 mm.

Корпус модуля, в который надо впихнуться
Корпус модуля, в который надо впихнуться

А микросхем и функционала с ответстиями под выводы проводов довольно много! Поэтому, трассировка была довольно интересным занятием! Потребовалось четыре итерации, пока у меня не получилось всё разместить так, что я сказал “И это хорошо!”

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

Как много компонент?

Это была целая коробка из лент с компонентами. Выглядят они все примерно так.

И это -- относительно крупный диод!
И это -- относительно крупный диод!

Перечень компонент оказался довольно компактным – всего пара десятков наименований. Я считаю, что это довольно хороший результат – в каждом месте старался переиспользовать уже имеющиеся номиналы. Просто обходится, скажем, не одним резистором, а подключить несколько таких, чтобы получить нужное сопротивление. Всё равно такие дешёвые пассивные компоненты продают количеством от 200 штук, тогда как на 15 нод мне их может требоваться только 60. Так что, не жалко. Запаиваются они тоже довольно легко, поэтому много времени это не стоило.

Список компонент для пайки
Список компонент для пайки

На самой плате расписано какой компонент куда впаивать. Только не полное наименование, а всякие абстрактные R10, C16, U7. Так как иначе никакого месте не напасёшься для полного имени STM32F042F6.

Остаётся обустроить рабочее место, и приступить к работе! Удивительно много мелочей требуется для работы над этими мелкими негодниками.

Обустроенное рабочее место -- свет, паяльник, и куча кондёров размером с песчинку
Обустроенное рабочее место -- свет, паяльник, и куча кондёров размером с песчинку

Конечный вид устройства

Окончательно смонтированная коробочка с проводочками
Окончательно смонтированная коробочка с проводочками

Вот так оно выглядит. Довольно хорошо, как по мне! Компактный такой паучок. Новые провода $0.35мм^2$ здорово помогли сделать всё ещё более компактным!

Скока стоит?

Базовая версия, с питанием, CAN-трансивером и микроконтроллером, плата стоит около 1 круб. Дооснастить её до полного функционала стоит ещё почти тысячу.

В сумме такой модуль обходится примерно в ~1-2круб в максимальной конфигурации
В сумме такой модуль обходится примерно в ~1-2круб в максимальной конфигурации

Я совсем не ожидал таких цен, когда начинал! Ведь, идёшь на сайты – и там компоненты по 40-200 рублей стоят. А когда начинаешь рисовать принципиальную схему – тут надо другое питание, здесь надо побольше чего-то, тут нужно несколько однотипных микросхем. И, вот, набегает приличная сумма! А потом ещё трассировка, и заказ платы. При заказе её цена может меняться в разы, в зависимости от сроков исплонения.

Отрефлексируем – что можно было сделать лучше

Что можно было сделать лучше? Давайте подумаем!

Потенциометры аналоговой части

Для аналоговой части я зазря сделал ставку на потенциометр. Тем более такого большого сопротивления – 100кОм. Я брал такой большой номинал для измерения напряжения бортовой сети. Но, в большинстве мест, мне надо измерять температуру с помощью терморезистора на 10кОм. Для него оптимальным является делитель полным сопротивлением 6.7кОм. Рассчёт можно увидеть в отдельной статье. Они дорогие, и чёрта-с-два ты добьёшься от них точной и стабильной настройки! Лучше ставить два резистора. Даже если это будет 5% точности – ты всё равно будешь победителем! Небольшая калибровка, и мы имеем как минимум 3 значащих цифры в измеренной температуре!

Больше входов/выходов!

Появилось ощущение, что хочется побольше входов/выходов. Для этого стоит использовать более крупный корпус микроконтроллера с LQDFP48 с полусотней выводо вместо имеющихся 20-ти у TSSOP20. Я пока не столкнулся явно с недостатком выводов – мне удалось изначально очень точно оценить свои хотелки и применение!

Однако, мне хочется вставить одну такую коробочку в панель приборов – а там уйма дискретных входов. А у кухни с котельной – много аналоговых входов. И хотя бы дискретных выходов низкочастотных хочется побольше. Чтобы можно было побезумствовать совершенно развязанными руками.

Необязательный ОУ

Для термистора, и ещё пары применений, достаточно только входного делителя. Второго делителя и ОУ не требуется. Но сейчас без установки ОУ я никак не смогу доставить напряжение с первого делителя ко входу микроконтроллера – только если паять поверх платы отдельный проводок.

Надо добавить перемычек, чтобы можно было подключать вход первого делителя прямо на аналоговый вход МК.

Больше индикаторов

Как минимум – добавить один-два светодиода, чтобы можно было между ними разделить индикацию разных фукнций. Например, активность по CAN, текущую скважность ШИМ, и текущее состояние системы с кодом ошибки.

Как среднее – цифровой сегментный индикатор. Это как 8 светодиодов в одном, из которых можно зажечь конкретную цифру.

Цифровой сегментный индикатор SC52-11EWA. 19₽
Цифровой сегментный индикатор SC52-11EWA. 19₽

Как максимум – добавить ЖК дисплей. Необязательно на все – только на самые нагруженные, и которые регулярно доступны для грозного взора. Остальным достаточно оставить один-три светодиода для пусконаладки.

ЖК дисплей LCD1602A 16х2. 200₽
ЖК дисплей LCD1602A 16х2. 200₽

Более крупные компоненты

В первую очередь речь про конденсаторы в типоразмере 0603 – 1.6х0.8мм. Работа с ними – это взгляд в бездну, стоя на краю. Захватывает! Но, очень скоро, нервы сдают, и начинаешь от них шарахаться.

Резисторы приемлемо паяются в размере 0805.

Микросхемы стоит с торчащими как можно дальше лапками – TSSOP20 регулярно слеплял лапки припоем. Но не под отверстия – монтаж в отверстия занимает уйму места. И компоненты такие стоят гораздо дороже, чем SMD!

Вывод

Ну, тут вообще не жалею о пройденном пути! Для меня всегда было загадкой множество нюансов того, как именно происходит изготовление электроники. Теперь, у меня есть понимание как выполняется тот или иной этап работы, и сколько это может стоить. Теперь я смотрю на всё это совсем иначе.

На самой заре работы с электрикой я возился с пайкой на макетной плате. Чёрта-с-два я бы сделал на ней хотя бы вполовину столь же крутое, не перейди я на поверхностный монтаж с готовой платой! Сама наивность!

  1. “Полумост” означает, что положительное питание к мотору мы подаём одним транзистором. Затем, во второй полупериод ШИМ, мы его отключаем, и коммутируем положительный вывод мотора на землю. Таким образом, энергия электрической индукции не генерирует высокое напряжение, а продолжает работать на совершение механической работы. Такого эффекта обычно добиваются подключая диод, но от него я решил отказаться из-за относительно больших тепловых потерь на нём. Транзистор же почти не обладает сопротивлением, и, потому, не будет на себе сжигать никакого электричества. ↩︎