1. Введение.

  2. Как должна выглядеть плата готовая к массовому производству.

  3. Проектирование Test Jig.

  4. Плиты для Test Jig.

  5. Перевозка через границу.

  6. Тестирование на стороне PCBA.

  7. Программное обеспечение.

  8. Послесловие.

1. Введение

По какой‑то непонятно причине в ru сегменте довольно мало информации о том, что такое Test Jig и зачем он нужен. Он используется в массовом производстве электронных устройств, даже не содержащих микроконтроллер. Каждая плата, прошедшая сборочный конвейер, должна быть протестирована. Сотрудники завода не могут произвести тестирование PCBA,без помощи компании разработавшей устройство.

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

Для решение этой проблемы как раз и было изобретено стандартизированное устройство для проведение всех необходимых тестов. При необходимости это устройство можно встроить в сборочный конвейер. Это Test Jig.

Рис 1. Внешний вид Test Jig.
Рис 1. Внешний вид Test Jig.

2. Как должна выглядеть плата готовая к массовому производству

Предполагается, что есть некое устройство, которое нужно начать массово производить. Для этого на печатной плате должны быть реперные точки (не покрытые паяльной маской кружки меди, диаметром 1.5 мм). Минимум должно быть три точки. Относительно них сборщики будут устанавливать компоненты. Также на плате должны быть тестовые точки, к ним будут подключаться контакты для проведения тестов. Тестовые точки желательно, располагать на одной стороне. Это упростит разработку Test Jig. Если есть микроконтроллер, то должны быть доступны контакты для программатора. Чем больше тестовых точек на плате, тем лучше. На линиях питания тестовые точки должны быть всегда. Первым проверяется наличие короткого замыкания и напряжение питания.

Рис 2. PCBA.
Рис 2. PCBA.

Вообще, хорошей практикой будет проектировать каждое устройство так как будто оно готовится к массовому производству. Иначе можно попасть в неловкую ситуацию. Это когда просят разработать прототип для проверки некоторых функций. Проходят месяц, два. А после в личку пишет индустриальный дизайнер и спрашивай: «А зачем нужно это отверстие?». От него же узнаем, что он уже как неделю разрабатывает корпус для этой платы. Оказывается, плату решили запустить в производство. Вам об этом не говорили т.к. все были уверены, что итак все знаете. Плата конечно же не содержит реперных точек, должного количества тестовых точек а пины программатора находятся в неудобном месте. Потом придется не меняя размеры печатной платы добавлять все, что нужно в авральном режиме.

Также перед разработкой устройства нужно наперед продумать функции самотестирования. Если есть свободные пины АЦП, то на них следует завести напряжение/ия питания через делитель напряжения. Это всегда полезно. Чем больше линий обратной связи, тем лучше. Можно провести больше тестов.

Если есть микроконтроллер, то нужно продумать способ передачи информации о том какая версия печатной платы используется и вариант. Для передачи информации о варианте печатной платы, на свободные пины я ставлю подтяжку. А для передачи версии люблю менять I2C адреса. Так, в случае возникновения проблем, можно будет быстро найти источник ошибки.

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

3. Проектирование Test Jig

Первым делом нужно подобрать ящик нужного размера. Зная размер PCB можно примерно прикинуть размер ящика. Топаем на Aliexpress/Alibaba, вбиваем в поиск “Test Jig”. Если что-то нестандартное, то придется попинать индустриального дизайнера на предмет проектирования ящика.

Рис 3. Выбор стенда.
Рис 3. Выбор стенда.

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

Рис 4. Spring probe.
Рис 4. Spring probe.

Подпружиненные стойки как правило не нужны. В комплекте ящика идут четыре стойки по умолчанию.

Рис 5. Подпружиненные стойки.
Рис 5. Подпружиненные стойки.
Рис 6. Установленная стойка на плиту для PCBA.
Рис 6. Установленная стойка на плиту для PCBA.
Рис 7. Подпружиненная стойка.
Рис 7. Подпружиненная стойка.

Нужно еще выбрать “PCB Test POM”. Эти стойки будут прижимать печатную плату к подпружиненным зондам.

Рис 8. POM стойки.
Рис 8. POM стойки.

С механикой разобрались. Теперь нужно подумать о начинке. Самое, что не хорошее может прийти в голову это идея разработки узкоспециализированной платы. Это путь тупиковый и обернется огромным гемороем. На разработку и испытание печатной платы, которая будет производить тесты, уйдет много времени. К этой плате еще придётся писать прошивку. А что будете делать если изменится версия устройства? Это выдумывать способ как на плате тестировщике обновится прошивка? Более того для каждого нового устройства придется заново проектировать плату тестировщик. Да и как эта узкоспециализированная плата должна очутиться на заводе? На почтовую пересылку может уйти месяц. Да и к тому же, универсальная плата тестировщик уже была изобретена. Она называется ноутбук. Все, что нужно можно подключить по USB. На ноут можно поставить весь необходимый софт дистанционно. Найти программиста, который напишет софт для ПК гораздо проще и дешевле, чем программиста для узкоспециализированной железки. Универсальный способ загрузки прошивки тоже был изобретен, называется J‑Link. А железка, которая будет проводить тесты называется Arduino. Для ардуинки создано огромное количество модулей, так что при желании можно произвести даже самые изощренные тесты. Для ардуино писать сложную прошивку не нужно. Все, что ардуино должно делать, это пересылка данных на ПК.

Это все можно купить где угодно и дистанционно. Не придется тратить время на почтовую пересылку. А софт, немного меняя, можно будет использовать в разных проектах.

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

Есть конечно же уникальные случаи когда все же придется делать что‑то узкоспециализированное. Но это бывает редко. Например вам нужно проверить HDMI сигнал от одноплатника. Можно легко выкрутиться. Поставить USB<→HDMI конвертер, на одноплатник устанавливается тестовая прошивка выводящая картинку а на стороне ПК софт будет сравнивать картинку с шаблоном.

Если опыта в производстве нет, то очень хорошей идеей будет взять 3к-4к $. Полететь в Шэньчжэнь и походить с экскурсиями по заводам. Это самый простой способ понять, как работает конвейер и как должно выглядеть устройство для сборки на нем.

Рис 9. Схема внутренностей Test Jig.
Рис 9. Схема внутренностей Test Jig.

Начинка будет выглядеть так. Она очень простая. Если все спроектировано правильно, то этого в паре с линиями обратной связи на самом устройстве будет достаточно для проведения десятков тестов. Данный Test Jig позволяет выявить 52 типа ошибок.

Снаббер нужен для того, чтобы гасить искру которая может возникнуть если на плате есть короткое замыкание. Реле нужно, т.к. питание должно включаться только когда контакты питания подключены. Если питание будет включено постоянно, и на плате будет короткое замыкание, то есть риск появления дуги. Напряжения питания 24VAC. Амперметр нужен для того, чтобы было видно есть короткое замыкание или нет. Можно заменить на цифровой, если Test Jig будет интегрирован в конвейер. Светодиоды и кнопка не нужны. Они дублируют информацию которая отображается на экране ноутбука. Делители напряжения для проверки аналоговых сигналов. J‑Link можно использовать китайский. Если из‑за лицензии этот вариант неприемлемый, то можно купить ST Discovery и перепрошить под J‑Link. Ну или использовать оригинал. Это важно если завод находится в западных странах. Как видим все очень просто и тупо. В большом количестве случаев этого достаточно.

Сложные внутренности делать не нужно. Заплатив инженеру на заводе 1.5к-2к $ и отправив необходимые инструкции, можно дистанционно обзавестись Test Jig‑ом на заводе. Это сэкономит вам время.

Для написания ПО понадобится SDK к J‑Link. Если микроконтроллер Cortex‑M3, то можно скачать NRF Command Line и сэкономить деньги не нарушая лицензию. В противном же случае придется покупать SDK у Segger. Но в любом случае лицензия стоит гораздо дешевле чем изобретение специализированного устройства.

Рис 10. Внутренности готового Test Jig.
Рис 10. Внутренности готового Test Jig.

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

USB кабеля и провод питания нужно зафиксировать надежно. За них всегда будут дергать.

Рис 11. Крепление кабелей.
Рис 11. Крепление кабелей.

4. Плиты для Test Jig

Размеры плит известны, как правило они указы в спецификации на ящик. Или можно просто спросить у продавца. Сначала в 3D редакторе нужно создать заготовки. После добавить 3D модель PCBA и произвести операцию выдавливания.

Рис 12. Подготовка моделей плит.
Рис 12. Подготовка моделей плит.
Рис 13. Готовые модели плит.
Рис 13. Готовые модели плит.

На верхней плите нужно предусмотреть отверстия для крепления прижимных стоек, если они требуются. На центральной плите располагается сама плата.

Рис 14. Test Jig с прижимными стойками.
Рис 14. Test Jig с прижимными стойками.
Рис 15. Test Jig с прижимными стойками.
Рис 15. Test Jig с прижимными стойками.

На нижней плите размещаются подпружиненные контакты.

Рис 16. Размещение подпружиненных зондов.
Рис 16. Размещение подпружиненных зондов.
Рис 17. Прижатая плита для PCBA.
Рис 17. Прижатая плита для PCBA.

В ответной части подпружиненного контакта есть бортик, который не дает установить контакт глубже чем требуется.

Рис 18. Спецификация на подпружиненный зонд.
Рис 18. Спецификация на подпружиненный зонд.

Вообще плиты лучше вырезать на ЧПУ. Так они получаются крепче. Одна пара заготовок идет вместе с ящиком. Также можно докупить дополнительные. Или можно их распечатать на SLA принтере. Для упрощения процедуры печати, я добавляю ножки под углом 45 градусов. Как правило я печатаю, т.к. почти все Test Jig которые я разрабатываю, являются прототипами. После того как софт написан и отлажен, снята видео инструкция, написан документ по сборке и использованию, я разбираю Testing Jig. Вся документация уходит на завод и там уже делают версию, которая будет использована в производстве. Это делается для экономии времени.

Рис 19. Ножки для SLA печати.
Рис 19. Ножки для SLA печати.

5. Перевозка через границу

Этот пункт касается, наверное, только РФ. Так как есть проблема с границей. Test Jig сложно отправить курьерской службой за границу. В РФ оформить это почти невозможно. Утоните в бюрократии. В других странах отправить можно без вопросов DHL/FedEx. Почта работает слишком медленно. Посылка в Китай идет больше месяца. Также посылка на границе может просто исчезнуть. Как показала практика, чтобы повысить шансы успешной доставки на завод, Test Jig нужно полностью разобрать, все компоненты замотать скотчем, прозрачным. Отправлять обычное авио. EMS не использовать. При отправке в США, EMS доходит успешно. Но опять же нужно полностью все разбирать. На границе США, при досмотре любят все разбивать ломиком. Если Test Jig не разобрать, то на завод дойдет посылка с уведомлением о досмотре, а внутри будет куча раздробленного мусора.

Если везти лично, то нужно в обязательном порядке все разобрать. Границу РФ, на выезд, с таким устройством пройти без проблем очень сложно. Будут требовать предъявить документы на устройство и разрешение на вывоз из страны. Также еще будут допрашивать минут сорок и на самолет вы не успеете. Если возникает такая ситуация, то лучше сразу все выбросить. Полететь налегке и на месте все восстановить. Главное — это выдрать плиты, к ним пограничники не придираются и это самая важная часть.

6. Тестирование на стороне PCBA

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

Дальше нужно определиться как Test Jig и PCBA будут обмениваться информацией. Почти всегда я использую самый простой способ. По фиксированному адресу в RAM микроконтроллера располагается структура, которая содержит информацию о проведенных тестах. Обязательно нужно использовать CRC, чтобы убедиться, что там содержится осмысленная информация, а не случайный мусор. У всех тестов всегда должен быть timeout. Если этого не будет и во время тестов, что‑то зависнет, то вы никогда не узнаете точно какие тесты проходят успешно, а какие валятся. Всегда должна быть информация о варианте и версии платы. Т.к. в разных версиях и вариантах могут быть разные наборы тестов и ваше ПО всегда однозначно должно знать, какие тесты проводятся.

Если тесты пишете не вы, то дотошно нужно требовать от программистов написать наиподробнейшую документацию с описанием того, что они делают. Программисты при написании функций тестирования часто любят обманывать и лениться. Вместо написания отдельных функций для тестов которые дают однозначный результат Да/Нет/TimeOut, любят выдумывать отсебятину наделяя ответы другим смыслом. Например, нужно протестировать аналоговый вход. ЦАП от Test Jig подает 1В. Вы думаете, что ответ Да означает, что на стороне PCBA на входе получен 1В +‑ погрешность. Но в реальности может оказаться, что ответ Да это напряжение >1В, ответ Нет <1В. А ошибка TimeOut и вовсе означает, что на входе 0В. И главное с вами еще будут спорить на тему, что так логичней и правильней. Вы будете думать, что PCBA не проходит тест из‑за того, что есть ошибка где‑то в прошивке или железе. А в реальности просто плохой контакт между PCBA и Test Jig.

Каждый тест должен давать однозначный ответ. Например, не должно быть ситуации просто I2C Error. Должно быть SDA PullUp Err, SCL PullUp Err, ChipName ping Err, I2C TimeOut, ChipName response TimeOut, ChipName wrong response, I2C incorrect addr(пинг по всем возможным адресам) и т. д. Вы должны знать, какой именно тест четко дает ошибку. Программисты любят ленится и на некоторые такие тесты ставить заглушку.

Если все сделано верно, то после установки прошивки, через определенную задержку, нужно прочитать RAM микроконтроллера.

7. Программное обеспечение

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

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

Рис 20. Возможный вид программного обеспечения.
Рис 20. Возможный вид программного обеспечения.

В этом видео хорошо показан конвейер.

Может сложится впечатление, что это высокотехнологично и очень сложно такое сделать. Внутренности в реальности там гораздо проще выглядят чем кажется. Под корпусом стоит ПК, лабораторный источник питания, генератор сигнала. Видна работа пневмо пресса, они довольно дешевые. Для работы пресса нужен компрессор и диспенсор. Кнопка от диспенсора выводится на ящик Test Jig. По сигналу от концевика начинается тестирование.

8. Послесловие

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

Ручной труд дорогой. Поэтому проектировать нужно так, что бы свести его к минимуму. Исключить ручную пайку полностью, по возможности. Если используется пайка волной, то с инженерами на заводе нужно обязательно обсудить параметры картриджа в который вставляется PCBA. На некоторые пятаки может попасть припой. Флюс образует защитную пленку. Test Jig перестанет работать из‑за отсутствия контакта. Придется оплачивать чистку флюса. Если картридж не закрывает все пятаки, то нужно обговорить куда клеить защитную пленку. Она стоит дешевле чем чистка.

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

С индустриальным дизайнером нужно будет проговорить возможные варианты печатных плат. Молдинг это удовольствие не дешёвое. В корпус для устройства должны помещаться все варианты PCBA.

Вначале всегда будут шишки. Главное не слить весь бюджет на брак. А дальше пойдет все как по маслу.

Комментарии (8)


  1. Nick0las
    07.12.2023 17:28

    А зачем покупать SDK у Segger если есть OpenOCD? А если МК ARM и достаточно SWD, то можно вообще взять китайский ST-LINK за доллар.


    1. a9d Автор
      07.12.2023 17:28

      Нужны API. Опыта работы с OpenOCD у меня мало. Как работать с этим пакетом, толком не знаю.


  1. aumi13
    07.12.2023 17:28

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

    здесь это явно лишнее.

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


    1. a9d Автор
      07.12.2023 17:28

      Не понял, что именно вы имеете ввиду. Но Segger свое API называет SDK https://www.segger.com/products/debug-probes/j-link/tools/j-link-sdk/ . Стоит 2к$ .


      1. vvzvlad
        07.12.2023 17:28

        И зачем его покупать? Под STM пишется на чем угодно и прошивается чем угодно.


        1. a9d Автор
          07.12.2023 17:28

          это SDK к программатору. Нужно чтобы встроить функции программатора в свой софт на ПК


  1. YaRosh
    07.12.2023 17:28

    Какой софт используется для тестов? Какой-то готовый или самописный?


    1. a9d Автор
      07.12.2023 17:28

      Самописный и TeamViewer для настройки