Глюки контроллера

Все любят говорить достижениях и успехах. Но, на мой вгляд, о проебах говорить интересней. Потому как успехи у всех одинаковые, что там — пришел, увидел, победил. А вот накосячить можно совершенно разнообразными способами. Причем там, где, казалось бы, все на десять раз истоптано и никаких подводных камней не осталось. Однако, помним правило 34: и про старуху бывает порнуха.

Итак, делюсь :)

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

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

Пока от заказчика не поступило очередное рацпредложение — избавиться от кабеля, который им приходилось крутить своими силами и перейти на что-то стандартное покупное. Выбор пал на обычный USB кабель. Ну, а чего? Дешевый, доступный, жил хватает, экранирован. Чего бы нет? А то, что по нему не USB сигнал пойдет, дак никого волновать не должно. Он все равно внутри будет. Старый разъем я убирать не стал, чуток раздвинул дорожки, чуток подвигал детальки на плате. Да уместил усбешник рядышком. Еще надо было еще пошаманить с алгоритмом отслеживания напряжения и его измерения амплитуды. Тоже все просто и элементарно. Дописать пару функций в код. Код там неплохой, так что это все было легко и просто.

Сделали платы в JLC, смонтировали партию устройств на десяток штук. Собрали и…

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

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

Перерыл весь код, перелопатил все функции. Ничего не понимаю. Самое интересное, что у меня на столе все работает отлично. У меня, конечно, не вся установка собрана. Но ключевые датчики подключены. А то, что где то там что то еще срабатывает, вряд ли оно влияет.

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

Главный вывод — софт не виноват. Глючит железо. Старой версии железа нет, поэтому проверить на нем новый софт не получится. Но да и не важно.

Но! Железка то не менялась. С прошлой итерации произошла только замена разъема на другой тип. Только сраный коннектор поменялся. И такой лютый эффект от замены одного куска пластика на другой.

Так, стопэ. А когда конкретно оно начинает глючить? А глючить оно начинает на третьей фазе работы, когда начинает качать мембранный компрессор. А когда начинает качать этот компрессор там внутри что-то начинает оголтело щелкать. А что там щелкает? Спрашиваю у конструктора — говорит реле давления. Чисто механическая шняга. А чем щелкает реле давления? А пускателем оно щелкает, вот чем!

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

Вот, смотрите:


Увеличить
С обратной стороны дорожек нет, только перемычки.

Видите косяк? Знаете как исправить? Пишите в комментах свои предположения. А я через несколько дней дам ответ. :)

46 thoughts on “Глюки контроллера”

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

  2. Проблема в N и L которые вдоль всей платы идут и похоже пересекаются с проводом от какого-то соединителя?
    Фильтровать силовое питание от наводок запуска реле? Хотя это не быстрое решение…

    Разводка земли под МК? Отрезать весь нижний полигон и зацепить его от земли источника? Он же вдоль силового провода как антенна получается?

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

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

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

  3. В качестве предположения: изменить разводку кварца, чтобы его конденсаторы были подключены не к общей земле, а к своей, отдельной «чистой». Типа как здесь описано: http://caxapa.ru/lib/emc_immunity.html

    И вообще поставить варистор параллельно обмотке того, что там щелкает.

  4. Страшная земляная петля, идушая из под юго-западного угла м/с на земляную ногу в левом ряду этой м/с. Просто разрезать ее в удобном месте. Я б ее разделил над R25, R26.

    1. Петля, да. Но то, что вы увидели не так страшно и делить ее надо, но не тут :) Тут то как раз можно оставить. Есть куда более критичные участки петли.

  5. Сделать 4-х слойную плату. 1) общая земля внизу; 2) питание; 3) еще земля; 4) верхние дорожки.
    Если плата заказная, а не самодельная, какая разница сколько слоёв?

      1. Разница около 50%, как по цене так и по срокам, заказывал в электроконнекте в Новосибе, зато 4 слоя разводить приятнее

        1. Все российские производители однозначно идут нахрен с их ценами и сроками. Т.к. они проигрывают китаю и по ценам и по срокам. Ну и +50% к цене это очень много.

          1. Ну и что, что разница в цене 50%. Платит-то все равно заказчик + мелкая серия, насколько я понимаю. Для такого размера платы это несколько тысяч рублей (при цене производства — миллионы). Зато плата будет маленькой, няшной и помехоустойчивой, и не надо колдовать с разведением дорожек.

            1. Цена производства отнюдь не миллионы. Так что стоимость изделия имеет значение. Они даже комплектуху через себя покупают, чтобы сэкономить несколько сотен на возврате НДС.

              А колдовать там не надо. Тут образовался явный очень серьезный косяк который легко устраняется как в готовой плате (перерезкой двух дорожек). Так и в следующей ревизии его уже не будет.

  6. Дополнение: На верхних дорожках в пробелы кидаем земляные полигоны, и чертовой кучей перемычек соединяем с земляными полигонами внизу.

  7. Фильтрующий конденсатор С12. Земля через С12 идёт на мк, но на сам кондер нет. Полигон разорван. Кинуть перемычку в этом месте, либо перетрассировать плату. А ещё я бы передвинула кондеры ближе к мк, и если есть возможность, питание и землю мк разделить по слоям (питание снизу, землю сверху)

  8. Землю через С12 соединить с общим полигоном. Если есть возможность, перетрассировать плату : разделить по слоям питание и землю по мк.

    1. Подключены по той стороне. Ну и к делу это не относится. Неподключенная оптопара просто не будет работать. Глюков это не вызовет.

        1. Именно. Еще надо с угла слева снизу срезать. Тогда будет островок. Это не ИОН, а СП42 — супервизор питания.

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

    1. Нет, на плате нет ни одного реле. А то реле что щелкает оно от давление щелкает. Оно чисто механическое.

      1. Реле нет но питается же от платы силовая часть. Глюки происходят когда работать реде начинает. Тоесть потребление тока возрастает.
        Или от на контактах реле искры радиопомехи создают.

  10. DIHALT, чувак, ты мой кумир!
    Читаю пост, понимаю 10% от силы, кайф получаю неимоверный. И мечтают понять всё :)
    Прям как в детстве про OSI-модель…

  11. Всем привет!
    Началось с того, что давно интересовала тема асма на AVR и наткнулся на всем известную DI HALT «AVR учебный курс». Мощно!!!, ничего не скажешь…
    Впрочем, это именно отвлечённый интерес без какой-либо насущной необходимости, скорее по принципу «почему бы и не асм?, никогда не было». Всё же кодить что-то более или менее крупное удобнее на Си, да, собственно, я кодингом вообще не занимаюсь (в любом случае асм забавен как явление).
    По запросу «DI HALT» попал на этот ресурс.

    Вот в числе прочего взгляд остановился на заголовке «Диагностика и ремонт», так уж вышло, что именно диагностика и ремонт является для меня средством заработка последние неск лет. Да, кстати, полнейший оффтоп во-первых, во-вторых за пару минут взирания на плату не нашёл ничего. В общем я чайник в электронике, хоть и имеется какое-то образование профильное (на мой взгляд, одна из самых глупых трат 5 лет жизни, в моём списке глупых трат времени, на втором месте после 11 лет потраченных на бизнес). Впрочем, жизнь априори проходит глупо, пох на это.

    Ну к теме диагностики и ремонта (насчёт оффтопа предупредил и что чайник тоже предупредил). Дигностика и ремонт небольшой платки, в разработке которой к тому же сам принимал участие это конечно интересно и сложно, но на практике явление нечастое. Гораздо чаще встречается другая потребность диагностики и ремонта. Заказчик просит «посмотреть» (нравится формулировка такая всегда), почему не работает устройство (огромный ящик набитый платами, например интроскоп 92го года выпуска). Посмотреть и подумать всегда несложно, ни к чему не обязывает, хоть и не приносит профита. Приезжаю посмотреть, ну всё норм, действительно огромный ящик, набит платами, действительно не работает. Не работает совсем, никто никогда его не видел в работе. Куплен был для наличия, почти 10 лет стоял на улице под навесом. Вот внезапно потребовалось чтобы у входа стоял интроскоп и его перевезли в помещение, а он сука не работает видите ли… Но всё ок, если его посмотреть то по идее должен заработать. К тому же есть подсказка — заключение официалов! В котором в пяти пунктах перечислены основные неисправности, что сильно облегчает посмотр конечно же.

    1. Неисправность питания (необходима замена питающего модуля)
    2. Неисправность конвейера (необходима замена блока управлений конвейером)
    3. Неисправность генератора рентгеновского (необходима замена генератора)
    4. Неисправность детекторных линеек (необходима замена детекторных линеек)
    5. Неисправность блока управления интроскопом (необходима замена блока управления)

    Вывод: Ремонт устройства нецелесообразен.
    Странно, что не расписали неисправности несущей конструкции, их тоже достаточно и видно сразу… Погнута рама в неск местах (его везли на трёх рохлях, пару км!!!), оборвано несколько шлейфов и кабелей, отломаны ножки и т.д.
    В общем интроскоп сломался…
    В принципе стоило к существующему акту выдать свой

    1. Погнута несущая рама в двух местах (необходима замена несущей рамы)
    2. Сломаны ножки (необходима замена ножек)
    3. Повреждены кабели и шлейфы (необходима замена кабелей и шлейфов)
    4. Замотана изолентой вилка питания (необходима замена вилки питания)
    Но…. интроскоп стоит неск миллионов и по идее есть за что бороться…

    В общем за работу мы взялись, при том бесплатно! (что в самом деле надо было указать в договоре в разделе сроков и стоимости???)
    По договорённости, мы занимаемся интроскопом этим, что-то если приходится покупать незначительное, то после согласования с заказчиком стоимости покупок они их оплачивают. Если в итоге отремонтируется, то заказчик на своё усмотрение нас вознаграждает смотря насколько это было дешевле покупки другого интроскопа (на первый взгляд глупая формулировка, но если вдуматься, то другой быть не может).

    Первое на что обратил внимание это на странности в заключении официалов. Если неисправен модуль питания, то как узнали о неисправности блоков управления? Если неисправен генератор излучения то как узнали о неисправности детекторных линеек (и наоборот)? В общем весьма сомнительные заключения.
    Заключение официалов как неинформативное было отложено в сторону.

    Интроскоп не работает, не работает вообще, никак, нисколько и странно даже ожидать какой-то работы от него. Схем, описаний или хоть чего-то разумеется нет.
    Модуль питания… Ящик в ящике содержит с десяток плат и стандартный БП форм-фактора AT. БП же мы легко можем проверить! Он не работает разумеется). БП был куплен на авито за 300 руб (с чего-то надо было начинать), (в самую последнюю очередь был отремонтирован родной для красоты установки). В остальных платах превентивно заменены электролиты и прочие танталы. Это помогло! Модуль питания ожил!, загудели вентиляторы, засветились контрольные светодиоды, напряжения на выходах соответствуют подписям на платах (хоть какая-то информация).
    Неисправность конвейера… Тут всё просто, обратил внимание на сломанную ножку, к которой судя по следам на кабеле был прикреплён кабель от конвейера. Прозвонил кабель, так и есть, в этом месте перебит. Конвейер ожил! (это сильно порадовало заказчика, ибо уже можно было создать видимость досмотра!)

    Повреждены кабели и шлейфы… Наверное представляется картина, шлейф сильно перегнутый или со следами удара и из него торчат тоненькие жилки (это тоже было кстати). Но проблема в том, что шлейфов там десятки, до нас его пытались ремонтировать несколько специалистов в том числе и несколько официальных организаций. Все что-то тыкали, прозванивали (чаще имитируя деятельность в принципе сразу видно что прозвоном там ничего не исправишь). Какие-то шлейфы не подключены вообще (ХЗ куда их подключать, нет никаких схем и описаний). В общем те которые однозначны и в наличии, без всяких прозвонов были заменены на новые, прочие кабели правильность подключения которых не вызывает сомнений прозвонили и устранили обрывы. Может с десяток шлейфов осталось которые допускают какие-то варианты подключений, они тоже были изготовлены но пока с наклейками в виде вопросительных знаков просто висели неподключенными.
    Неисправность генератора рентгеновского излучения…Труба с шилдом и разъёмом. На шилде написано ахтунг 160kV (немецкий генератор). По форумам судя, герметичная конструкция, залитая маслом, разбирать не рекомендуется, но если уж разбирлся то требуется замена мала, вакуумирование и т.д. Пока отложено до лучших времён…

    Линейки детекторные… Однотипные платы 24шт. За основу взято предположение что во-первых все сгореть не могли, во-вторых те что сгорели одинаково сгореть тоже не могли. По сути на каждой плате стоят именно линейкой какие-то детекторные сборки фирменные и такой же фирменный контроллер, так что проверить или отремонтировать их всё равно нельзя (попадаются на ебее, но чуть другие более современные, можно было бы заменить). Имеется комплект диагностического оборудования abi-electronics очень забавная штука (цена тоже забавная). В числе прочих функций в нём заложен так называемый сигнатурный анализ. Есть 24 вывода их можно подключить произвольно хоть к табуретке, на них подаётся некая последовательность сигналов со свипированием частоты и рисуется некая трёхмерная поверхность. Предполагается что у одинаковых табуреток это поверхность будет одинаковой, на всякий случай есть параметр tolerance в %, которым можно задавать насколько требуется совпадение этой поверхности трёхмерной. В общем сигнатурный анализ показал идентичность всех плат детекторных линеек. Или они все одинаково неисправны, или все исправны…

    Неисправность блока управления… Вот тут интереснее конечно. Блок управления прелставляет из себя компьютер на 86й архитектуре. Используется редкий процессор intel 80186 (чисто индустриальный вариант, почти не применялся в ПК). Примерно с полсотни плат соизмеримых по размеру с форматом А4, без схем и прочих буржуазных излишеств. Батарейка конечно заменена в первую очередь, вместе с электролитами и танталами. Но платы заметно паяные почти все, комп не подавал признаков жизни. В уже упомнянутом оборудовании есть модули проверки IC (один для цифровых BFL-модуль, им кстати и целостность дорожек плат проверяется, второй для аналоговых AICT-модуль, кроме микросхем, можно проверить транзисторы, диоды и прочее), имеется довольно обширная библиотека микросхем, есть функция распознавания (только цифровых, выводится табличка аналогов функциональных). Большинство микросхем проверяются без выпаивания из плат (клипса крепится на микросхему, клипсы кстати стоят прилично и их разумеется требуется какое-то разнообразие). В общем нет другого выбора кроме как проверить каждую деталь которую возможно. На всякий случай сохранены прошивки со всех микросхем памяти. Примерно 90% микрсхем были проверены, неисправные и с значимыми отклонениями в параметрах заменены (их набралось достаточное количество). ПЛИСы и прочие прошиваемые контроллеры конечно проверить нельзя, была поставлена свечка за их работоспособность (свечка включена в счёт конечно). На каждой плате примерно сотня микросхем и примерно с десяток которые нельзя проверить (за них поставлена свечка). Месяц примерно на «диагностику и ремонт», заказчик исправно оплачивал копеечные счета на покупку микросхемок, транзисторов и прочих электролитов.

    По всяким косвенным признакам (внимательно, под микроскопом рассматривались следы на платах, потёртости на разъёмах и т.д.), удалось восстановить куда должны были быть подключены болтающиеся в воздухе шлейфы и т.д. Комп замигал светодиодами!

    Конвейер бодро катал чемоданы имитирую досмотр, на ящике питания горели светодиоды, на ЭЛТ мониторе (ЖК не работает по каким-то причинам, видно что-то с частотами, не вникали) появилась заставка с приветственным READY…

    Но содержимое чемоданов оставалось тайной… Это предварительный досмотр, чемоданы потом нюхает собака и те которые полетят будут досмотрены на отдельном современном интроскопе.
    В общем всё не так плохо! Условные 80% работы выполнено, заказчик радостно потирает потные руки. Мы в предвкушении хорошего вознаграждения. Дальше всё в точности по закону Парето… 80% работы делается за 20% времени, на оставшиеся 20% работы требуется 80% времени.

    Для проверки генератора рентгеновского купили на авито древний военный дозиметр ДП-5В. При прокатывании стрелка зашкаливает. Условно было принято, что генератор исправен. Но на экране ничего не высвечивалось совершенно. Работа сводилась по сути к катанию дозиметра. И постоянной перепроверке уже проверенного с целью зафиксировать исправность или неисправность возможно возникающую в ходе работы интроскопа. Всё это очень тщательно и подробно фотографировалось, снималось на видео, зарисовывались всякие схемки, наброски, идеи что проверить и т.д. Интроскоп нельзя забрать в офис, в офисе изучались фото, видео, таблички с измерениями и т.д., принималось решение что нужно измерить ещё, что изменить и т.д. Потом приезжали к заказчику, за день делали новые измерения и т.д. В общем добились полной статичности, интроскоп работал стадильно (вернее стабильно не работал), ничего не сгорала, не грелось, дым не шёл, запаха гари не было, во время «неработы» ничего не выходило из строя. Все новые измерения ни к чему не приводили, приедем, покатаем дозиметр целый день и уедем. Заказчика пока не разочаровывали, но сами в мыслях отказались от покупки яхт и ягуаров. ХЗ что с ним можно сделать, куча микросхем и даже целых плат и блоков которые принципиально нельзя проверить, ну свечка конечно поставлена… В общем только на Бога надежда…

    Свечка походу сработала… в командировки ездили на блакаре из экономиии (поездки не оплачивались заказчиком как сомнительная статья расходов, ХЗ может мы специально катаемся). Аэропорт находится на выезде из города, по пути в наш родной город, обычно за незначительную доплату договаривались с водителем что заберёт нас прямо из аэропорта. В общем блакар это не такси, и бывает отменяются поездки. Вот очередная поездка отменилась (чудо первое!), забронировали следующий, времени пара часов, поздний вечер, чтобы не обострять синдром вахтёра у дежурного, изображаем работу — катаем нонстопом дозиметр. Чисто чтобы из дежурки в камеру было видно, что что-то мигает и двигается. Катали не глядя, ХЗ чего там смотреть, тысячи раз уже катали до этого. Внезапно оказалось что на мониторе проявились очень слабые и невнятные очертания дозиметра!!! ХЗ что там происходит, наверное что-то прогревается или даже перегревается, но до этого никогда не катали без остановок неск часов подряд потому и не было такого. При выключении и повторном включении снова белый экран… Но после примерно пары сотен прокатываний опять появлялись едва различимые силуэты дозиметра (вообще нагромоздили на конвейер кучу барахла, свои рюкзаки, одежду, инструмент, горшок с цветами, второй монитор ЭЛТ). Предметы находящиеся дальше от генератора имели более расплывчатые очертания, те что ближе в принципе даже узнавались. Папка с фотографиями и видео после этой поездки называлась «прорыв!!!». Но всё же смешно говорить о досмотре каком-то если в лучшем случае после 200 прокатываний, можно отличить цветочный горшок от монитора ЭЛТ по едва заметным очертаниям. Тем не менее это свидетельствовало о том что линейки работают, дозиметр зашкаливает судя по всему работает и генератор, на мониторе READY и двигаются белые прямоугольники (здесь должно быть содержимое вашего чемодана) судя по всему работает и компьютер и блок управления конвейером. Но всё же что-то важное не работает…
    На платах куча перемычек, дип-переключателей, разных селекторов, диагностических разъёмов и т.п., опять же 10% деталей которые проверить нельзя имеющимся оборудованием…. Но всё же прорыв такой сильно ободрил команду.

    Я тупо вбивал в гугл все возможные набписи на платах в попытках найти хоть какую-то информацию, но мы не знаем даже как интроскоп называется полностью… heimann это всё что о нём известно! Написал письмо слёзное производителю приложил фото — игнор ожидаемый. Интроскоп произведён в доинтернетные времена и никакой инфы вообще не встречается в сети. Гуглились названия плат, всякие маркировки второстепенные, в разных контекстах «интроскоп», «ремонт итроскопов», «неисправность интроскопа» и т.д. и т.п. на русском, английском, немецком (немецкий интроскоп), ничего за что можно зацепиться…

    Чудо второе… в сотый раз пересматривая объявления с ебея (со значительно более современными платами) увидел фото в хорошем качестве платы управления генератором от более современной модели… Случайно обратил внимание, что на одном из фото, дип переключатель (на нашей пате стоит перемычка) находится в другом положении. ХЗ что это за переключатель, ХЗ что там за буквы написаны и даже назвали мы её «платой управления генератором» сами чисто потому что к ней подключен генератор))). Но факт, на фото с ебея, где написано что плата исправна снята с рабочего интроскопа переключатель находился в другом положении. Переставил перемычку и всё заработало!!!
    Да, собственно, к чему я это…

    Даже если ты видишь баг на плате в заголовке поста, даже если у тебя есть тестер всего на свете за 3млн (abi-electronics). Не забывай ставить свечку))))

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

Добавить комментарий

Ваш e-mail не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.