Приветствую, Хабр!
![](https://habrastorage.org/getpro/habr/upload_files/16a/8d4/c0f/16a8d4c0f36cc31eccd12b354e0b3118.jpg)
В этой статье я приведу пример того, как достаточно эстетично можно исправлять ошибки, допущенные при разработке устройств. Идея у меня возникла после того, как я вносил некоторые изменения в Nintendo Switch, если вы понимаете, о чем я. В случае с консолью все относительно просто, так как наборы для доработки можно приобрести.
Для начала предыстория о Nintendo Switch. В интернете есть множество видео-инструкций «как», «что» и «для чего». Я объясню только смысл. На известном всем сайте можно купить набор гибких плат. Одна из них выглядит так:
![Рис.1. Гибкая плата для Nintendo Switch (нижняя часть картинки) Рис.1. Гибкая плата для Nintendo Switch (нижняя часть картинки)](https://habrastorage.org/getpro/habr/upload_files/0fe/e87/b85/0fee87b85a39e230dfa578bacc7ab15e.jpg)
В верхней части картинки материнская плата самой консоли. Ниже наша гибкая плата. Она имеет странную форму, несколько вырезов и контактных площадок. Если мы положим одну плату на другую (вторую на первую), то получится примерно следующее:
![Рис.2. Main + гибкая плата Рис.2. Main + гибкая плата](https://habrastorage.org/getpro/habr/upload_files/0fd/060/081/0fd060081da11e490758e06e38b35d03.jpg)
Весь смысл данной конструкции – взять сигналы от main платы и использовать их для своих целей. Как я писал ранее, гибких плат несколько. На второй плате есть и компоненты, например микроконтроллер. Именно для его питания на гибкой плате сделан вырез под два конденсатора с падами для пайки (помечено как 3.3V). Также сделаны несколько вырезов под резисторы – это сигналы. Точка пайки рядом с процессором – это вообще testpoint, который нужно зачистить от лака перед пайкой. То есть мы позиционируем плату и паяем необходимые точки. Идея и исполнение меня поразили!
Отступление окончено.
Как-то давно я исправлял ошибку в футпринте на микроконтроллер (напутал что-то с размерами). Было спаяно две довольно сложные платы с несколькими BGA на каждой, все завелось, а вот микроконтроллер не встал. Сделал переходную плату между неправильным корпусом микросхемы и правильным.
![Рис.3. Переходная плата для микроконтроллера Рис.3. Переходная плата для микроконтроллера](https://habrastorage.org/getpro/habr/upload_files/891/ee0/fe6/891ee0fe684a60e25c425521756e2898.jpg)
На эту платку запаял микроконтроллер, а весь этот бутерброд уже на основную плату. Кстати – это тоже один из вариантов, когда дешевле проще заказать переходную плату, чем утилизировать уже запаянные. Это был не релиз, а только макет для запуска, поэтому проблем не возникло.
Конечно, косяков лучше не допускать, но как быть, если проблема была найдена только на серии устройств? Естественно, что в следующей итерации платы все проблемы будут устранены, но как быть со спаянными?
![Рис.4. Нет, так мы делать не будем! (легендарное фото из интернета) Рис.4. Нет, так мы делать не будем! (легендарное фото из интернета)](https://habrastorage.org/getpro/habr/upload_files/fd7/302/291/fd73022910246ced1291f1ce30edc5e2.jpg)
Мне не единожды попадались платы серийных устройств, на которых кинуты проводники. Ниже на фото как раз такой пример. Плата с такими доработками стоит в Ethernet свитче. Забыли сделать подтяжки 4.7к – не беда.
![Рис.5. Плата с заводскими доработками Рис.5. Плата с заводскими доработками](https://habrastorage.org/getpro/habr/upload_files/3cb/35d/5df/3cb35d5dff03d7c9fc982d33566dd6b9.jpg)
Так вот, о главном. Возникла необходимость корректно сделать доработку на одной из разработанных плат. Было выпущено несколько образцов, которые должны пойти на тесты заказчикам, сроки поджимают, а компоненты уже быстро не купить (платы переделать и заказать не долго). Ошибки были найдены и устранены таким способом, чтобы протестировать устройство. На маленькой платке я разместил свои компоненты (которые забыл поставить на плату) и проводами все соединил. Работает, но заказчикам в таком виде отдавать нельзя.
![Рис.6. Плата с доработками «на коленках» Рис.6. Плата с доработками «на коленках»](https://habrastorage.org/getpro/habr/upload_files/3fe/d25/ef7/3fed25ef7a2493e1d4a2118b8eeeaccc.jpg)
И тут я вспомнил про Nintendo Switch. У меня есть несколько точек на плате, откуда нужно взять сигналы и подвести их к другим точкам платы. Если быть более точным, то мне нужно питание 5В, GND, сигнал с уровнем 3,3В и выдать его без инверсии с уровнем 5В.
![Рис.7. Точки на плате, куда мне нужно припаиваться Рис.7. Точки на плате, куда мне нужно припаиваться](https://habrastorage.org/getpro/habr/upload_files/e9a/1b6/82c/e9a1b682ca34cf30b5341ece613d9836.jpg)
Схему сделал на двух транзисторах. При разработке платы необходимо учитывать не только места для пайки, но и конфигурацию выводов, которые паять не нужно, а также все, что стоит рядом. Нужно понимать, что отверстия на переходной плате должны быть большего диаметра, чтобы учесть припой на контактах основной платы.
![Рис.8. Переходные платы Рис.8. Переходные платы](https://habrastorage.org/getpro/habr/upload_files/8b7/4c9/9ae/8b74c99ae6da8668cf5294db5c6cc172.jpg)
После того, как плата спаяна, накладываем ее поверх основной.
![Рис.9. Переходная плата поверх основной Рис.9. Переходная плата поверх основной](https://habrastorage.org/getpro/habr/upload_files/999/c71/6cc/999c716cc989f5dd418eea6ad7359d7d.jpg)
Все подошло. Можно паять.
![Рис.10. Запаянная переходная плата Рис.10. Запаянная переходная плата](https://habrastorage.org/getpro/habr/upload_files/f55/052/916/f550529160f364c8d6996b44d0fbf408.jpg)
Если сравнивать фотографию 6 и 10, то результат выглядит прилично. Первые десять устройств выглядят так, на остальных ошибки устранены.
Не допускайте ошибок на своих платах. Ну или качественно их исправляйте!
Спасибо за внимание и успехов!