Как стать автором
Обновить

Какая документация нужна для полноценной работы с электронной платой?

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров6.1K

В России бытует мнение, что программистам микроконтроллеров не нужна никакая схемотехника. Особенно в таких организациях, которые изначально долго занимались Web(ом), а потом вдруг решили прикинуться электрониками.

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

Иной раз складывается мнение, что в РФ вообще никогда электроникой не занимались. Никаких традиций в российской электронике не сформировалось. Никакой преемственности нет. Никаких best practices не выделилось, как это повсеместно в большом IT. Что вся громадная 90-летняя история мировой электроники просто прошла как-то мимо РФ. Видимо эпоха, когда в стране кибернетика считалась лженаукой сделала свое нехорошее дело.

Там не менее попробуем разобраться как всё таки надо работать с электронными платами. Что для этого нужно из доков.

0--Фотография печатной платы с двух сторон (PCB Pix)

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

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

Как говорил один знаковый:

дайте мне фото платы и я напишу для неё загрузчик

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

1--Цветная блок-схема печатной платы (Block Diagram)

Блок-схема нужна чтобы ввести в курс дела новых людей. Прежде всего программистов. Блок-схема также позволит вам быстро вернуться к давно законсервированной разработке. На блок схеме следует отразить основные моменты, которые нужны например для написания прошивки. Это номера UART, SPI, I2C, количество RAM, FLASH, максимальная частота, битовые скорости интерфейсов, количество регистров в умных чипах, I2c адреса и прочее.

Проблема в том что большинство схемотехников в РФ не составляет блок схемы банально потому, что не знают как это делать. Их этому не учили в институте. А если они и пытаются накропать блок-схему, то получается так, что лучше бы они этого не делали. Они добавляют градиенты, затенения, размытости, насыпают много стразиков. Смотришь на их блок-схемы и думаешь это рисовала женщина. Потом оказывается это рисовал парень, но его схема выглядит как и женщины.

Про то как составлять блок-схемы PCB есть добротная методичка тут https://habr.com/ru/post/667030/

пример образцовой блок-схемы PCB
пример образцовой блок-схемы PCB

Если проводить аналогию, то блок-схема это как загрузчик u-boot. Цель Блок-схемы быстро загрузить в мозг разработчика большую и сложную систему.

*2--Схемотехника в *.pdf (Circuit diagram/Schematics diagram)

Это самое главное. Это основной документ на любое электронное устройство. Уже глядя на схемотехнику становится очевидно, что это и на что способно. Бывает достаточно просмотреть схемотехнику и уже понятно какой для нее нужно писать Firmware. Причем схемотехника должна быть именно в *.pdf так как при анализе схемотехники нужно многократно пользоваться поиском (Ctrl+F). Если нет схемотехники, то говорить про какую бы то ни было разработку firmware не приходится.

вот так выглядит схемотехника
вот так выглядит схемотехника

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

*3--Папка с datasheet(ами) на каждую микросхему в PCB

Часто найти datasheet это весьма нетривиальное занятие. Особенно если на маркировке корпуса это явно не написано. Дело еще в том, что некоторые чипы продаются под NDA (например PM6766, FDA801) и просто (за)Google(лив) вы не нейдете ничего кроме флаера. Поэтому схемотехники обязаны предоставить программистам все datasheet(ты) с errata на этапе сдачи конструкторской документации.

4-- Перечень элементов в виде электронное таблицы. (Bill Of Materials)

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

При этом важно делать BOM в виде (рас)share(ной) электронной таблицы в облаке. Так её смогут просматривать и редактировать множество разработчиков. Старые советские BOM(ы) в виде таблицы в *.pdf давно потеряли свою актуальность и смысл.
Вот пример образцового BOM. https://docs.google.com/spreadsheets/d/1OjjYhNh0zToOJ0MFgpm2HVs3wwSPBhPpXjJwW4TlKwg/edit#gid=1423611896

5--Таблица проводов (Wire Table)

При написании кода firmware для PCB приходится первым делом конфигурировать GPIO пины. В современных платах это 200...400 пинов. Для этого приходится выписывать где-то отдельно конкретные пины и определять по схемотехнике их свойства. Вход/выход. Какая именно нужна подтяжка. Какая нужна периферия, какой устанавливать ток, какую устанавливать частоту тактирования и прочее. В случае когда есть таблица проводов в Google SpreadSheet, то это можно эффективно понять и сделать благодаря стабильной сортировке по категориям и раскраске нужных проводов для акцентирования внимания на конкретной сути.

Также таблица проводов нужна для верификации самой схемотехники. Тут идея проста. Если по существующей якобы схемотехнике невозможно понять, где начинается, а где заканчивается каждый провод, то эту горе-схемотехнику нельзя использовать и следует отправить на доработку обратно создателю.
Вот пример образцовой WireTable
https://docs.google.com/spreadsheets/d/1OORWLG3IgiS_SvEASOm0HJW1asHwws-V46CHfTqbaBE/edit#gid=0

*6--Топология печатной платы (PCB Layout)

Как только надо будет измерить сигнал на реальной плате так сразу понадобится топология. Это просто необходимо, чтобы понять куда подключать электроды осциллографа. Если вы будете тыкаться в плату не зная топологии, то 5% вероятность, что при первом же касании электродом осциллографа дорожки на PCB вы плату сожжете.

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

7--Монтажная схема (Assembly Diagram)

На плате может быть 40...100+ микросхем. Большинство из них будут выглядеть абсолютно одинаково. Чтобы найти на плате, где находится одна конкретная микросхема (например U13), то вам обязательно необходима монтажная схема. Это по сути упрощенная топология верхнего и нижнего слоя, на которой показаны только номера микросхем, их габариты и их взаимное расположение относительно друг друга. К счастью в промежуточных слоях микросхемы еще не впаивают. Поэтому у этой схемы всего 1 или максимум 2 листа.

пример монтажной схемы
пример монтажной схемы

У монтажной схемы обычно 2 листа

*8--Чертёж механики (PCB Mechanical)

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

9--Описание платы на языке dot (optional) (Block Diagram Auto Trace)

Бывает что схемотехника настолько запутана и сложна, что глядя на неё просто нереально сразу понять, что там, как, да зачем. Посмотрите например схемотехнику платы NRF5340-ADK. Там схемотехника построена из супер кластеров на 20 листах, аж *.pdf подвисает при поиске. Зато если чисто формально написать граф на языке dot и отрендерить граф утилитой graphviz в разных цветах, то картина заметно проясняется. Подробнее про это тут https://habr.com/ru/post/682346/

10--Дерево сборки печатной платы

Дело в том что последовательность припаивания компонентов к печатной плате имеет существенное значение. Есть такие компоненты что, если припаивать в случайной последовательности, то можно случится такое, что очередной компонент просто не при монтировать на свое место.

Потом цепь питания имеет смысл припаивать в первую очередь. Далее надо проверить цепь питания на холостом ходу. Если напряжения те что нужно: 5V, 3.3 V 1.8V то продолжить паять следующие компоненты по смыслу. Микроконтроллер и SWD шину. Тут можно сразу прошить в MCU тестировочную прошивку. И в последнюю очередь припаивать периферию: connectivity, sensitivity, storage, multimedia, acting.

Невозможно просто спаять плату и надеяться, что она заработает. Это верх наивности в мире электроники. Если к плате припаяли электронные компоненты и подали питание, то 95% вероятность, что на плате даже до микроконтроллера не дойдет напряжение питания.

Плату надо проверять уже во время пайки. При этом крайне важное значение имеет последовательность пайки. Припаяли цепь питания DC-DC (5-3,7) - проверили. Припаяли цепь DC-DC (3,7-3,3) - проверили. Поставили MCU, прошили проверили и только после этого припаивать остальную периферию.

Это как в строительстве. Вы где-нибудь видели чтобы многоэтажный дом начинали строить с крыши?

Можно просто взять BOM и в отдельной колонке проставить порядковый номер в последовательности пайки. Это и будет деревом сборки.

Суммирую вышесказанное иерархия схем получается такая:

В общем перечень необходимой схемотехники получился такой

Название документа

Расширение

обязательность

приоритет

производная

0

Фото платы с 2х сторон

*.jpg

main

высокий

уникальная

1

Блок-схема PCB

*.svg

derivative

высокий

2

10

DataSheet(ы) на каждый компонент

*.pdf

main

высокий

уникальная

2

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

*.pdf

main

высокий

уникальная

3

Топология всех слоёв PCB

*.pdf или Altium Designer

main

высокий

уникальная

4

монтажная схема

*.pdf

derivative

средний

3

5

таблица проводов

Google spread Sheet

derivative

средний

2

6

PCB Mechanical

*.svg или autocad

derivative

средний

3

7

Bill Off Material

Google spread Sheet

derivative

средний

2

8

Описание графа схемотехники

*.gv

derivative

низкий

2

9

чертеж корпуса

AutoCAD

main

высокий

уникальная

11

дерево сборки

spread Sheet

main

высокий

уникальная

Если же у вас в распоряжении есть только PCB, то максимум, что вы сможете - это сделать фото с двух сторон, потом при наличии штангенциркуля восстановить габаритный чертеж. Если есть микроскоп, то может быть, если повезёт, вы сможете примерно составить BOM и найти в интернете datasheet(ы). Но даже это при плате в 40+ компонентов может занять многие недели реверс-инжиниринга.

Вывод

Как видите для разработки электроники и системного софта надо целая куча всяческих разных схем и таблиц (12 штук!). Поэтому электронику и называют на западе словом Hi-Tech, как раз потому, что для создания полноценной PCB надо очень много всего-всего разного, как документации, специалистов, так и оборудования и целый калейдоскоп инструментов. Создавать электронику - это очень высокоорганизованная деятельность. Произвести электронную плату это не буханку испечь.

Тем не менее какая-то документация является первоисточником(электрическая схема и топология), а что-то производным.

Однако абсолютным минимумом является электрическая принципиальная схема (Э3) и топология разводки.

Всё остальное можно так или иначе синтезировать на основе схемотехники и топологии. Однако без электрической принципиальной схемы и топологии говорить о разработке и отладке системного софта говорить не приходится.

Невозможно серьёзно относиться к разработке когда документация отсутствует или сделана тяп-ляп. Тем более невозможно испытывать симпатию к продукту про который ты ровным счетом ничего не знаешь.

Ну Вы сами попробуйте хоть раз в жизни разобрать какой-нибудь бытовой электронный прибор, вот, например, Bluetooth колонку https://habr.com/ru/articles/759870/ хотя бы, и понять что внутри, как соединено и работает. Вы с удивлением для себя обнаружите что, ровным счетом ничего не понятно и запросите документацию.

Писать код для микроконтроллера без схемотехники это как писать портрет по фотографии.

Поэтому делайте качественные комплекты схем. Пишете документацию. Это точно пригодится.

Если есть, что добавить, то пишите в комментариях

Акроним

Расшифровка

PCB

Printed circuit board

BOM

Bill of materials

CAD

Computer-aided design

КД

Конструкторская документация

Links

https://habr.com/ru/post/451158/

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы пользуетесь схемотехникой платы при программировании микроконтроллеров?
93.75% да60
6.25% нет4
Проголосовали 64 пользователя. Воздержались 8 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы составляете блок-схемы печатных плат?
32.79% да20
67.21% нет41
Проголосовал 61 пользователь. Воздержались 8 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы пользуетесь электронными таблицами для перечней элементов?
72.58% да45
27.42% нет17
Проголосовали 62 пользователя. Воздержались 8 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы делаете таблицы проводов для электронных цепей?
22.03% да13
77.97% нет46
Проголосовали 59 пользователей. Воздержались 7 пользователей.
Теги:
Хабы:
Всего голосов 21: ↑15 и ↓6+12
Комментарии32

Публикации

Истории

Ближайшие события