Автор | Сообщение |
jek-1975
|
Речь пойдёт о кухонных 5кг весах Beurer KS 32, с платой 9932KS32A, 20071106 (маркировка слева и справа на плате, медью, слева и справа от шлейфа ЖКИ).
Примерно через год после покупки весы начали занижать вес примерно вдвое. Месяц назад нашёл время попытаться решить этот вопрос путём изучения процессов записи и чтения из I2C флешки 24с02.
Сразу скажу, что в результате опытов пациента добил окончательно, но есть и интересные результаты. О них по порядку. Но сразу скажу, что до переменных отвечающих за калибровку добраться не успел.
- ВХОД В СЕРВИСНЫЙ РЕЖИМ: при включенных весах одновременно нажать кнопки "ON/OFF" + "Tare" (последняя у меня отсутствует, но на плате есть разъм GND+Tare) и держать несколько секунд пока не загорятся все сегменты ЖКИ (и порядок нажатия кнопок значения не имеет).
- ПЕРЕКЛЮЧЕНИЕ МЕЖДУ ПАРАМЕТРАМИ: После отпускания кнопок каждое следующее нажатие "ON/OFF" будет приводить к переходу к следующему параметру P0, P1, P2, P3, и последним индицируется "сырой" код с тезоусилителя. Пока код "плавает" перейти к следующему пункту (т.е. к выходу) невозможно.
После перебора всех пунктов кратковременно появляется надпись H740 - возможно это и есть какой-то коэффициент калибровки, и весы выключаются.
- ИЗМЕНЕНИЕ ПАРАМЕТРОВ изменение параметра P0,P1,P2,P3 осуществляется нажатием кнопки "ON/OFF" при зажатой "Tare". Переключение между цифрами этого параметра кратковременное нажатие "Tare".
Последний пункт (сырой код тезооусилителя) не имеет настройки, но если зажать кнопку "Таrе", то последовательно отображается надпись "20070623" - видимо дата написания программы для контроллера.
- СОДЕРЖИМОЕ ПАРАМЕТРОВ P0,P1,P2,P3 расшифровать не успел. Могу только сказать, что не все из них "цифры", есть и "битовые параметры". Например одним из битов можно переключать режим отображения запятой (0.01 кг или 10 грамм). Но точно есть и цифровой (например можно назначить верхнюю границу "Err" +-1000 грамм или любую другую)
- В случае повреждения или отсутствия микросхемы 24С02 весы при включении выдают ошибку 2402, и естественно не работают, хоть способность входить в в сервисный режим и остаётся.
- При запуске весов контроллер пытается читать флешку по адресам: 0x80...0x0C. Вся остальная часть флешки заполнена FF. Содержимое моей флешки с адреса 0x80 после возникновения неисправности и записи произвольных чисел в P0,P1,P2,P3 (т.е. не рабочая) такое:
03 51 41 93 51 00 00 00 00 00 62 1B 00.
- Дальнейшие эксперименты проводить невозможно, так как в результате жестокого опыта похоже сгорела часть I2C передатчика (каждый из контактов SCL и SDA представляет из себя два инвертора соединённых вместе со стороны линии, и разделённых со стороны контроллера - это сделано для того, чтоб контроллер мог "слышать" 0 на линии, в то время, как он хочет послать "1") в контроллере и он теперь не видит ответы флешки. Эксперимент был такой: закоротить SCL и SDA, чтоб весы не брали оттуда коэффициент калибровки, и посмотреть что они "навешают" с 00 или FF коэффициентами, но теперь весы больше не могут показывать вес, а только ошибку "2402". |
|
xarl
Модератор
Сообщения: 21736
|
jek-1975, |
|
n max
Модератор
Сообщения: 16559
|
Насколько я помню из калибровочных данных в епром весы пишут код ацп соотв нулевой нагрузке+смещение кода ацп при установке максимального или калибровочного веса.Остальные результаты взвешивания высчитываются из этих данных.Вам то всего то надо было увеличить смещение в 2 раза-пропорционально погрешности,но мы ж не ищем лёгких путей |
|
jek-1975
|
n max писал: | Насколько я помню из калибровочных данных в епром весы пишут код ацп соотв нулевой нагрузке+смещение кода ацп при установке максимального или калибровочного веса. |
Я понимаю это, тем более что принимал участие в калибровке как минимум 3х разных промышленных весов. Но там обычно каждая стадия калибровки как-то отделена от других. А тут только на последнем этапе показывают "сырой" код, причём достаточно близкий к "нулю" (разница между максимум и минимумом, который удаётся достичь воздействием на тензодатчик = 0 = тензодатчик исправен).
Единственное что приходило в голову - выйти из сервисного режима не с пустой платформой, а с грузом - но результата никакого.
Всё было бы по другому, если устройство для чтения/записи Флешки я б припаял ДО губительных экспериментов, но хотелось придумать простое решение - тут я виноват на 200%.
Тем более у меня и логический анализатор, который умеет слушать был в этот момент... |
|
n max
Модератор
Сообщения: 16559
|
Код ацп при 16 битном преобразовании меняется от 0 до 65535,датчик ненагруженных весов должен показывать где-то в районе 5-10 тыс дискрет ацп это соответствует выходу сигнала с датчика в районе 1миливольта если у вас ненагруженный датчик выдаёт больше по модулю то надо его симметрировать-т.е восстанавливать баланс моста тензорезистров |
|
jek-1975
|
n max писал: | датчик ненагруженных весов должен показывать где-то в районе 5-10 тыс дискрет ацп это соответствует выходу сигнала с датчика в районе 1миливольта если у вас ненагруженный датчик выдаёт больше по модулю то надо его симметрировать-т.е восстанавливать баланс моста тензорезистров |
Большое спасибо за теорию, но в данном случае датчик безымянный, а контроллер весов, как я уже сказал - убит (не видит флешку), и уж тем более лезть в баланс моста без замены контроллера бессмысленно.
Но тем не менее, раз сервисный режим у меня всё ещё работает "характеристику" я снял "пачками макаронов":
растянут в упор = 0000
свободно (в сборе с крышкой) = 1FFF
1 кг ~ 3250
2 кг ~ 4400
3 кг ~ 5500
4 кг ~ 6400
5 кг ~ 7600
прижат в упор = F424
х.м. получается я слегка вас обманул - разница не "0", но весам от этого уже легче не станет - мёртвый контроллер залитая каплей эпокидки одноразовая хрень. А если подключать тензодатчик к другому измерителю, с целью узнать "как оно так на самом деле - тензодатчик или усилитель глючат, или так и надо", то это уже будет другая история, для другого форума.
Суть в том, что у этих весов всё же есть сервисный режим, но в нём P0,P1,P2,P3 и не содержится калибровочной информации. |
|
n max
Модератор
Сообщения: 16559
|
|
xarl
Модератор
Сообщения: 21736
|
|
jek-1975
|
xarl, странно, но каждый раз после того как я воспользуюсь поиском, и отпишусь в теме с аналогичной проблемое моё сообщение зачем-то оттделяют оттуда. Модель, марку и т.п. я ВСЕГДА указываю.
Насчёт профиля - читал в правилах никаких обязательных требований к нему нет.
Вот только про кнопку "решено" не знал.
Ну да ладно, я так понял что вы мне здесь не рады. Постараюсь поменьше писать сюда. Благо есть ещё "Радиокот" и "4PDA" с более адекватными участниками и администрацией. |
|
|