Load detect для проверки качества пайки

Load detect для проверки качества пайки Инструменты

Во всех современных микроконтроллерах уже давно как (больше 11 лет) есть подтяжки напряжения на пинах GPIO. Как вы думаете зачем в микроконтроллерах есть функция pull-up/pull-down, если можно просто воспользоваться установкой логического уровня push-pull?

Вы наверное скажете, что подтяжки к питанию нужны для конфигурации пинов шины I2C/1-Wire, нужны для кнопок. Верно! Но это не единственная причина.

Подтяжки к питанию и земле на пинах MCU

Вот типичная ситуация. Вам принесли 6ти слойную электронную плату прямо с производства. Её ещё ни разу не включали. Обычно в таких случаях 90% вероятность, что в PCB есть какие-то аппаратные баги: короткие замыкания на GND, короткие замыкания на VCC или вовсе непропай пинов MCU. Как выявить эти бракованные пины?

Вот тут-то нам и помогут подтяжки к питанию и земле на пинах MCU. Называется эта тема load-detect (LD). У меня уже был текст про load-detect для тестирования силовых высоковольтных H-мостов перед запуском. Вот он: H‑мост: Load Detect (или как выявлять вандализм).

Однако load-detect можно реализовать не только на специализированных для этого ASIC(ах), а прямо на пинах микроконтроллера! LD может выявить короткое замыкание (КЗ) пинов прямо в BGA корпусах, где даже щупом осциллографа к пинам не подлезть! LD это часть прошивки, чисто программный компонент.

Читайте также:  Особенности теплового режима и температуры сварки полипропиленовых труб

Разработка конечного автомата

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

Обычно LD оформляют как конечный автомат на три состояния. Разработка же конечных автоматов это хорошо формализованный процесс, состоящий из 7 фаз.

Фаза 1. Перечислить возможные состояния конечного автомата

  • На пине нет подтяжек напряжения
  • На пине подтяжка к GND
  • На пине подтяжка к VCC

Фаза 2. Определить входы конечного автомата

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

Фаза 3. Определить действия конечного автомата

Конечный автомат контроля пайки может делать только следующие легальные действия:

  • Измерить логический уровень на пине
  • Установить на пине подтяжку к питанию (Set pull Up)
  • Установить на пине подтяжку к заземлению (Set pull Down)
  • Отключить на пине какие-либо подтяжки (Set pull air)
  • Вычислить решение о состоянии пина на основе накопленных измерений

image

Вычисление решения

Тут сразу надо отметить что такое вычисление решения. Вот Look Up таблица принятия решения по измерениям автомата Load detect. Как видно после одного цикла измерений согласно комбинаторному правилу перемножения может быть максимум 8 различных вариантов (2*2*2 =2**3=8). В ячейках таблицы измеренные логические уровни GPIO пина на котором работал LoadDetect.

Таблица принятия решения

Open load означает, что пин ни к чему не подключен или, если формально, подключен к резистору с бесконечным сопротивлением одним концом и на GND другим. Еще говорят Z-состояние. И то же самое с VCC.

Фаза 4. Составить таблицу переходов для состояний конечного автомата

Как работать с этой таблицей. Если автомат был с состоянии pull-air и сработало прерывание по переполнению таймера, то автомат переходит в состояние pull-down. Если автомат был с состоянии pull-down и сработало прерывание по переполнению таймера, то автомат переходит в состояние pull-up. Если автомат был с состоянии pull-up и сработало прерывание по переполнению таймера, то автомат переходит в состояние pull-air. Это один цикл измерений. Дальше автомат продолжает работать непрерывно новые и новые циклы.

Таблица переходов состояний конечного автомата

Фаза 5. Нарисовать граф переходов конечного автомата

На самом деле всё, что я тут написал можно объяснить только одной вот этой картинкой графа конечного автомата. Надо пробежаться по всем трём подтяжкам, в каждой подтяжке прочитать состояние пина и найти в подсказке строчку, которая соответствует этим измерениям и покажет в соседней колонке, что, собственно, подключено к этому конкретному пину со стороны улицы. Easy!

Граф переходов конечного автомата

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

Фаза 6. Написать программный Си-код

Прежде всего LD надо сконфигурировать. Указать с какими пинами ему надо работать а с какими не надо.

Вот API. Как и любой программный компонент его надо проинициализировать load_detect_init(), затем прокручивать load_detect_proc() где-то с супер цикле.

А это код самого драйвера load-detect. Как видите все функции тривиальные и помещаются на один экран.

Как видите драйвер load-detect разом командует сразу всеми N пинами из конфига, подобно тому как в армии лейтенант командует сразу всем взводом (ровняясь! смирно! Напра-аааа-во!). Поэтому все N пинов переключают свои подтяжки синхронно.

Фаза 7. Отладить конечный автомат

Интерфейс командной строки UART-CLI для просмотра отчета работы LD

Для того чтобы просмотреть отчет работы LD вам в прошивку надо добавить интерфейс командной строки поверх UART-CLI. Что это и зачем есть отдельный текст здесь. Иначе без UART-CLI Вы просто никогда не узнаете, где, собственно, обнаружились короткие замыкания. В прошивке отчет LD выглядит как ASCII табличка, где каждому GPIO пину поставлено в соответствие состояние его нагрузки: short GND/VCC или open-load.

Load detect для проверки качества пайки

Сборка для верификации микроконтроллерных плат

По-хорошему для верификации микроконтроллерных плат с производства должна быть собрана отдельная прошивка (сборка), которая прокручивает шестерни механизма load-detect. В этой сборке должны быть такие компоненты как TIMER, GPIO, UART, CLI, LD, LED. Эту сборку обычно называют BoardName_IO_Bang. Получается так, что плата как бы изнутри тестирует сама себя.

Лично мне load-detect однажды очень помог найти один чрезвычайно красивый аппаратный баг в первой ревизии одной новой платы. Схемотехники для мультиплексора RS2058 при трассировке взяли для схемотехники распиновку от корпуса MSOP10, а PCB поставили корпус QFN. Пины для MSOP10 и QFN, естественно, не совпадают по номерам. В результате мультиплексор RS2058 не пропускал сигнал и вообще не управлялся.

Вывод

При помощи манипуляции подтяжками напряжений на пинах микроконтроллера и измерений в нужный момент логического уровня на GPIO пине можно запросто определять такие высокоуровневые события как короткое замыкание на GND/VCC или отсутствие нагрузки (подключено бесконечное сопротивление).

Добавляйте в свои прошивки компонент load-detect. Это позволит Вам делать bring-up новых электронных плат легко и эффективно.

Ссылки

  • load detect one pin look up table
  • H-мост: Load Detect (или как выявлять вандализм)
  • Почему Нам Нужен UART-Shell? (или Добавьте в Прошивку Гласность)
  • Как делать тест PCB на пропай?
  • Что такое конечный автомат Мили?
  • Сколько времени длится переходной процесс установки подтяжки напряжения?

Опросы

  • Вы делаете load-detect для контроля пайки в новых электронных платах? Проголосовало 31 пользователя. Воздержались 7 пользователей.
  • Вы делаете отдельные тестировочные прошивки для контроля качества изготовления электронных плат? Проголосовали 34 пользователя. Воздержались 7 пользователей.
  • Вы поняли из этого текста механизм работы load-detect? Проголосовали 37 пользователей. Воздержались 4 пользователя.

Монтаж кабелей связи и энергетики

Монтажные материалы для работы с электрическими кабелями связи

Компания СВЯЗЬСТРОЙДЕТАЛЬ

Компания СВЯЗЬСТРОЙДЕТАЛЬ предлагает монтажные материалы для работы с кабелями в широком ассортименте. У нас есть соединители и инструменты для медных жил, средства для пайки и изолирования скруток, термоусаживаемые трубки, ленты, мастики, клеи, герметики и другая продукция. Изделия обеспечат быстрый, безопасный и надежный монтаж кабельных линий.

Преимущества

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

Материалы для монтажа кабелей связи имеют следующие преимущества:

  • Вы можете приобрести отдельные материалы или полный монтажный комплект.
  • Наши опытные консультанты помогут подобрать подходящие средства для установки кабельных линий любой сложности.
  • Мы обладаем большими производственными мощностями, а также регулярно пополняем запас товаров от других брендов, поэтому выполняем заказы любых объемов в короткие сроки.

Заказ

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

Позвоните нашим менеджерам — они расскажут все о продукции, дадут экспертный совет и оперативно оформят заказ.

Список материалов

  • Лист
  • Плита
  • Лента (полоса)
  • Шина
  • Труба круглая
  • Втулка
  • АМц
  • АМцС
  • ММ
  • 1105
  • А5
  • А5Е
  • А6
  • А7
  • АД0
  • АД00
  • Хромель Т НХ9,5
  • Куниаль А МНА6-1,5
  • Куниаль Б МНА6-1,5
  • 08Х13
  • 08Х17Т
  • 08Х20Н14С2
  • 12Х18Н10Т
  • 12Х18Н12Т
  • 12Х18Н9
ХарактеристикаЗначение
Ширина (мм)
Толщина (мм)
Диаметр (мм)
Сечение (мм)
Толщина стенки (мм)
Высота (мм)
Высота полки1 (мм)
Высота полки2 (мм)
Толщина перемычки (мм)
Оцените статью
Про пайку
Добавить комментарий