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

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

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

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

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

713bb14e23075bf0d40b456d2d3ac270.jpg

Как говорил один знаковый: «дайте мне фото платы и я напишу для неё загрузчик».

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

Блок схема нужна чтобы ввести в курс дела новых людей. Прежде всего программистов. Блок-схема также позволит вам быстро вернуться к давно законсервированной разработке. На блок схеме следует отразить основные моменты, которые нужны например для написания прошивки. Это номера UART, SPI, I2C, количество RAM, FLASH, максимальная частота, количество регистров в умных чипах и прочее, I2c адреса и прочее. Большинство схемотехников в РФ не составляет блок схемы банально потому, что не знают как это делать. Про то как составлять блок-схемы PCB есть методичка тут https://habr.com/ru/post/667030/

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

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

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

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

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

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

be62819a3696e0638453b891e245858a.png

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

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

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

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

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

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

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

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

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

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

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

56fdc4ff1bd61e6183f8a7458a33e68b.png

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

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

239559faf304822b898350c576eb8431.JPG

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

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

Иерархия схем получается такая

763aac7c42a97173919c93214359bcb5.JPG

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

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

Расширение

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

приоритет

производная

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

высокий

уникальная

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

5ef83136f814e0d5451ee6a330f30cff.png

Вывод

Как видите для разработки электроники и системного софта надо целая куча всяческих разных схем и таблиц (10 штук!). Что-то является первоисточником (электрическая схема и топология), а что-то производным. Но абсолютным минимумом является электрическая принципиальная схема (Э3) и топология разводки. Всё остальное можно так или иначе синтезировать на основе схемотехники и топологии. Однако без электрической принципиальной схемы и топологии говорить о разработке и отладке системного софта говорить не приходится.

Делайте качественные схемы. Это точно пригодится.

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

Акроним

Расшифровка

PCB

Printed circuit board

BOM

Bill of materials

CAD

Computer-aided design

КД

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

Links

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

© Habrahabr.ru