Tag Archives: Прикол

Глюки контроллера. Ответ на загадку

Если вы не знаете о чем речь, то сначала рекомендую прочитать исходную задачу. Поломайте голову, не читайте комментарии, пишите свои. А потом возвращайтесь сюда.

Итак, девайс глючил. Причем глючил очень и очень характерно для срыва стека. Не зря первая половина поста была про поиск программной ошибки. Что такое срыв (он же переполнение) стека? Это когда стековая область памяти разрастается и начинает затирать область переменных. В результате может начаться полное веселье. Запороло переменные состояний автоматов? Получай наркоманскую логику. Запороло строковые данные — получи бред и кракозябры на экране (мой случай). Запороло видеопамять — здравствуй психоделичные картинки. Впрочем, тут и не в стеке может быть дело. Неправильно обращаясь с указателями можно навертеть такой же поебени. Суть одна — у нас каким то образом похерилась оперативная память. Не зря я полез первым делом проверять код. Но ничего не нашел.

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

(далее…)

Read More »

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

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

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

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

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

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

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

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

Read More »

Микросхемы из Китая

Периодически я на всяких Алиэкспрессах покупаю микросхемы или сборки. Т.к. цена там копеечная и наловил с этого немало лулзов. Не секрет, что Китайцы прирожденные оптимизаторы и способны удешевить и упростить любую вещь. Либо сделать говна конфетку, ну по крайней мере она будет так смотреться. И если с ущербной и упрощенной схемотехникой разных модулей и блоков все понятно, то с микросхемами могут быть разные приколы.

Очень часто можно нарваться на перемаркировку, как, например, я в посте про поиск глюков NC и ПИЛУ. Там я вместо NCP551SN30 купил перемаркированные под него LP2985-30 в результате получил веселые эффекты.

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

Поначалу никто ничего не заметил, пока на форуме не возникла тема о том, что пищалка-то с генератором, а в документации про это ни гугу. Обана… Стали проверять детально — точно, с генератором. Внешне не отличимые. Причем через раз, в одной и той же партии может быть как с генератором, так и без него О_о. Когда и где это случилось и сколько мы клиентам отгрузили таких плат неизвестно. Клиенты правда считают, что это не баг, а фича. Но я с ними не согласен, я так не задумывал. Перетряхнули поставщика, нашли точно те что необходимо и заменили.

Но это все фигня, проблема решается еще на этапе конструирования и не ведет к каким-либо проблемам. Хуже когда нарываешься на глючные микроконтроллеры или другую сложную логику. Ниже будет несколько случаев на которые я лично напоролся покупая комплектуху в Китае.

(далее…)

Read More »

Рацуха!

Была у меня одна маленькая проблема — катушка с припоем вечно на столе черти где валялась и постоянно терялась из виду. Постоянно оказывалась в неудобном месте и занимала драгоценное пространство. Конечно, это проблема моего личного рабочего бардака, но по другому я не умею. Проблему припоя решил радикально — просверлил в столе небольшое отверстие и спрятал катушку под стол. Теперь припой идет «из под земли» месторождение прям :) А чтобы не прожигать стол паяльником, я наклеил тут же рядом монетку, на которой и происходит отбор припоя.

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

Read More »

Заряжаем IPod от лимонов

Мой давний ЖЖ камрад dlinyj периодически отмачивает прикольные опыты. Вот и сейчас его подорвало на физические эксперименты. Кризис тут намечается, глядишь Чубайс электричество в розетке похерит, а музычку послушать хоца, а батареек в iPOD насовать нельзя, утырки из Apple лишили нас этой замечательной возможности. Как тут быть? Засада… Но ничего, в условиях полного и безоговорочного БП мы найдем выход из трудного положения!

Dlinyj:
В общем сегодня сделал такую штуку — зарядку айпода (айпфона, и прочей приблуды Апловодов) от лимонов! Дла начала школьный курс химии/физики. Берётся лимон, берётся оцинкованный гвоздь, и медная проволка. (далее…)

Read More »