Введение
Оптимальный вариант в производстве электроники — когда все компоненты оригинальные от производителя, но что если у вас бэушный микроконтроллер, который долго не проживёт? Если транзистор в цепи защиты входного напряжения не соответствует параметрам из спецификации? Тогда у вашего продукта возникнут серьёзные проблемы. Микроконтроллер может выйти из строя, а цепь не справится с нагрузкой.
На самом деле, это не ваша вина и не ошибка дизайна. Причина — в поддельных микросхемах. Вы можете сказать: «Чип микроконтроллера правильно маркирован и выглядит как оригинальный — это точно оригинал». А я отвечу: а вы уверены, что внутри правильный кристалл?!
На подделках можно сказочно заработать. В исследовании рынка контрафакта говорится, что некоторые фирмы зарабатывают 2 миллиона долларов в месяц на продаже всего одного типа поддельных компонентов.
Проблема
Когда на складе дистрибьютора нет определённого компонента, иногда производителям и разработчикам приходится иметь дело с брокерами и сторонними поставщиками. Такое случается, если деталь нужна срочно или по более низкой цене. Как бы то ни было, они могут стать жертвами покупки поддельных микросхем, которые распространяются разными способами. Дефекты начинают проявляться с небольших сбоев, а заканчивается полным отказом.
Использование подделок — большой риск. И часто они остаются незамеченными до тех пор, пока все компоненты не соберут в печатную плату. Последующая переделка обойдётся дорого и займёт много времени.
Является ли это серьёзной проблемой?
Это растущая угроза на глобальном рынке. В ноябре 2011 года комитет Сената США по вооруженным силам провёл слушания в связи с увеличением количества поддельных компонентов в цепочке военных поставок США. Комитет инициировал аудит подрядчиков Минобороны.
Более того, в результате использования контрафактной микроэлектроники могут произойти серьёзные катастрофы. Вот примеры некоторых инцидентов, упомянутых в отчёте Ассоциации полупроводниковой промышленности SIA:
- Посредник отгрузил поддельные микроконтроллеры для тормозных систем европейских высокоскоростных поездов.
- Посредник отгрузил поддельные полупроводниковые компоненты для использования на атомных подводных лодках.
Проблема в цифрах
Во многих докладах и исследованиях оценивается масштаб контрафакта. В докладе Международной торговой палаты от 2008 года годовой объём рынка в странах Большой двадцатки оценили в $775 млрд с ростом до $1,7 трлн в 2015 году.
Рис. 1. Количество зарегистрированных инцидентов с поддельными компонентами, о которых сообщила IHS, источник
Другое исследование, проведённое Министерством торговли США с 2005 по 2008 год, показало, что 50% производителей компонентов и 55% дистрибьюторов сталкивались с контрафактными компонентами.
Более того, эксперты оценили, что среди всех закупок Пентагоном запасных и сменных компонентов до 15% являются контрафактной продукцией.
Методы подделки
Хакеры, похитители интеллектуальной собственности и производители контрафактной продукции всегда быстро адаптируются и находят всё новые методы. В этой статье мы упомянем наиболее распространенные способы изготовления подделок.
Эксперты обычно делят методы на категории:
- Новые компоненты с неправильной маркировкой и старые компоненты, которые продаются как новые. [1]
- Функциональный и нефункциональный контрафакт. [2]
В качестве отправной точки возьмём классификацию из этой работы и усовершенствуем её.
Рис. 2. Таксономия подделок, источник
Перемаркировка и переработка
Это самый распространённый способ подделки. Более 80% поддельных компонентов было переработано и перемаркировано. При переработке компоненты извлекаются из утилизированных печатных плат, их корпуса перекрашиваются и/или перемаркируются, а затем они продаются как новые детали.
В некоторых случаях кристалл извлекается из корпуса, затем монтируется в новый корпус и перемаркируется для требуемого устройства. Здесь самое опасное, если компонент не функционален или был повреждён во время предыдущего использования.
Извлечение кристалла включает в себя кислотную декапсуляцию пластикового корпуса, извлечение проволочных соединений (которые соединяют кристалл с внешними пинами) с помощью пинцета, нагревание корпуса и шлифовку задней стороны. Затем кристаллы отправляют в Китай для сборки в новых корпусах.
Рис. 3. Извлечение кристалла из корпуса, источник
Новые проволочные соединения — ясное доказательство повторного использования кристалла, когда новое крепление помещено на место старого.
Рис. 4. Новое проволочное соединение на старом контакте, источник
Цели перемаркировки могут быть следующие:
- Обновление даты: на старые детали ставят текущие даты.
- Повышение класса: изменение маркировки на верхний класс (компоненты военного или промышленного уровня).
- Перебивка сбойных компонентов: некоторые детали уже помечены производителем как сбойные. Они не прошли внутренние тесты и были списаны, но их могли извлечь из мусора или вынести контрабандой.
Примеры переработки и перемаркировки
Рис. 5. Процессор AMD с чипом Intel, источник
Рис. 6. Тест Dynasolve на двух чипах Xilinx, источник
Рис. 7. Примеры микросхем после переработки и перемаркировки, источник
Клонирование и вмешательство
Клонированные компоненты производятся неавторизованными производителями без наличия законных прав на производство чипа. Оригинальный дизайн клонируется с помощью реверс-инжиниринга.
Фальсифицированные компоненты, возможно, включают «аппаратные трояны» и могут слить ценную информацию производителю. На самом деле, реверс-инжиниринг и внедрение аппаратных троянов — отдельная широкая тема для другой статьи.
Другие подделки
- Отсутствие кристалла внутри. Производитель просто ставит нужную маркировку на пустые корпуса. Это легко обнаружить рентгеном.
- Некоторые конструкторы заказывают производство микросхем по своему дизайну. Иногда ненадёжный подрядчик производит лишнюю партию оригинальных микросхем без уведомления заказчика. Это опасно тем, что кристалл и корпус выглядят в точности как оригинальные, в то время как контрафактные микросхемы перед поставкой на рынок могли не пройти тестов, предусмотренных заказчиком.
- Поддельные документы. Никакой физической подделки в микросхемах, но злоумышленник добавляет/изменяет некоторые детали в документах. Это могут быть поддельные спецификации или электрические характеристики.
Методы обнаружения подделок
Если вы хотите защитить свой дом или офис, то первым делом нужно изменить стиль мышления: думать не как охранник, а как вор. Первый шаг к защите от поддельных микросхем — изучить методы врага.
Второй шаг — искать улики.
Дефекты кажутся бесчисленными. Предлагаемая таксономия дефектов показывает общую картину.
Рис. 8. Таксономия дефектов поддельных компонентов, источник
Некоторые дефекты легче обнаружить, чем другие. Кстати, некоторые из них легче всего обнаружить невооружённым глазом.
Набор примеров 1 (внешний осмотр)
Рис. 9. Два поддельных моста Tundra от PCI к процессору Motorola, источник
Эти две интегральные схемы перекрашены и перемаркированы, но обведённый фрагмент явно сдвинут.
Рис. 10. Перекрашенные микросхемы, источник
На картинке остались чёткие следы перекрашивания.
Рис. 11. Дыры от прожига маркировки, источник
Маркировка корпуса производится лазером. Избыток лазера может прожечь корпус.
Рис. 12. Следы старой маркировки, источник
Набор примеров 2 (внутренний осмотр)
Рис. 13. Изображение CADBlog
В поддельной интегральной схеме могут отсутствовать предусмотренные соединения. Они могут пропасть при переупаковке кристалла. Для обнаружения этого дефекта применяется рентген.
Рис. 14. Отсутствие соединений, источник
Другой вариант внутренних дефектов — использование совершенно неправильного кристалла. Например, американская компания Sparkfun обнаружила поставки поддельных микроконтроллеров Atmega328. Исследование выявило, что у них маркировка и корпус Atmega328, но кристалл внутри даже близко не соответствует оригинальному микроконтроллеру!
Рис. 15. Слева оригинальный Atmega328, справа — поддельный. Изображение Sparkfun
Набор примеров 3 (контроль электрических параметров)
Рис. 16. Тест электрических параметров высокопроизводительного операционного усилителя (поддельный и настоящий), источник
Поддельный операционный усилитель выдержал тестирование на 10-кратной скорости, и только комплексный тест с переменным током выявил подделку.
Методы борьбы с контрафактом
Пословица гласит, что лучше потратить копейку на профилактику, чем рубль на лечение.
Выявление поддельных компонентов — сложная задача из-за стоимости, времени тестирования, отсутствия параметров для оценки (иногда) и быстрого изменения технических методов подделки.
Существует множество механизмов, каждый из которых нацелен на некоторые поддельные методы и типы компонентов, как описано в следующей таблице:
Рис. 17. Методы борьбы с контрафактом, источник
Рассмотрим подробнее некоторые из этих методов.
Сенсор CDIR
Как понятно из названия сенсора CDIR (Combating Die and IC Recycling), это метод борьбы с повторным использованием интегральных схем.
В качестве сенсора CDIR можно использовать разные структуры на кристалле, но ради простоты упомянем только одну из них: датчик на основе кольцевого генератора (RO). Другие структуры см. здесь.
Этот сенсор фиксирует каждое включение чипа и позволяет легко проверить данные. Он составлен из двух кольцевых генераторов: RO-образец и RO под нагрузкой. Принцип основан на том, что эффект старения MOSFET изменяет частоту RO. По разнице частоты RO-образца и RO под нагрузкой можно рассчитать приблизительное время использования микросхемы.
Рис. 18. Схема RO-датчика, источник
Безопасный сплит-тест (SST)
Как уже говорилось в главе о методах контрафактного производства, некоторые разработчики отдают производство стороннему подрядчику. Иногда тот может произвести лишнее количество микросхем оригинального дизайна без ведома владельца интеллектуальной собственности или даже продать дизайн. Чтобы предотвратить это, производственный процесс можно защитить криптографическими методами, то есть блокировкой отдельных аппаратных компонентов микросхемы с разблокированием их владельцем интеллектуальной собственности во время или после теста. Взаимодействия владельца интеллектуальной собственности с заводом-изготовителя и сборочной линией методом SST показаны на следующей схеме:
Рис. 19. Взаимодействия владельца интеллектуальной собственности, завода-изготовителя и сборочной линии, источник
Сначала владелец интеллектуальной собственности получает с завода случайное число (TRN), с помощью секретного ключа генерирует тестовый ключ (TKEY) и отправляет его на завод для каждого кристалла. Там из TKEY с применением открытого ключа создаётся модифицированным TRN, который используют для тестирования. Владелец получает результаты теста и может либо отказаться от партии, либо передать TKEY на сборочную линию для изготовления микросхем, если результаты тестирования оказались положительными.
Сборочный цех получает TRN от владельца интеллектуальной собственности и после монтажа кристалла в корпусе снова проводит тесты. Затем отправляет ответ владельцу интеллектуальной собственности. Тот разблокирует хорошие микросхемы с помощью окончательного ключа (FKEY) — и отправляет их на рынок.
ДНК-маркировка
Этот механизм является частью более широкой технологии Package ID. Она охватывает следующие примеры:
- дизайн, который не оставляет места для добавления дополнительных компонентов,
- активные компоненты без полномочий на изменение маски (шаблона в производстве),
- устаревшие компоненты, которые больше не производятся.
Физически неклонируемая функция (PUF)
Физическая случайная функция или физически неклонируемая функция (PUF) — функция со случайным результатом, связанным с физическими характеристиками устройства. Она случайна и непредсказуема, но повторяема в одинаковых условиях. Поскольку в процессе производства производятся неконтролируемые и непрогнозируемые изменения, то никакие две микросхемы не являются идентичными, но в микросхему можно внедрить кремниевый PUF с уникальным идентификатором.
Рис. 20, адаптировано из источника
PUF замеряет ответ для определенных входных данных. Для получения пары «вопрос-ответ» используется множество методов. Один из них — задержка PUF, как показано на рис. 20. Случайные изменения в задержках на контактах и затворах кристалла дают случайные результаты. Арбитром обычно выступает затвор, который выдаёт 1 или 0 в зависимости от того, какой вход пришёл первым. PUF может поддерживать огромное количество пар «вопрос-ответ», где ответ уникален для каждой интегральной схемы. Для операций проверки подлинности необходима доверенная база данных пар «вопрос-ответ».
Как рассмотреть маркировку микросхем? Заметки начинающему радиолюбителю №1
Если у Вас тоже возникали проблемы с рассмотрением маркировки микросхем или других электронных компонентов с лазерной гравировкой маркировки, тогда этот пост — для Вас.
Этот способ весьма дешёвый и эффективный
Ниже пример микросхемы в корпусе SO-8 с лазерной гравировкой. Рассмотреть можно — но трудно. Сейчас мы сделаем маркировку более чёткой
Для этого вам понадобиться корректор
И пинцет. Также нужна коробка спичек. Любых, можно даже без спичек)
Захватываем микросхему пинцетом, чтобы было удобно и микросхема не двигалась по столу.
Наносим корректор. Чем больше тем дольше будет сохнуть. Я наношу небольшую капельку и пока он не засох размазываю соплом корректора по всей площи. Со временем вы поймёте сколько нужно корректора.
Получаем вот такой результат, теперь оставим сохнуть, или же приступаем к следующей микросхеме и проделываем с ней всё точно так же.
Когда наша(и) микросхема(ы) высохнут, приступ к зачистке лишнего корректора.
Возьмите микросхему ногтями двух пальцев.
И потрите о тёрку спичечного коробка.
Пока не получите такой результат. Видите? Уже можно разглядеть маркировку. Но она немного коричневая от тёрки.
Пальцем обтираем микросхему (можно палец смочить немного в воде)
И вуаля) Маркировка чётко видна на нашей микросхеме
Слева для сравнения не обработанная микросхема с лазерной гравировкой.
Справа та которую я покрасил корректором и зачистил тёркой от спичечного коробка.
Этот способ подойдёт тем начинающим радиолюбителям, которые в силу разных обстоятельств не могут (не желают) покупать электронные компоненты, а выпаивают их из плат (как я иногда делаю:-) )
Есть ещё один способ — это нанести на палец немного термопасты белого цвета и потереть микросхему или любой другой электронный компонент с лазерной гравировкой. Но он по моему мнению — дороже.
P.S. Друзья, технобратья! Давайте делится своими маленькими хитростями в нашем любимом деле. Но соблюдайте нумерацию, этот пост №1, следующий значит должен быть под №2 и так далее всегда проверяйте номер последней заметки начинающему радиолюбителю.
Так же в конце названия поста добавте «Заметки начинающему радиолюбителю №. » и используйте тег #ЗНРадиолюбителю
946 постов 9.5K подписчиков
Правила сообщества
1-Мы А-политическое сообщество. 2-Запрещено оскорбление: Администрации Пикабу, сообщества, участников сообщества а также родных, близких выше указанных.
3-Категорически запрещается разжигание межнациональной розни или действий, направленных на возбуждение национальной, расовой вражды, унижение национального достоинства, а также высказывания о превосходстве либо неполноценности пользователей по признаку их отношения к национальной принадлежности или политических взглядов. Мат — Нежелателен. Учитесь выражать мысли без матерщины
Да что вы на человека накинулись. Ну сделал он так, показал как можно. Вы обратили внимание как называется пост? «Заметки начинающему радиолюбителю».
Вне зависимости от ваших знаний, он всяко полезнее негативных комментариев.
Благодаря этому посту, я узнал, про способ с термопастой и про чудо приложение на телефон.
Муторно, пачкаешь палец в КПТ-8 и проводишь по микрухе)
Я наношу спрей типа флукс офф и тру обычной салфеткой тз бумаги . Эффект тот же , но быстрее .
Радиолюбитель! Помни про статическое электричество, не пренебрегай мерами защиты от ESD. Браслет, коврик, заземление паяльника наше всё
Просто берешь мелкосхему и глядишь на нее под лампой под разными углами. С какого-то угла будет видно четко.
Думаю, мелкая наждачка лучше подойдет для этих целей
Смочить кусок туалетной бумаги в растворителе и потереть микросхему. Потом потереть пальцем.
Вездесущие шприцы с КПВ-8 вдруг резко подорожали?
В жизни подобного не делал, ибо дол*изм. Спирт и ватная палочка, почистил и разглядел, занимает пару секунд.
Берем вебкамеру, берём "глазную гляделку" (пикрелайтед), берем изоленту.
Скручиваем вебку и лупу воедино, настраиваем фокусное (вебка нужна с "крутящимся обьективом".
а еще бывает, что надпись не выгравирована лазером а просто написана краской. тогда теркой от коробка надпись просто уничтожится.
Способ не робит
я просто свечу фонариком с телефона, видно идеально, если микросхема не залита лаком.
@Dionisnation, Как можно с вами связаться? Хотел проконсультироваться по ремонту ноутбука.
Через фотобъективы отлично все видно!
белый маркер из икеи всё решат в раз
Занимаюсь поставкой электроники из США и Европы, на работе валяется куча разной мелочевки от которой отказались клиенты (микрухи, транзисторы и т.д.), если кому интересно скину список с маркировками что есть, по дешевке отдам, а то валяются без дела
интересный способ, надо запомнить))
но если надо быстро, то тупо изопропиловым спртом капнуть и чуть горячим воздухом погреть)
а я на телефон фотаю под углом, трудно читаемые маркировки разглядываю и мелкую маркировку норм можно разглядеть.
Коммент для бросания тапками)
как определить резисторы конденасторы и еще кроме микросхем
крч рассказываю. спиртом брыжешь на микруху и трёшь об а4 кусок немношк. спирт высыхает — профит
Не нужно усложнять. Смартфон со вспышкой.
а зачем выпаивать и возиться с пинцетом?
прямо на плате очистил да и передумал выпаивать потому что не то и нафиг не надо )
MAXIM ещё поработает, или как я за 5 мин трансформаторный БП починил. Инструкция для гуманитариев
Этот пост для тех, кто как и я, плохо помнит закон Ома, но при этом не боится разобрать БП, чтобы просто посмотреть, что у него внутри.
Итак, попал ко мне в руки трансформаторный БП MAXIM 🙂 Не работает, короче. А мне как раз нужен был транс для пары самоделок и решил я его попробовать починить. Если лень всё это читать, то в самом конце есть видео.
Располовинил его с помощью ножниц и молотка (варвар). А затем прозвонил тестером первичную и вторичную обмотки. Какая есть какая определить легко. У понижающего трансформатора первичная обмотка всегда намотана более тонким проводом.
Вторичная прозвонилась, а вот «первичка» нет. Тогда я вспомнил, что в трансформаторе под изоляцией где-то спрятан термопредохранитель и возможно виноват именно он. С помощью ножа и отвертки расковырял верхний слой изоляции со стороны «первички».
Под изоляцией скрывалась спайка одного из выводов первичной обмотки и ноги термопредохранителя (ЖЕЛТАЯ стрелка). КРАСНАЯ стрелка — это второй вывод «первички» припаянный к контактной площадке («фаза» сетевого кабеля). ЗЕЛЁНАЯ — это вторая нога термопредохранителя, припаянная к «нулю» сетевого кабеля. То есть термопредохранитель рвёт цепь при перегреве.
Прозвонка первичной обмотки напрямую (щупы на красную и желтые стрелки :)) показала, что сама обмотка исправна и обрыва нет. Значит виноват термопредохранитель. По уму его надо заменить (стоит копейки), так как он отвечает за отключение напруги при перегреве транса. Просто припаять новый и примотать к трансу. Но можно просто желтую стрелку припаять к зеленой стрелке (ну вы меня поняли:)) И всё будет работать, хоть и без защиты от перегрева.Я так и поступил, так как даже собирать его не собирался пока 🙂 НО ВЫ ЕГО ЗАМЕНИТЕ.
Включил в сеть и замерил напряжение. Всё завертелось 🙂
Если такие посты никому не нужны и всем пох. й, то напишите и, наверное, я прислушаюсь. А ниже видео.
"Мой начальник пишет заметки у себя на ладони, а позже просто делает такие ксерокопии"
В копилку доморощенного мастера №2 — Формы для коннекторов
Очень много времени прошло с момента публикации поста «В копилку доморощенного мастера. Литейная форма для штекеров ноутбучных БП» и все потому что я ленивая задница не имел времени.
Но вчера я зарегистрировался на Thinkiverse, и выложил несколько своих моделей. Большой отклик вызвала именно модель литейной формы для штекера ноутбучного БП, посему я решил доделать начатое и сделал на все мне известные круглые штекеры а также на коннектор RJ45 и 3.5 jack папа и мама
Вот список всех форм что есть на данные момент:
Коннектор прямой ноутбучный Ø5.5 mm
Как пользоваться этими формами:
1 — Прежде всего распечатать толщина слоя от 0,05 мм до 0,1 мм сопло 0,5мм (ну или на чпу фрезере с метала выточить)
2 — Спаять коннектор с проводами по схеме питания вашего ноутбука
3 — Смазать формы вазелином или чистым моторным маслом
4 — Вложить спаянный коннектор в одну часть формы, накрыть второй
5 — перетянуть резинкой для банкнот или обвязать ниткой чтобы не раскрывалась
6 — прогреть клеевый пистолет
7 — с помощью пистолета экструдировать горячий клей в литейники
8 — дать остыть минут 20-30
9 — Разобрать форму и достать закорпусенный коннектор, протереть от вазелина или масла моющим средством для посуды
10 — пользуйтесь
Заливать можете даже жидкой резиной с затвердителем.
Эксплуатация коннекторов с покрытием из горячего клея (в простонародии силикон) показала себя отлично. При нагревании от вентилятора ноутбука клей не потек хотя больших температур от него не поступало)
И если кому то интересная статистика по Thinkiverse:
За вчера — 422 просмотра и 40 загрузок
за сегодня (на момент написания поста) — 1202 просмотра 250 загрузок
Ну и в общем:
Просмотры: выше 1K
Добавлений в коллекции: 100
Как то так) Надеюсь и вам, дорогие друзья пикабутяне, мой небольшой труд будет полезным
UPD: Ребята если Вы из Украины и хотите эти формы, но у Вас нет 3D принтера — Пишите мне на вайбер +38ч098ч269ч0ч686 напечатаю Вам в свободное от заказов время по себе стоимости — главное напишите что вы с Пикабу. Мне не жалко напечатать пару штук для пикабушников по себестоимости, а вам большая экономия. (В себестоимость входит: Стоимость пластика, цена за электричество, амортизация)
Необычный индикатор HDSP2113
В копилку доморощенного мастера. Литейная форма для штекеров ноутбучных БП
Всем привет. Давно я уже не постил ничего годного — я просто ленивая жопа не хватало времени. Но вот на днях нужно было переделать ноутбучный БП с разъёма от гнусмаса Samsung на Asus.
Купили значит на радио рынке штекер. Но качество его просто ужас.
Смотрите сами(у меня был такой же):
Вот такого типа был тот штекер. Кто ставил их, знает что это ещё то дерьмо.
И я решил закорпусить его в силикон, сам металлический штекер оставить, пластик заводской в топку.
Благо теперь у нас есть 3Д принтер.
Фоток как печатал и разрабатывал нет. Сори. Да и кому они «нннада»?
Замерял я оригинальный резиновый корпус штекера и принялся моделировать. Сначала сделал сам штекер, потом из него формы. Вот что вышло
После чего закинул в Куру (Cura 15.04.6RU)
120 слоёв.
Толщина слоя 0.1мм.
Сопло 0.5мм
Заполнение 40%
Пластик ABS
Обдув выключен.
Печатало 1 час 55 минут. Обошлась форма в
5 гривен (с учётом света) или же 10.70 рублей.
После того как напечатало форму, я ёё смазал вазелином, вложил заранее перепаянный штекер (для ноута ASUS) и скрепил две части вместе. Обмотав банковскими резинками для денег. Залил через ОТВЕРСТИЯ горячий силикон из клеевого пистолета. Оставил остывать на час.
Вот что вышло:
Качеством и я и клиент остались довольны.
В общем, друзья, если вам нужна такая литейная форма — скачивайте
Форма рассчитана на штекеры диаметром 5.5 мм
Ссылка на скачку формы — https://drive.google.com/open?id=0B35toAmhEIDNMjREMDhfOGdNYW.
@gepka, думаю, тебе, сие полезно будет)
Разработка одноплатного компьютера с нуля. Пособие для начинающих
Я занимаюсь разработкой электроники. Начал сравнительно недавно — когда микроконтроллеры от Atmel стали известны благодаря платформе Arduino. Тогда меня это не особо заинтересовало — на тот момент я уже программировал их из AVR Studio, читал истории DiHalt и мечтал о разработке собственного автопилота. 3 курс, Новосибирск, НГУ — это было увлекательно…
Но я с интересом наблюдаю за развитием и ростом индустрии встраиваемых и портативных систем: появление RaspberryPI, многообразия SoC и плат на их основах, системы умного дома, интернет вещей, смартфоны с растущей вычислительной мощностью — все это фантастический простор для деятельности. Результатом наблюдения стало желание поучаствовать: попробовать себя в разработке простой платформы, с целью изучения и накопления опыта.
Проекты на микроконтроллерах мне порядком поднадоели — подводных граблей очень мало, ошибки допустить достаточно сложно, все запускается «из коробки» — ни гибкости, ни сложности. С системами на кристалле — SoC (System on Chip) до этого я дела особо не имел — разве что ядро собрать, да Debian запустить. Поэтому я решил запустить простенький SoC, а именно пройти путь от схемы до рабочего Linux на борту. Да, в последующем я буду не совсем корректно называть SoC процессором, надеюсь, никого это не смутит.
Выбор у меня был небольшой, и определялся сложностью изготовления платы — только выводные корпуса, никаких BGA, максимум четырехслойный дизайн, а все потому, что я собирался прилепить свою платку к одному сравнительно простому рабочему проекту. Еще это означало, что в последующем я получу с производства уже спаянную плату, готовую к экспериментам.
Проектирование
В результате обзора доступных SoC я остановил свой выбор на iMX233 от Freescale. Выводной корпус, 454 МГц, контроллер DDR памяти, интерфейс к карте памяти SD/MMC, отладочный порт — отличный набор новичка. В придачу — композитный видеовыход («тюльпан»), аудио вход/выход, SPI, I2C, UART, USB, LCD. Будет чем заняться на досуге.
После чтения статей о платформе BlackSwift в потенциальных кандидатах появился Qualcom Atheros AR9331, но смутило отсутствие подробной информации в открытом доступе. Жаль, занимательный кандидат.
Меня интересовала минимальная конфигурация, достаточная, чтобы запустить на ней Linux. Соответственно к процессору была выбрана микросхема памяти на 32 МБ (256 МБит) (по тому простому принципу, что она у нас была в наличии). На тот момент я еще не вычитал на десятках форумов о существовании сложностей с этим процессором, только изучил рекомендации производителя по трассировке и, довольный как слон, делал все по рекомендациям.
Вообще, процессор (или SoC, так правильнее) интереснее с той точки зрения, что при его запуске значительно дороже выходят ошибки проектирования. Например, некорректная разводка DDR памяти может выразиться как минимум в последующих ошибках чтения-записи, как максимум — в невозможности инициализации памяти вообще. Цепи питания процессора — ошибка сожжет процессор при первом включении, интерфейсы — потеря периферии на этих интерфейсах, и так далее.
Поэтому начинать проще с изучения готовых отладочных комплектов, например официальной платы и ее документации. Платы у меня не было, но документация доступна всем желающим. В придачу полезно изучить все инструкции по применению, почитать форумы (это уже жизненный опыт :)) — в общем, изучить всю доступную информацию о жертве. После изучения начинается механическая работа — нарисовать схему, а затем и плату. Четыре слоя, минимальная ширина проводника 0.2мм, зазора 0.2мм, отверстия 0.3мм.
Подключил все, что можно подключить безболезненно – аудио входы и выходы, вывел видеосигнал на контактные площадки, всякую простую периферию — микросхему памяти с I2C интерфейсом, еще одну с SPI, держатель для uSD карты, конфигурационные перемычки, обязательно отладочный порт, и потом на свободное место все что осталось. Плата получилась небольшая — 70х40мм, с минимумом компонентов. Для NAND памяти места не осталось, но я планировал запускаться с SD/MMC. Работы на одну ночь.
Получилось страшненько. Слева направо: верхний слой, два внутренних, нижний. Процессор на верхнем слое, память на нижнем; на каждый сигнальный проводник DDR интерфейса по одному переходному отверстию; длины проводников выровнены, их средняя длина в пределах рекомендуемой, полигон земли между процессором и памятью почти без разрывов, и т.д.
Итак, плата спроектирована, документация на нее оформлена, все это передано в производство, и можно начинать готовиться к поступлению плат с производства. Начинаю изучать материалы на предмет нюансов запуска процессора, и натыкаюсь на стостраничные форумы, с описанием проблем и сложностей в запуске.
Становится не по себе — проблемы у людей вплоть до третьей переработки платы, процессор не работает с некоторыми модулями памяти, встроенная подсистема питания очень нестабильна, процессор очень придирчив к питанию, errata (документ, описывающий ошибки на процессор) на многие проблемы отвечает «ничем помочь не можем», софт в открытом доступе кривой, даже внутренний загрузчик нуждается в патче от производителя, в общем, проблемы намечаются серьезные. Выкачиваю BSP (board support package) от производителя — там каша из сотен скриптов и пакетов. Веселье начинается.
Спустя месяц приходят платы, и я начинаю эксперименты. Что-то в уголке подсознания всплывает, связанное с проблемами у монтажного производства.
SoC bringup
Прочь сомнения, подать питание!
И никаких признаков жизни. Это хорошо, хорошо потому, что без дыма. Подпаиваю кнопку «Power», смотрю осциллографом на ножку кварцевого резонатора, запускаю — есть генерация на кварце. 24 МГц, страшненькие, но есть. Щуп осциллографа с делителем, пассивный, спишем на него. «Дедушка старый, ему все равно»
Начинается самое интересное — bringup. Как этот термин лаконично перевести на русский в данном контексте? Попытка вдохнуть жизнь? Не звучит.
В процессоре есть свой первоначальный загрузчик, который при включении проверяет условия старта — откуда и что грузить. Он же отвечает на запросы по шине USB. Его можно сконфигурировать перемычками на плате, или однократно прошиваемой OTP-памятью. Если перемычки перепаять я еще смогу, то перепрошить неперепрошиваемое вряд ли. Распаиваю перемычки, подаю питание, и о чудо — с отладочного порта приходят первые байты данных! Это значит, что процессор доволен питанием, самые базовые его узлы запустились, и можно что-то делать дальше. Что значат эти коды, я узнал из кривоватого заголовочного файла, в виде PDF документа, с невнятными пояснениям, пропусками и за авторством huashan. Все ясно.
Хорошо, чтобы максимально оперативно работать с платой, оптимальнее будет подключить ее по проводам, и загружать исполняемый код по нажатию одной кнопки. Ок, подключаю по USB к компу. И ничего.
Никаких транзакций по шине USB, даже генерации на кварце. Плохо. Начинаю думать, изучаю плату, вспоминаю все тонкие моменты. Например, на этой плате рядом с процессором я поставил свой DC/DC преобразователь, с расчетом на питание какой-либо потребляющей нагрузки, подключил его к шине питания USB 5V, и ничем не нагрузил. Промеряю осциллографом — на входе 5 вольт, на выходе 5 вольт. Всплывают слова с производства, что-то по поводу резистора. Да, так и есть — в цепи обратной связи нет резистора. (- Капитан, капитан, якорь всплыл! — Хммм, скверная примета…)
Паяю резистор, и о чудо! Плата определяется по USB! До этого я смотрел на уровень напряжения шины питания — 5.1 вольт, никаких существенных помех, никаких пульсаций. Но процессору виднее. После запайки резистора заработал и DC/DC источник, пока без нагрузки, но, по крайней мере, перестал мешать процессору. Хорошо, что дальше.
Дальше надо разобраться с первоначальным запуском процессора и проверить работу DDR. Начинаю копать, и в процессе поисков собираю набор утилит и «бутлетов» — исходных кодов, позволяющих проинициализировать подсистемы питания, связку DDR контроллер-память и подготовить систему к дальнейшей работе. То, что надо — максимально простые исходники, с обилием индусского кода, но главное, они работают.
Утилиты позволяют загрузить эти бутлеты в память процессора и запустить их на исполнение. Все так сложно, потому что после включения встроенный загрузчик ничего не знает про внешнюю оперативную память, а поскольку нет памяти – некуда загружать, к примеру, ядро Linux. Получается цепочка из нескольких звеньев, где на каждом этапе выполняется незначительный шаг вперед.
Для подключения к последовательным портам, для реализации всяких внутрисхемных JTAG отладчиков, программаторов и аналогичных задач в другом проекте был реализован USB-UART мост на FT2232. Двухслойный дизайн, выведены оба порта на гребенку с шагом 2 мм. В этом проекте другая история – USB-UART мост + платка сбора данных размещается в центре основной платы, и конструктив прибора предполагает ее удаление.
Т.е. в прибор плата без дырки в центре встать просто не сможет. Мне показалось нерациональным выбрасывать текстолит, и я внес свои творческие правки – собственно вышеописанный мост USB-UART(поменьше), и контроллер (MSP430FR5738) с датчиком тока, напряжения, электромеханическим реле, источником тока и термометром. Вся эта «горячая» часть гальванически изолирована от интерфейса RS485 через пару ADuM1281 и развязанный DC/DC (на плате еще не установлен). В контроллере крутится Modbus стек, т.е. десяток таких плат можно объединить в сеть, завести данные с плат в SCADA систему, и автоматизировать произвольные процессы. В частности у нас эти платки будут использоваться для испытания приборов на -40/+60 в термокамере. Налепил их на проверяемый прибор, и сиди@наблюдай как меняются токи, напряжения и температуры на ответственных узлах.
Все эти платы проектировались параллельно, поэтому я сразу заложил идентичные размеры и возможности гибкого соединения. Не зря 🙂
Отлично, компилирую исходники, собираю этот конструктор, загружаю, и получаю первые строчки из отладочного порта! Подсистема питания запустилась!
Заглядываю в исходники инициализации памяти, разрешаю простейший тест, правлю ручками процедуру инициализации под мою конфигурацию платы, запускаю вновь:
Замечательно! Тест памяти пройден! Это очень хорошо, теперь туда можно загрузить что-то посерьезнее.
Посерьезнее у меня это U-Boot. Я знаком с этой системой, мне она кажется вполне адекватной и функциональной. Позволяет работать с периферией — актуальные версии работают с USB, SD/MMC, Ethernet, загружать образы c FAT/ext2 разделов, передавать управление, и главное — моргать светодиодиком — все то, что нужно для счастья и более гибкой отладки на первоначальном этапе.
Поэтому не долго думая выкачиваю актуальную версию из официального репозитория, беру самую близкую конфигурацию, компилирую, собираю с индусскими бутлетами в один файл, и загружаю в процессор:
PowerPrep start initialize power…
Battery Voltage = 1.74V
No battery or bad battery detected. Disabling battery voltage measurements.
EMI_CTRL 0x1C084040
FRAC 0x92926152
power 0x00820710
Frac 0x92926152
start change cpu freq
hbus 0x00000003
cpu 0x00010002
start memory test, at 0x40000000
end memory test, at 0x41FFFFFCU-Boot 2015.04-rc3-00209-ga74ef40 (Mar 16 2015 — 12:47:34)CPU: Freescale i.MX23 rev1.4 at 227 MHz
BOOT: USB
DRAM: 32 MiB
MMC: MXS MMC: 0
MMC0: Bus busy timeout!
MMC0: Bus busy timeout!
MMC0: Bus busy timeout!
MMC0: Bus busy timeout!
Card did not respond to voltage select!
MMC init failed
Using default environmentIn: serial
Out: serial
Err: serial
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
=>
И U-Boot запустился! Отлично, но плата запускается все еще по проводам. Надо разбираться с картой памяти. Хорошо, перепаиваю резисторы выбора загрузки, втыкаю карту — в терминале от процессора приходит ошибка. Вытаскиваю карту — другая. Вот это поворот! ©
SD/MMC
Начинаю искать, поиски выводят на русскоязычный форум, на полезные и интересные 380 страниц обсуждения. Боюсь, ребята до сих пор вспоминают этот SoC крепким словцом.
Выясняется, что для загрузки с SD/MMC карты нужно обязательно прошить OTP биты, тогда еще что-то может быть и получится. В частности надо перенастроить в регистре OTP Register: 24 биты SD MBR Boot[3] — прошить в единицу, и SD_POWER_GATE_GPIO[21:20] — выбрать NO_GATE — в моем дизайне управление питанием карточки не предусмотрено.
«Неудобненько как-то получается». Это означает, что нельзя сделать загрузочную карту памяти, которой можно будет прошивать готовые приборы в партии, вместо этого придется подключать каждый прибор, и вручную прошивать эти злосчастные OTP биты. Разумеется, этот процессор я не буду использовать в сколько-нибудь серьезном проекте, но про такой момент забывать не стоит. Скачиваю виндовую утилитку, прошиваю эти биты, вставляю карту памяти, аккумулятор… Система стартует, и циклически перезагружается. Блин!
PowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detected
PowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detectedPowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detected
.
Правлю исходники бутлетов, в частности добавлю дополнительные отладочные сообщения, и выхожу на проблемный участок кода:
PowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detected
Try poweron_pll
Try turnon_mem_rail
Падает при подаче питания на DDR память. Хм. Где-то я уже читал об этом. А как до этого работало? Ладно, нестабильность найдена, надо разбираться.
Вокруг микросхемы памяти расположены ее законные развязывающие конденсаторы, 8 шт. по 100 nF. Но на выходе встроенного в SoC источника питания для памяти я поставил 2×10 uF, хотя производителем рекомендовано всего 1uF (инструкции читаю, если ничего другое уже не помогает, да). Ломать, не строить: отпаиваю один конденсатор, подключаю аккумулятор, и система стартует!
На самом первом фото виден этот конденсатор — вокруг него грязь, и он припаян только одним контактом.
PowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detected
Try poweron_pll
Try turnon_mem_rail
Try init_clock
EMI_CTRL 0x1C084040
FRAC 0x92926192
Try init_ddr_mt46v32m16_133Mhz
power 0x00820710
Frac 0x92926192
start change cpu freq
hbus 0x00000003
cpu 0x00010001
initcall: 3e09f908 (relocated to 40002908)
initcall: 3e0a013c (relocated to 4000313c)
initcall: 3e0a2ec0 (relocated to 40005ec0)
initcall: 3e0a2ea8 (relocated to 40005ea8)
initcall: 3e0a2e88 (relocated to 40005e88)
initcall: 3e0a2e68 (relocated to 40005e68)
Net: Net Initialization Skipped
No ethernet found.
initcall: 3e0a2e5c (relocated to 40005e5c)
Initial value for argc=3
Final value for argc=3
### main_loop entered: bootdelay=3
### main_loop: bootcmd=«mmc dev $
Hit any key to stop autoboot: 0
=>
=>
Хе-хе, работает! Ок, запишу этот факт как причину потенциальных нестабильностей в будущем, ибо остался еще один 10uF, который тоже может усложнять жизнь. Теперь пробую с внешним питанием.
Теперь начались зависания. Более того, ситуация не регулярная, периодически проявляется при питании от аккумулятора, периодически от внешних 5В, периодически стартует и работает. Опять правлю код, отключаю переключение процессора на PLL, ядро остается работать на 24МГц. Все стабильно. Меняю делитель PLL, скручиваю частоту, и плата успешно запускается на 320 МГц. Надо попробовать рекомендацию производителя — конденсатор на 100 pF в цепи импульсного DC/DC. Место на печатной плате под конденсатор я заложил. Позже вернусь к этому вопросу.
Linux kernel
Итак, на текущий момент есть плата, стартующая с карты памяти, и загружающая U-Boot. Дальше по плану надо загружать ядро.
Выкачиваю актуальные исходники ядра с kernel.org, распаковываю и в три клика собираю ядро.
Вот эти три клика
При настройке ядра надо строго указать слияние ядра+dtb
Надо включить Kernel low-level debugging functions вместе с early printk
И еще enable dynamic printk() support
И еще видеоподсистему отключить
И еще половину лишних и не очень драйверов
И еще собрать dtb — device tree blob, структуру, описывающую ядру базовые вещи — количество памяти, периферию SoC, и т.д.
И собрать все это в один файл
После чего можно копировать ядро на флешь.
Запускаю, и получаю kernel panic. Логично, корневой файловой системы еще нет.
В качестве собственно операционной системы я выбираю Debian. По-моему, отличный дистрибутив — простой и надежный, как деревянная палка. Беру готовую сборку, распаковываю на раздел карточки, и указываю при загрузке ядра, где искать его законную корневую.
Дааа, есть над чем поработать.
Но, тем не менее, система работает, грузится с карточки памяти, размещается во всем диапазоне DDR памяти, и по праву может называться одноплатным компьютером! Это от схемы в голове до реализации в железе.
Итого, ошибок дизайна пока что не обнаружено, хотя нарекания уже есть. Что-ж, для начала, я считаю, достаточно.
Заключение
На самом деле это только начало. Еще есть над чем поработать — разобраться с периферией, в частности интересен аудио и видеовыход, протестировать SoC на штатных частотах, а еще лучше разогнать, измерить потребляемый ток, проверить при минусовых и плюсовых температурах (интересна устойчивость DDR контроллера), проверить на ресурсоемких задачах (например, видеотрансляция с веб камеры по USB WIFI), и в результате сделать на платке WiFi-управляемый танк с камерой и направленным микрофоном. Но не сейчас. Сейчас у меня есть деловое предложение 🙂
Как определить микросхему
Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет
_________________
Z Мудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Источники питания для автомобильной электроники, включая маяки, GPS/ГЛОНАСС-трекеры и охранную сигнализацию, должны обеспечивать бесперебойное питание и безопасность, а также быть устойчивыми к вибрации и исправно работать при низких температурах. Батарейки FANSO EVE Energy обладают всеми необходимыми параметрами для надежной работы оборудования современного автомобиля.
На складе КОМПЭЛ доступны сетевые адаптеры (внешние блоки питания) производства MEAN WELL, представленные семействами GS, GST и GSM различного конструктивного исполнения: в розетку и настольные. Адаптеры GS и GST предназначены для питания различных промышленных и бытовых приборов, а семейство GSM может применяться для питания устройств медицинского назначения, поскольку соответствует требованиям EN 60601-1 и 60601-1-11. При этом они характеризуются малым потреблением энергии на холостом ходу.
Прошу помочь опознать м/с контроллера заряда.
Корпус SO-8, внутренний ключ. Китайцы набили маркировку LT1101A, что мягко говоря не то. Может кому схема знакома.
Шел с китайским квадрокоптером. Батарейка 1 элемент LiPo
Помогите определить марку сгоревшего элемента R49. Схем нет, Радиомагнитофон Сатурн РМ 322с-1. Фото платы усилителя. Модель редкая. Не знаю что покупать. . Не знаю маркировку резистора
Здравствуйте ! в наборе КИТ модуля GSM m590e пришёл непонятный мне элемент — должен быть электролитический конденсатор на 1000 мкф на 16 Вольтж, а этот не поймешь где у него что , помогите разобраться по фото
_________________
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство — я до 14 лет смотрел черно-белый телевизор.
_________________
Zа Родину.
НАРОДОВЛАСТИЕ а не дерьмократия!
Суверенным и независимым может считаться только то государство, против которого англосаксонские разносчики дерьмократии и еврогейских "ценностей" со своими рванодупыми пособниками ввели санкции!
ну скажу я тебе а ты проверищь е6сли есть чем считать ид. но прощивка залочена ладно лови это STM8s003f3 или STM8s103xxx
точно считать иожно плдключив програматор в режиме чтения ID(те у точки у корпуса МК вот тока для стм надо покупать спецпрограматор. сам все не соберусь купить
Добавлено after 18 minutes 18 seconds:
Re: Опознать контроллер заряда LiPo
а почему собствено не то? там есть штук 6 навскидку микросхем заряда 1 баночнго лития
похоже на LTC4056 http://cds.linear.com/docs/en/datasheet/405642f.pdf
Добавлено after 23 minutes 37 seconds:
Re: Опознание радиоэлементов
элемента R49. Схем нет, Радиомагнитофон Сатурн РМ 322с-1. на совок все схемы есть ещите кстати это может быть какогото другого нащего бренда например ВЕСНУ 202 клонировали как КАРПАТЫ"202 были и другие клоны удачных моделей
_________________
Z Мудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Цветовая и цифровая маркировка резисторов. Обозначение их мощности.
Резисторы с допуском 1% типоразмеров от 0805 и выше маркируются четырмя цифрами, первые три из которых обозначают мантиссу, а последняя — показатель степени по основанию 10 для задания номинала резистора в Омах. Буква R также служит для обозначения десятичной точки. Например, маркировка 7501 означает, что резистор имеет номинал 750×101Ом = 7.5 КОм.
Резисторы с допуском 1% типоразмера 0603 маркируются с использованием приведенной ниже таблицы EIA-96 двумя цифрами и одной буквой. Цифры задают код, по которому из таблицы определяют мантиссу, а буква — показатель степени по основанию 10 для определения номинала резистора в Омах. Например, маркировка 10C означает, что резистор имеет номинал 124×102 Ом = 12.4 КОм.
Нижний предел | Второй символ | Верхний предел | Третий символ | Точность | |
Z | +10°C | 2 | +45°C | A | ±1.0% |
Y | -30°C | 4 | +65°C | B | ±1.5% |
X | -55°C | 5 | +85°C | C | ±2.2% |
6 | +105°C | D | ±3.3% | ||
7 | +125°C | E | ±4.7% | ||
8 | +150°C | F | ±7.5% | ||
9 | +200°C | P | ±10% | ||
R | ±15% | ||||
S | ±22% | ||||
T | +22,-33% | ||||
U | +22,-56% | ||||
V | +22,-82% |
За ним следует трехзначный код номинала емкости в pF, в котором последняя цифра обозначает количество нулей в номинале. Например, маркировка E105обозначает конденсатор емкостью 1 000 000pF = 1.0uF с рабочим напряжением 25V.