16 атрибутов хорошей PCB

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

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

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

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

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

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

3 Не должно быть свободных GPIO пинов на корпусе MCU.

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

4 Analog Board ID

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

9c75c803455239b10b48ca00c9747dcd.png

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 электрод осциллографа намного удобнее чем тыкать в пин микроконтроллера, рискуя при этом устроить короткое замыкание.

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

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

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

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

e6ab9005fb3394cac3c757b9021d2e5e.jpg

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

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

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

10 Четыре отверстия по краям платы

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

296170be7547624649f9c1f7f4540712.jpg

до тех пор пока не появится корпус для устройства.

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

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

e0deaacb5b130a0afd62afb20a72bfb3.png

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

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

13 кнопка reset (optional)

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

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

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

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

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

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

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

Вывод

Как по мне эти 16 атрибутов являются современным набором при проектировании железа. Своего рода строительные леса для PCB.

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

© Habrahabr.ru