April 27th, 2016

Хитрый ход!



Когда-то давно в рамках одной из халтурок применил память типа F-RAM. Это был привод запорного клапана на основе шагового двигателя. Хоть я и не любитель применять всякую экзотику, но это было крайней мерой, чтобы хоть как-то добить проект. Дело в том, что этот привод устанавливался взамен старых приводов на основе асинхронных двигателей переменного тока. А управляли ими самым нахальным образом: подавали 220 В на одну линию для открытия, на другую - для закрытия, для остановки - полностью отключали питание. В таких условиях надо было как-то запоминать текущее состояние. А помнить там было надо много всего, так как алгоритм заказчики наворотили сложный. Там и плавный разгон и остановка, выборка люфта при смене направления, детектирование окончания хода штока по анализу вращения двигателя, особые состояния "закрыто" и "открыто" с процедурой дожатия на пониженной скорости с большим моментом. Если бы имелось достаточное количество датчиков, например, концевые выключатели или датчик положения, ситуацию можно было бы нормально разрулить при холодном включении. Но почему-то от датчиков заказчики отказались, и такому "слепому" приводу оставалось только одно - помнить свое текущее состояние даже при отключенном питании. Поскольку питание могло прерываться очень часто и хаотично, запись в обычную EEPROM не подходила по ресурсу. Использовать RAM с батарейкой тоже было нежелательно - устройство становилось обслуживаемым, да и ресурс батарейки в условиях повышенной температуры (а клапан мог быть установлен прямо на трубе с горячей водой) был под большим вопросом. Идеально подошла F-RAM - в нее данные записывались после каждого изменения состояния привода, а также каждые 2 секунды во время рабочего хода.

И вот в один прекрасный момент, спустя много лет, поступил звонок - "Не работает". Не работает именно из-за микросхемы памяти. Если впаять микросхему из старой платы - тогда работает. Подозрение пало на новую партию микросхем. Тем более, их внешний вид вызвал некоторые подозрения. Обратились с претензией к поставщику, он прислал datasheet на эту микросхему с просьбой показать, по какому именно параметру эта микросхема является бракованной. Но указать такой параметр оказалось невозможно.

Collapse )