Инженер Г.Хаус.
Jun. 2nd, 2010 08:38 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Как-то раз в
ru_radio_electr попался текст про гениального инженера-диагноста, распутывающего безнадёжные случаи.
Так вот, могу с уверенностью сказать - я только не хромой.
В общем, такая ситуация. Представим себе небольшую исследовательскую (как всё у нас) разработку, экспериментальное устройство. Первый вариант схемы разработан лично мной, первая редакция печатной платы так же была спроектирована мной, и даже первый экземпляр этого устройства собрал уже понятно кто.
ИЧСХ, всё работало.
Потом начались собственно эксперименты и тут внезапно оказалось, что моя плата слишком, типа, большая. Переразводку поручили уже упоминавшемуся конструктору-"оптимизатору". Ну, он переразвёл - плата стала меньше.. короче по одной стороне миллиметров на 15. Не знаю, помогла ли такая экономия, но ввиду неких особенностей технологической цепи в схеме появились ошибки, которых там раньше не было. И в плате, соответственно, тоже.
Что-то нашлось почти сразу. Что-то оказалось чисто механическими недостатками, часть глюков объяснилась недостаточно качественной отмывкой платы (это всё треклятый "активный флюс" -- если монтажники продолжат его использовать, то я буду страшно разгневан).
Даже перепутанные местами выводы на одной микросхеме определились.
Заработавшую плату отдали программистам для пыток.
Собрали ещё несколько штук и тут обнаружилось нечто странное.
Ни одна из свежесобранных плат не хотела нормально грузиться. Подключаем программатор, заливаем прошивку - стартует. Отключаем программатор - плата продолжает работать. Передёргиваем питание - всё, привет, глухой зависон. Причём как-то слабопредсказуемо, т.к. иногда некоторые платы всё же заводились.
Тот экземпляр, который остался у программистов, притащили на анализ.
Следствие перебрало следующие варианты:
- Всё-таки флюс. Надо тщательно-претщательно отмыть-перемыть!... Не помогло.
- Не пропаян какой-то слабозаметный контакт (однажды так уже было, вылечилось прогревом собранной платы в печке)... Не помогло.
- В преобразователе питания стоит слишком большой конденсатор на выходе, из-за чего напряжение питания растёт слишком медленно. Ёмкость уменьшили на порядок - не помогло. Увеличили - не помогло.
- В схеме сброса, наверное, слишком малая длительность выходного импульса. Увеличили на порядок - не помогло. Увеличили в тыщу раз - не помогло. Заодно нашёлся другой глюк в этой участке схемы. Устранили - не помогло.
- Может, на флэш питание не приходит? Померяли - есть, всё в порядке. Осциллографом даже посмотрели, всё чисто. Ах, да, прошивка же заливается нормально... Не помогло.
- Может, блокировочные конденсаторы слишком малую ёмкость имеют? Маркировки же на них нет, как проверить - те или не те? Отпаяли, промеряли - те. Не помогло.
- Может, какая иная ёмкость дефектная - керамические конденсаторы, бывает, трескаются от грубого обращения, так может?.. Нет, вряд ли, это бы иначе проявлялось.
- Может, не надо было СОВСЕМ выкидывать обвязку питания аналоговой части микроконтроллера-то? Ну и что, что мы её не используем - производитель рекомендует всё равно её оставлять. Допаяли - не помогло.
- Может, глючная партия контроллеров? На работающей плате серийный номер начинается на "8", а на всех нерабочих - "9". Может, перепаять и всё кончится? Перепаивать не стали, потому что монтажники уже ушли домой.
В глазах бригады замельтешило отчаяние.
Босс пришёл ко мне и сказал - "спасай".
Ну, что уж тут.
Нашли схемы - мою (старую) и новую. Начали сравнивать, смотреть на платы, исследовать.
Я грю - значит, подключаете программатор и плата работает?
Ага.
Ну вот, смотрите - на моей схеме тут резистор включён между одним из контактов программатора и "землёй" схемы, а у вас тут этот резистор стоит между контактом программатора и питанием.
Перепаяли и всё сразу заработало.
Занавес, титры.
P.S. дополнительные сцены, не вошедшие в прокатный релиз: на той плате, которая всё же работала, этот самый резистор был припаян всего одной ножкой.
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-community.gif)
Так вот, могу с уверенностью сказать - я только не хромой.
В общем, такая ситуация. Представим себе небольшую исследовательскую (как всё у нас) разработку, экспериментальное устройство. Первый вариант схемы разработан лично мной, первая редакция печатной платы так же была спроектирована мной, и даже первый экземпляр этого устройства собрал уже понятно кто.
ИЧСХ, всё работало.
Потом начались собственно эксперименты и тут внезапно оказалось, что моя плата слишком, типа, большая. Переразводку поручили уже упоминавшемуся конструктору-"оптимизатору". Ну, он переразвёл - плата стала меньше.. короче по одной стороне миллиметров на 15. Не знаю, помогла ли такая экономия, но ввиду неких особенностей технологической цепи в схеме появились ошибки, которых там раньше не было. И в плате, соответственно, тоже.
Что-то нашлось почти сразу. Что-то оказалось чисто механическими недостатками, часть глюков объяснилась недостаточно качественной отмывкой платы (это всё треклятый "активный флюс" -- если монтажники продолжат его использовать, то я буду страшно разгневан).
Даже перепутанные местами выводы на одной микросхеме определились.
Заработавшую плату отдали программистам для пыток.
Собрали ещё несколько штук и тут обнаружилось нечто странное.
Ни одна из свежесобранных плат не хотела нормально грузиться. Подключаем программатор, заливаем прошивку - стартует. Отключаем программатор - плата продолжает работать. Передёргиваем питание - всё, привет, глухой зависон. Причём как-то слабопредсказуемо, т.к. иногда некоторые платы всё же заводились.
Тот экземпляр, который остался у программистов, притащили на анализ.
Следствие перебрало следующие варианты:
- Всё-таки флюс. Надо тщательно-претщательно отмыть-перемыть!... Не помогло.
- Не пропаян какой-то слабозаметный контакт (однажды так уже было, вылечилось прогревом собранной платы в печке)... Не помогло.
- В преобразователе питания стоит слишком большой конденсатор на выходе, из-за чего напряжение питания растёт слишком медленно. Ёмкость уменьшили на порядок - не помогло. Увеличили - не помогло.
- В схеме сброса, наверное, слишком малая длительность выходного импульса. Увеличили на порядок - не помогло. Увеличили в тыщу раз - не помогло. Заодно нашёлся другой глюк в этой участке схемы. Устранили - не помогло.
- Может, на флэш питание не приходит? Померяли - есть, всё в порядке. Осциллографом даже посмотрели, всё чисто. Ах, да, прошивка же заливается нормально... Не помогло.
- Может, блокировочные конденсаторы слишком малую ёмкость имеют? Маркировки же на них нет, как проверить - те или не те? Отпаяли, промеряли - те. Не помогло.
- Может, какая иная ёмкость дефектная - керамические конденсаторы, бывает, трескаются от грубого обращения, так может?.. Нет, вряд ли, это бы иначе проявлялось.
- Может, не надо было СОВСЕМ выкидывать обвязку питания аналоговой части микроконтроллера-то? Ну и что, что мы её не используем - производитель рекомендует всё равно её оставлять. Допаяли - не помогло.
- Может, глючная партия контроллеров? На работающей плате серийный номер начинается на "8", а на всех нерабочих - "9". Может, перепаять и всё кончится? Перепаивать не стали, потому что монтажники уже ушли домой.
В глазах бригады замельтешило отчаяние.
Босс пришёл ко мне и сказал - "спасай".
Ну, что уж тут.
Нашли схемы - мою (старую) и новую. Начали сравнивать, смотреть на платы, исследовать.
Я грю - значит, подключаете программатор и плата работает?
Ага.
Ну вот, смотрите - на моей схеме тут резистор включён между одним из контактов программатора и "землёй" схемы, а у вас тут этот резистор стоит между контактом программатора и питанием.
Перепаяли и всё сразу заработало.
Занавес, титры.
P.S. дополнительные сцены, не вошедшие в прокатный релиз: на той плате, которая всё же работала, этот самый резистор был припаян всего одной ножкой.