В этой статья я бы хотел перечислить и обсудить некоторые атрибуты хороших практик разработки аппаратной части 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 сообщения о том, что накатили не тот артефакт.
5 Несколько разноцветных LED(ов)
Heartbeat LED, чтобы глядя на устройство было ясно, что прошивка в самом деле исполняется, а не зависла. Error LED для определения сбоев в устройстве. Status LED для отображения Link(ов). Вообще на каждый интерфейс хорошо ставить LED чтобы было видно, что есть DataFlow. Это особенно удобно при outdoor испытаниях приборов.
6 Больше TestPad(ов)
TestPad(ы) нужны для bring up(па) плат.
Тыкать в TestPad электрод осциллографа намного удобнее чем тыкать в пин микроконтроллера, рискуя при этом устроить короткое замыкание.
7 GPIO выходящие на Test Pad(ы)
для отладки real-time процессов с помощью осциллографа. Периоды таймеров. Длительность процедур .
8 Пружинистый разъём для программатора (Tag-Connect)
Площадь на PCB часто очень ценный ресурс. Технология Tag-Connect (https://www.tag-connect.com/) позволяют запрограммировать устройство одно касание и отлаживать даже устройства класса «наручные часы».
Также можно выкинуть из 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 стенд или установить на нее временный прозрачный экран, который защитит от жидкости.
до тех пор пока не появится корпус для устройства.
11 внешний аппаратный сторожевой таймер (optional)
Для защиты от исполнения чужеродного артефакта. Вероятно, что чужеродный софт не будет в полной мере догадываться о полной схемотехнике платы. Тогда плата с чужеродным софтом будет Reset(ится) и в конце концов свалится в загрузчик.
12 SPI-чип с серийным номером (optional)
Полезно для отслеживания активов как внутри так и вне компании, при тестировании и тех поддержке.
13 кнопка reset (optional)
Для аппаратного сброса и перезагрузки микроконтроллера.
14 Часы реального времени (optional)
Для TimeStamp(ов) в BlackBox самописце.
15 Если клеммники, то винтовые
Винтовые клеммники держат провода надежнее, зажимные клеммники. Зажимные клеммники имеют свойство выстреливать провода, которые там установлены.
16 по возможности все компоненты размещать в одном верхнем слое.
Это удешевит производство и монтаж.
Вывод
Как по мне эти 16 атрибутов являются современным набором при проектировании железа. Своего рода строительные леса для PCB.
Если вам есть что добавить к изложенному списку, то предлагаю обсудить этот в комментариях.