Предупреждение: у нас есть цензура и предварительный отбор публикуемых материалов. Анекдоты здесь бывают... какие угодно. Если вам это не нравится, пожалуйста, покиньте сайт. 18+

История №318939

Ну, слава БГ, конкурс закончился - можно компьютерные истории просто так
посылать. Без затаенной надежды увидеть плавно падающий с неба лэп-топ.

История предназначена для имеющих минимальное представление о работе
микропроцессорных устройств, а так же представляется мне забавной и
полезной для практикующего электронщика и embedded-программиста.

История повествует о том, к чему приводит улучшение технологии
производства продукта без оповещения производителем покупателей продукта
о вышеуказанном улучшении.
Поэтому, назовем ее так:

"Дорога в ад вымощенна благими намерениями".

Дело было давно, в 1992-м, может быть, году. Мы были очень маленькой
американской компанией. Два человека: мой босс да я. Наш клиент,
очень-очень большая компания, продукция которой контролировала токи
величиной в сотни, тысячи и десятки тысяч ампер (в одном случае - от
отдельной подстанции - мы с мелочами не чикались), использовала в одном
из своих продуктов наш контроллер, собранный на микропроцессоре фирмы
Моторола. Звали процессора 6811. Ну это вроде как "Ваня". А еще можно и
так: MC68SEC11E2FN. Это уже вроде как Ованес Мкртычевич Тер-Абайтов.
Может, кто и помнит. "Секретная версия" с довольно новой еще тогда
технологией ПЗУ-памяти типа EEPROM (цельных 2К-байта) прям на самом
процессоре.
В этом самом EEPROM-е и были записаны параметры управления всей
системой, которые вводились один раз, при установке, и больше обычно не
трогались.

И вот, когда система эта существовала уже довольно долго (сделана она
была в конце 80-х и вполне себе успешно работала в металлургической
промышленности США), поступил к нам на первый взгляд довольно безобидный
сигнал от клиента, что, мол, параметры из одной из систем стали по
выключении пропадать. Т. е. вот: стоит система, работает. Выключили.
Включили. А параметров-то и нету.

Я, как человек с определенным опытом ремонта в прошлом (4 года на
участке ЧПУ на заводе; кто бегал зимой между цехами с осциллографом -
тот знает), сразу почувствовал, что одним сигналом это не кончится:
платы, они стаями летают. Закон такой.
Так и оказалось: через пару недель параметры самоизничтожались уже на
5-ти системах из недавно поставленных 12-ти.

В общем, босс поручил мне разобраться и доложить.

Я потыкался осциллографом в сигнал "Ресет", коим управляла мааленькая
штучка фирмы Моторола же по имени MC34064, ибо такие проблемы, типа
"включил - не работает", обычно начинают раскручивать именно с ресета;
ресет выглядел так: при выключении он, как и положено, когда питание
падало ниже некоторого уровня, притягивался к земле, но, когда питание
падало ниже 1.5В, вдруг притягиваться к земле переставал, и ресет
быстренько подтягивался к 1.5В, создавая небольшой импульс, длина
которого зависела от скорости разряда питания. Зарисовал я картинки от
руки, и стал звонить в фирму Моторола.

И вот что я узнал.

Оказалось, что незадолго до того, как все это произошло, Моторола
улучшила свои процессоры. Заметьте отсутствие кавычек вокруг слова
"улучшила". Процессоры действительно были улучшены: они выпускались по
новому процессу, с меньшим количеством кремния, и (!) могли теперь
работать при мень-шем на-пря-жени-и пи-та-ни-я.
Почему-то практика изменения названия устройства с таким мощным
улучшением параметров тогда отсутствовала. Сегодня такой процессор
переобозвали бы как нибудь, просто, чтобы его, без должной экзаменации,
не совали в те продукты, которые были рассчитаны на применение старой
"неулучшенной" версии. Но тогда он был и остался процессором с тем же
именем, и потому продавался для тех же целей тем же людям для тех же
устройств. Моторола, со своей стороны, не удосужилась известить своих
клиентов об этом шикарном новшестве.

То есть если, к примеру, раньше процессор работал от питания в 5В, и
надежно прекращал работу, если питание падало до, ну, к примеру, 2.5В,
то теперь он мог работать при 2.5В, прекращая работать где-то в районе
1В.
Работать он, однако, прекращал не сразу, а постепенно. То есть некоторые
команды еще работали, а некоторые - уже нет.
И так уж случилось, что первыми отказывающими командами были команды
ветвления.

Далее все развивалось просто: у нового процессора, питание которого
упало до 1.5В, с отказавшими командами ветвления, и неотказавшими
остальными командами, запускалась программа, которая на старом
процессоре запуститься бы попросту не смогла в силу его неулучшенности.
Программа, идя напролом (ветвлений-то нетути), быстренько достигала
подпрограммки программирования EEPROM-а, (которая включает всебя
программульку стирания EEPROM-а), успешно все стирала, ну а тут
напряжение окончательно падало, и все выключалось; а при запуске работа
начиналась уже в режиме "параметры тю-тю".

Ну, дальше все было проще: Моторола, извинившись за непредупреждение об
улучшении своей продукции, порекомендовала другой генератор ресета, и
проблема была решена, сначала с помощью синих проволочек (это такой
аналог незаменимого спутника какой-то матери, кувалдометра, у нас,
радиоинженеров), а потом платку пришлось переделать.

Зачем я об этом пишу? Да соратников по цеху повеселить, а то уж больно
мало в нашей жизни смешного стало в последнее время, проходящее под
знаком китайской электроники. Ну а там, может еще кому понравится.
+20
Проголосовало за – 30, против – 10
Статистика голосований по странам
Чтобы оставить комментарии, необходимо авторизоваться. За оскорбления и спам - бан.

Общий рейтинг комментаторов
Рейтинг стоп-листов

Рейтинг@Mail.ru