Pull to refresh

Атрибуты Xорошей PCB

Level of difficultyEasy
Reading time5 min
Views14K

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

1. Шелкография *

Шелкография практически ничего не стоит. Просто краска. Она нужна не только для навигации по плате, но также для контроля качества пайки. Вот например эти шелкографические черточки между пинами .

шелкографические чёрточки между пинами. Удобный контроль качества пайки.
шелкографические чёрточки между пинами. Удобный контроль качества пайки.

Еще одним атрибутом хорошей PCB является наличие шелкографических масштабных черточек известной длинны по вертикали и горизонтали.Это позволит проверять корректность размера PCB после производства.

2. UART для отладки *

Самое главное. Вывести отдельный UART на какой-н разъём. UART очень нужен для запуска Command Line Interface (CLI). CLI нужна для отладки, управления, тестирования софта и железа, просмотра логов, диагностики и многого другого. Если на плате нет свободного UART, то можно сразу позабыть про тестирование, DevOps, и контроль качества софта и железа. Если на плате нет выведенного UART, то изделие обречено на очередной зомби проект.

3. Если остались свободные пины, подключите их к точкам контроля напряжения

Если остаются свободные GPIO пины, то из них стоит делать бинарные датчики напряжения. Через делители напряжения на GPIO. Это могут быть датчик напряжения питания на выходе DC-DC чипов, датчики напряжения на выходах аналоговых ключей. Такой ценнейший FeedBack позволит написать процедуру self-тестирования для проверки монтажа и функционала PCB.

4. Analog Board ID *

Уникальное для каждой ревизии напряжение, заведенное на ADC. Уникальный делитель напряжения для каждой ревизии платы. Это позволит прошивке во время инициализации проверить, что её накатили в самом деле на правильную аппаратную платформу и в случае ошибки выдать в CLI сообщения о том, что накатили не тот артефакт. Ведь у микроконтроллерных прошивок нет Device Tree как в linux и прошивка должна как-то понять, что за железо сейчас.

резюки R7, R4 образуют делитель напряжения на 1.57 для HW ID
резюки R7, R4 образуют делитель напряжения на 1.57 для HW ID

или тут

Аналоговый BOARD_ID
Аналоговый BOARD_ID

5. Несколько разноцветных LED(ов) *

Heartbeat LED, чтобы глядя на устройство было ясно, что прошивка в самом деле исполняется, а не зависла. Error LED для определения сбоев в устройстве. Status LED для отображения Link(ов). Вообще на каждый интерфейс хорошо ставить LED чтобы было видно, что есть DataFlow. Это особенно удобно при outdoor испытаниях приборов.  

6. Больше TestPad(ов)* (веснушки)

TestPad(ы) нужны для bring up(па) плат.

На этой PCB в среднем 10 TestPad(ов) на 1 квадратный см и это нормально
На этой PCB в среднем 10 TestPad(ов) на 1 квадратный см и это нормально

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

Круглые TestPad(ы) еще и тем хороши, что в случае ошибок проектирования (design stage error) можно немного аккуратно наколхозить и припаять МГТФ перемычки прямо к TestPad(ам). Таким образом, рroduction плата еще и в значительной мере послужит макетной платой (breadboard).

7. GPIO выходящие на Test Pad(ы) *

Для отладки real-time процессов с помощью осциллографа. Периоды таймеров. Длительность процедур. 

8. Пружинный разъём для программатора (Tag-Connect)*

Площадь на PCB часто очень ценный ресурс. Технология Tag-Connect (https://www.tag-connect.com/) позволяют запрограммировать устройство в "одно касание" и отлаживать даже миниатюрные PCB класса "наручные часы".

Также можно выкинуть из BOM расходы на разъём для программатора так как теперь вместо разъема просто 6...10 точек на плате. Что особенно важно при mass production.

При этом этот Tag-Connect разъём должен быть в углу платы. Тогда к нему можно будет подцепиться также и китайскими прищепками с PogoPins (PCB Clip Clamp Fixture Probe Pogo Pin).

вот надо брать пример с Техасовцов. Они сделали разъём для программирования просто великолепно!

9. SPI-NorFlash (число-хранилище)*

Или SD карту.  Для того чтобы из приложения записывать туда части новой прошивки по всем возможным интерфейсам, что только есть на плате. Все рано не удастся затолкать в загрузчик драйверы всех интерфейсов. Если есть Off-Chip flash, то можно сделать простенький загрузчик с одним только SPI драйвером, который сделает memcpy из Off-Chip в On Chip Flash и прошивка будет обновлена. Также Off-Chip flash можно организовать FlashFS для параметров и BlackBox самописца. Можно выпаять и поставить Flash больше или убрать совсем. Но на плате FootPrint для SPI Flash должен быть.

*10. Четыре отверстия по краям платы (диаметр 3мм)

Это позволит закрепить плату на вертикальный HIL стенд или установить на нейлоновых стойках временный прозрачный экран, который защитит плату от жидкости и царапин

до тех пор пока не появится корпус для устройства. Тут сразу надо отметить что диаметр отверстий должен быть 3мм. Так как только для таких диаметров промышленность выпускает доступные стойки.

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

Еще один достойный пример экрана для платы PCB
Еще один достойный пример экрана для платы PCB

Экран из оргстекла позволит защитить плату от царапин при транспортировке в рюкзаке.

11. внешний аппаратный сторожевой таймер (optional)

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

12. SPI-чип с серийным номером (optional)

Полезно для отслеживания активов как внутри так и вне компании, при тестировании и тех поддержке.

13. кнопка reset (optional)

Для аппаратного сброса и перезагрузки микроконтроллера.

14. Часы реального времени RTC (optional)

Для TimeStamp(ов) в логах для BlackBox самописца.

15. Если клемники, то винтовые 

Винтовые клемники держат провода надежнее, чем зажимные клемники. Зажимные клемники имеют свойство выстреливать провода, которые там установлены.

16. по возможности все компоненты размещать в одном верхнем слое.

Это удешевит производство и монтаж.

17 Если USB-то только USB-TypeC*

Если плате нужен USB, то лучше ставить USB-TypeC. USB-C можно ставить 2мя ориентациями. Это очень полезно при outdoor испытаниях оборудования в условиях недостаточной освещенности. Плюс вcедга можно взять кабель от смартфона.

18 Первый пин PLS разъёма всегда делать квадратным*

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

Первый пин квадратный
Первый пин квадратный

*19-- Если на плате есть кнопки или USB разъёмы, то пусть они будут утоплены вглубь контура платы. Это исключит вероятность поцарапать платой посторонние предметы в коробке или рюкзаке.

утопленные боковые элементы
утопленные боковые элементы

вот еще несколько примеров

*20 - Не делайте чёрную маску PCB.

Дело в том, что на черной маске визуально не видно не припаянных микросхем. Плату приходится прощупывать пальцами чтобы убедиться в наличии или отсутствии микросхем. Делайте лучше оранжевую, синюю или красную маски для PCB.

21-Если есть разъёмы, то делайте их разных цветов

Часто бывает так что есть 2 четырех пиновых разъёма. Чтобы сборщики не перепутали шлейфы надо делать цветовой ключ как на разъёме так и на шлейфе.

Вот хороший пример как на двух 4х пиновых разъёмах пластмаски разных цветов
Вот хороший пример как на двух 4х пиновых разъёмах пластмаски разных цветов

22. Контакты для заземления

Также очень хорошей практикой является установка на PCB вот таких цепляш для заземления.

Эпилог

Как по мне эти 20 атрибутов являются просто базисом при проектировании PCB. Своего рода строительные леса для PCB. Некоторые пункты могут показаться очевидными, однако из 35 плат за свою работу FirmWare разработки видел только 2 с которыми реально было приятно работать, где были реализованы базовые атрибуты (помечены *). Были платы без отладочного UART, без квадратных пинов-ключей, без LEDов, без TestPad, платы без памяти, без монтажных отверстий. Были платы с разъёмами для программирования с экзотическим шагом в 1мм и много-много прочей дичи.

Вероятно этот текст поможет кому-нибудь при создании новых качественные устройств.

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


Links
https://habr.com/ru/articles/544176/

https://www.youtube.com/watch?v=QnSsyTIxEk0

Only registered users can participate in poll. Log in, please.
Вы добавляете отладочный UART в свои PCB?
72.09% да31
27.91% нет12
43 users voted. 3 users abstained.
Only registered users can participate in poll. Log in, please.
Вы добавляете пружинный разъём для программатора (Tag-Connect) в свои PCB?
18.92% да7
81.08% нет30
37 users voted. 4 users abstained.
Only registered users can participate in poll. Log in, please.
Вы ставите дополнительную энергонезависимую память в свои PCB?
44.44% да16
55.56% нет20
36 users voted. 5 users abstained.
Only registered users can participate in poll. Log in, please.
Вы делаете первый пин PLS квадратным?
89.66% да26
10.34% нет3
29 users voted. 2 users abstained.
Tags:
Hubs:
Total votes 44: ↑37 and ↓7+30
Comments82

Articles