Ошибки в макетных платах и методы их устранения

в 17:20, , рубрики: исправление ошибок, ошибки в макетах
Ошибки в макетных платах и методы их устранения - 1

Приветствую!

Иногда на меня находит меланхолия. Копаюсь в архивных фотографиях, вспоминаю старые проекты. Недавно из большой коробки с барахлом достал несколько макетов, где исправлялись различные (в основном, конечно, глупые) ошибки. Это будет пост о том «как не нужно было делать» или «учимся на своих ошибках».

Большинство ошибок проектирования происходит по невнимательности и из-за недостатка времени. Чем больше у разработчика опыта, тем ошибок меньше. Уже идешь, так сказать, на опережение. Крутишь свою плату в САПР и видишь все «тонкие места». Макет у нас – это первая итерация платы проекта, и она должна запуститься практически любой ценой. Находим все ошибки, как можем исправляем навесным монтажом и отдаем программистам поднимать софт. Дальше идет предрелиз – это вторая итерация. Обычно она становится релизом, если только заказчик не решил переписать все ТЗ заново. У меня больше трех итераций, наверное, не бывало. Если на первом этапе все баги найдены и устройство запущено, то второй подразумевает перенос всех исправлений в проект. С каждым годом проектирования ошибок становится все меньше, поэтому мне пришлось постараться, чтобы найти что-то интересное, так сказать, из раннего.

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

Первая в списке – это flash. Я нашел две таких платы, фотография первой в заголовке. Вторая ниже. Вроде проблема заключалась в «сдвиге» пинов то ли адресов, то ли данных. Это была критичная ошибка. Образ не записать, плату не запустить, интерфейсы не проверить. Чтобы много раз не перезаказывать и не паять платы (мы же не знаем сколько там таких ошибок) сделали переходную платку. Как сейчас помню припаивал эти проводки (за 10 лет лежания в коробке многие уже отвалились, конечно). Все стартануло несмотря на эту конструкцию.

Рис.1. Ошибка распиновки flash

Рис.1. Ошибка распиновки flash

Далее в программе – перевернутый DC/DC SY8089AAC. На схеме ниже видно, что я отразил по вертикали питатель, когда рисовал схему. Скорее всего сработал классический копи-паст.

Рис.2.1. Перевернутый DC/DC SY8089AAC на схеме

Рис.2.1. Перевернутый DC/DC SY8089AAC на схеме

Получилось довольно удачно. 2 вывод – это GND. Зачищаем земляной полигон напротив этого вывода, переворачиваем микросхему на 180 градусов и все становится как надо.

Рис.2.2. Перевернутый DC/DC SY8089AAC на плате

Рис.2.2. Перевернутый DC/DC SY8089AAC на плате

На плату скалера TSUMV59 поставил LDO вместо DC/DC. Стабилизатор грелся как утюг. На помощь приходит плата DC/DC на ST1S10 (тоже собственной разработки). Выпаиваем LDO, паяем DC/DC. Когда все отлажено и работает – переразводим плату.

Рис.3. DC/DC вместо LDO

Рис.3. DC/DC вместо LDO

Про картинку ниже я уже как-то писал, но не смог обойти ее стороной. Слева пример реализации навесным монтажом, а справа уже «красивая» переходная плата.

Рис.4. Как делать не нужно vs как нужно делать если выхода нет

Рис.4. Как делать не нужно vs как нужно делать если выхода нет

А вот что происходит, когда ошибся с расположением выводов микроконтроллера и не проверил в 3D. Тут хорошо видно, что выводы микросхемы не достают до падов на плате.

Рис.5. Ошибка в PCB компонента

Рис.5. Ошибка в PCB компонента

Сколько не пытался припаять – не получалось. Микроконтроллер обрабатывает кнопки и управляет питанием для CPU – без него никак. Пришлось снова изворачиваться.

Рис.6. Переходная плата для микроконтроллера

Рис.6. Переходная плата для микроконтроллера

Прошу прощения за качество фотографии ниже – кадр из видео. Полноценного фото, к сожалению, не сохранилось. Получилось довольно работоспособно.

Рис.7. Микроконтроллер на переходной плате

Рис.7. Микроконтроллер на переходной плате

Что делать, если перепутали дифференциальные пары от трансформатора к разъему Ethernet? Не беда – отгибаем выводы и паяем провода (не забываем все завязать в узел для согласования волнового сопротивления и имитации витой пары смех сквозь слезы). Ошибка и исправление не мои, но Ethernet поднялся, скорость проверять было бессмысленно, пока не исправили по-человечески.  

Рис.8. Дифференциальные пары Ethernet

Рис.8. Дифференциальные пары Ethernet

Для вывода консольного UART с процессоров мы используем свой USB-UART переходник (были спроектированы и произведены в некотором количестве). Переходник надевается прямо на штыри – это довольно-таки удобно. Есть версия переходника UART-Bluetooth. Не нужно лишних проводов. В одном из проектов перепутали RX/TX от CPU. Не проблема!

 Красные платы вообще какие-то проблемные получаются.

Ошибки в макетных платах и методы их устраненияTX" title="Рис.9. RX<->TX" width="690" height="517" data-src="https://habrastorage.org/getpro/habr/upload_files/182/bb9/0a5/182bb90a5d77271059c794d42f63638c.jpg" data-blurred="true"/>

Рис.9. RX<->TX

Для ошибки, которая показана ниже нужно еще пояснение из даташита. Микросхема ESD защиты для HDMI TPD12S521. Чтобы сделать фото я ее снял.

Рис.10. Ошибка ESD TPD12S521

Рис.10. Ошибка ESD TPD12S521

В документации указано, что защищаемые от ESD выводы должны соединяться на плате (вход/выход микросхемы). Кстати, так бывает не всегда. Кому интересно, можете посмотреть ESD224DQAR – она имеет встроенные резисторы. Это к вопросу о изучении даташитов от производителя. Скрин из документации на HDMI ESD TPD12S521:

Рис.11. Скрин из документации на TPD12S521

Рис.11. Скрин из документации на TPD12S521

Если вдруг решите вывести miniUSB для отладки, то выводите его на край платы, в противном случае кабель будет не вставить. Проверено! Но даже в этом случае есть решение! Можно один край разъема просто приподнять. Не очень эстетично, но работает.

Рис.12. miniUSB в центре платы

Рис.12. miniUSB в центре платы

Есть микросхемы PHY-Ethernet которым обязательно нужны подтяжки линий данных RX/TX резисторами 49R9. К таким относятся, например, RMII LAN8742. Об этом английским по белому написано в документации (даже с картинками). Если забыли (это был я) — это всегда можно исправить навесным монтажом. Да, а с другой стороны трансформатора 2x75R + керамика.

Рис.13. Подтяжки LAN8742

Рис.13. Подтяжки LAN8742

Ниже на фото даже не ошибка, а «дополнение» к имеющемуся функционалу. Делал буквально на днях. Из кодека ADAU1761 необходимо дополнительно вывести два микрофонных входа. Паялся прямо к корпусу QFN. Работает!

Рис.14. Дополнительные входы ADAU1761

Рис.14. Дополнительные входы ADAU1761

Дальше совершенно нелепая ошибка. Делал мелкий проект на e-ink дисплее. Выводил USB-UART на CP2102-GM для прошивки/отладки ESP32. Названия RST/RTS похожи, и я перепутал эти сигналы. Проводок в помощь. Думаю, этим никого не удивить.

Рис.15. Ошибка RST/RTS

Рис.15. Ошибка RST/RTS

Ниже интересное фото. Разъем Ethernet установлен с другой стороны платы. И это не просто так.

Рис.16. Разъем Ethernet установлен с другой стороны платы

Рис.16. Разъем Ethernet установлен с другой стороны платы

Тут нет ошибки инженера. В 2021 году, когда была разработана данная плата в даташите производителя WE на разъем 749951440 была допущена ошибка – разъем был «отзеркален». В 2023 году ошибку исправили, но осадок остался. Та еще проблема найти такую ошибку.

Рис.17.1. Ошибка в даташите разъема 749951440

Рис.17.1. Ошибка в даташите разъема 749951440

UPD. Пока читал комментарии вспомнил о еще одной ошибке с этим злосчастным разъемом, хотя тут уж сам виноват. Я выводы TCA/B/C/D подключил напрямую к 3.3В, да не просто так, а к полигону во внутреннем слое (плата 4 слоя). Проблема решается примерно так:

Рис.17.2. Фрезеровка платы для отключения выводов от полигона во внутреннем слое

Рис.17.2. Фрезеровка платы для отключения выводов от полигона во внутреннем слое

Слева на фото еще один «пропил» до 3 слоя. Нужно было перерезать один проводник. Из-за небольшого изменения в ТЗ (входное 24В вместо 12В) пришлось разделять цепи питания. Это тоже макет, естественно.

И напоследок – это забытый сигнал reset процессора. Косяк снова не мой, а исправлять мне, но мне нравятся такие шаманства. Плату снова-таки не запустить, так как сигнала сброса CPU нет. Pad reset на этом процессоре расположен в первом ряду шариков BGA - повезло. Нагрел феном уже запаянный процессор и воткнул в расплавленный шарик проводник. А почему бы и нет? Главное, чтобы руки не тряслись. Плата запустилась без проблем.

Рис.18. Забытый reset CPU

Рис.18. Забытый reset CPU

На этом, пожалуй, и все. Больше не смог ничего вспомнить/найти, что хоть как-то было бы интересно или смешно.

PS. Оставляйте в комментариях фотографии своих исправлений. Было бы очень интересно посмотреть на различные реализации и что-то перенять.

 Не бойтесь своих ошибок и умейте их исправлять!

 Спасибо за внимание и успехов!

Автор:
the_bat

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js