четверг, 25 февраля 2021 г.

Варочная панель Samsung C61R1 и параметры микросхемы CT1C08

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


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

Во время таких ремонтов важно полностью удалить все частицы углерода -  угля и сажи, и защитить плату исключив вероятность нового пробоя. Для восстановления очень удобно пользоваться фотополимерами и такие работы мною много раз проводились, так что не вызвали никаких трудностей. Силовая часть была полностью восстановлена и казалось, что всё заработало. Но в ходе испытаний оказалось, что одна из сенсорных кнопок не работает. Сперва я подумал, причина может быть в остатках сажи на стекле или на поверхности сенсорной платы, ведь ей тоже немного досталось. Но причина оказалась намного глубже...


Я выяснил, что сенсорная кнопка переслала работать ещё задолго до этого инцидента. В первую очередь сравнил сопротивления и ёмкость неисправной кнопки с исправными, никаких значительных различий выявлено не было. И единственным виновником могла быть только сама микросхема, емкостный сенсорный контроллер CT1C08x. При помощи осциллографа я посмотрел импульсы на кнопках и также не обнаружил никаких заметных отличий. Оказалось, что эти кнопки срабатывают только при определенной ёмкости, меньше или больше и они уже не срабатывают. Со снятым стеклом, аккуратно поднося палец мне удалось заставить включится неисправную кнопку. Выходит она не обладает достаточной чувствительностью, чтобы сработать через толстое стекло.

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

Дело в том, что эти микросхемы обладают целым рядом настроек и функций. Они даже позволяют оценивать силу нажатия по изменению ёмкости. Настраивать чувствительность каждой отдельной кнопки и применять площадки в качестве референтных для фильтрации шумов и избегания ложных срабатываний. Но все эти фишки не относятся к этой плите... Изменение параметров и считывание данных производится по шине I²C. Но на нашей плите шина I²C никуда не подключена, она висит в воздухе и используется только для внесения настроек, прошивки. Любой сбой в памяти или изменение свойств текстолита, и кнопки работать не будут.


Причина можно сказать найдена, осталось только считать и отредактировать "прошивку"! Адреса у обеих микросхем стандартные 0xB8 и 0xBA, различия последнего значащего бита заданны аппаратно подтяжкой 19-й ножки (I2C_SC0) к GND и VDD соответственно. Но ни один из имеющихся у меня программаторов не хотел "общаться" с этими микросхемами... 

В итоге после нескольких часов мучений с разными программаторами я уже почти готов был плюнуть на эту затею, с "воскрешением" давно "умершей" кнопки, но любопытство одолело. Я взял первую попавшуюся под руку платку с любимым STM32 (её оказался STM32F103C8T6) и быстренько накидал программку, для работы с I²C. Через пол часа я смотрел на экране осциллографа, как эта плата продолжает игнорировать мои запросы... 

    -    Ну чёрт возьми! Какого хрена? Всё ж именно как надо, все фронты, все спады... Нет только злополучного ответа ACK!

Последняя надежда! Я снизил скорость I2C cо стандартных 100kHz до 10 kHz. И тут всё заколосилось.

Я считал данные с обеих микросхем. Оказалось, что они не слабо отличаются, на одной используется все 8 каналов, на другой только 6 (нулевой и седьмой отключены). Все кнопки имеют разные параметры чувствительности. Но больше всего меня удивило, что у не работавшей кнопки параметр чувствительности выходил за пределы документированного.

Согласно документации в 12-м регистре задается общая чувствительность, а в следующих 8-ми корректировки для каждой кнопки, и они должны быть в пределах 0-127. Но в этой микросхеме было записано три канала со значениями выше 0xF0. Не долго думая, я откинул старшие биты и записал значение близкое к тем что прописаны в соседних полях. Вместо 0xFA я ввел 0x39. Никаких особых манипуляций для сохранения данных в EEPROM не понадобилось. Установил плату на плиту и все кнопки заработали.

Вот и дамп регистров памяти, которые исправно работают на данном аппарате.

CT1C08 dump EEPROM (прошивка)

Голубым выделены именно те, которые отвечают за чувствительность отдельных кнопок. Скорее всего эти значения подбираются экспериментальным путём и на разных кнопках, на разных платах, с разными стёклами будут отличаться.

28 комментариев:

  1. здравствуйте
    не подскажете
    как стыкануть stm c CT1C08

    ОтветитьУдалить
    Ответы
    1. Какие у вас проблемы? Стандартный I2C... Вроде нюансы описал.

      Удалить
  2. Здравствуйте.
    По I2C, можно и конфигурировать и состояние считывать.

    ОтветитьУдалить
  3. Здравствуйте. я менял на панели CT1C08 .прошивки у меня не было нашёл фото дампа прописал за шил все заработало .поставил стекло не чувствует ключа.подскажите что отвечает за чувствительность ключа.

    ОтветитьУдалить
    Ответы
    1. Схемы у меня нет... Посмотрите, к какой ноге микросхемы идет от него дорожка. А там по документации глянуть, или сюда напишите, я подскажу. Каким программатором пользовались?

      Удалить
  4. Ответы
    1. Как подключались? у меня почему то не хочет считывать

      Удалить
  5. Добрый день. На 11 ноге замок на CT1C08.не могу найти что в дампе поменять.

    ОтветитьУдалить
    Ответы
    1. Менять нужно байт по адресу 0x0F. Ну и адрес микросхемы правильно выбрать (подозреваю, что это та, что 0xBA)... Попробуйте вместо 0x0D прописать например 0x2D... А там будет видно, хуже стало или лучше.

      Удалить
    2. Здравствует!
      Можете по подробнее объяснить как найти байт 0x0F, и как вместо 0x0D прописать например 0x2D ?

      Удалить
  6. А вместо фото готовый dump прошивки не залить на ресурс? Я так понял с фото если самому писать в этом HxD Hex Editor?

    ОтветитьУдалить
    Ответы
    1. А вы только картинки смотрите? Прочитать то, что я написал не судьба? Смысл вам вшивать данные от чужого стекла?

      Удалить
    2. Я уже перепаял новую микросхему CT1C08, почитал комментарии на алике что якобы она прошита поставил и забыл, но ничего подобного. Вот теперь думаю как заливать и есть ли там какие данные? А стекло такое же.

      Удалить
    3. Стекла одинакового небывает... Под каждое нужны свои калибровки. Что с вашей микросхемой изначально случилось? Нужно её считать и исправить что не так. Вообще по хорошему нужно утилиту для калибровки найти или написать... Тогда всё быстро и четко будет. Но мне такого рода технику редко приносят, так что вряд-ли ещё раз столкнусь, смысла писать приложение ради одного ремонта небыло.

      Удалить
  7. Проблема почти один в один с прогаром, только после удаления копоти, плита не разблокирует пишет знаки L. Предполагаю что владелец с копотью, после прогара пытался запустить ещё раз плиту. Я прочитал что слетела прошивка CT1C08, далее залез на алик и прочитал комменты и заменил. Проблема не решилась. БП в порядке.

    ОтветитьУдалить
    Ответы
    1. Под что прошита? Там две микросхемы... Параметры одной отличаются от параметров второй даже по количеству используемых кнопок. Если их поменять местами - точно работать не будет.

      Удалить
  8. Когда на машине Indesit слетела прошивка, тема такая же была. И там никто не писал сколько Indesit столько и прошивок. Есть модель машины и прошивка, залил и пашет. Так и тут. Есть модель плиты и если она совпадает залил и всё. Не поверю что Ваша плита и плата в единственном экземпляре :)

    ОтветитьУдалить
    Ответы
    1. При чем здесь прошивка?! Прошивка в микроконтроллере лежит. А это калибровочные данные сенсорной панели! У каждой плиты свои калибровки, от одной к другой не подходят, 100 раз обсуждалось.

      Удалить
  9. У меня та что с одной микросхемой CT1C08, там есть место под другую, но оно пустое. Тогда почему везде пишут что она уже прошита и пишут после замены всё заработало?

    ОтветитьУдалить
    Ответы
    1. Где это везде такое пишут? Я вот наоборот вижу сообщения, что микросхему поменяли ничего не заработало пока не прошили... А если у китайцев пишут, то там что угодно написать могут, им абы продать. В конфигурации задается режим работы кнопок, их количество и параметры чувствительности для каждой кнопки. Они отличаются, так как отличается длинна и расположение дорожек идущих к сенсорным площадкам. Datasheet в открытом доступе, есть гиперссылки из статьи. Без правильной конфигурации к конкретной плате оно работать не будет!

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

    ОтветитьУдалить
    Ответы
    1. Чего Вам не понятно из статьи выше? Микроконтроллер не может управлять этими микросхемами! Шина I²C вообще никуда не подключена. После сборки сенсорной панели туда подключают специальный "программатор" который и проводит калибровку и настраивает режим работы кнопок. Всё, по другому никак! Прочитайте datasheet на CT1C08x... Впаяйте старую микросхему и прочитайте параметры.

      Удалить
  11. Мы наверное на разных языках общаемся поэтому не понимаете. Перечитал Вашу статью и понял, что Вы использовали STM32F103C6T6 или STM32F103C8 какой из них не ясно. Микросхема на плате стоит 0хВА другой нет вообще там? только место под неё. Я так понимаю надо подключить программатор, считать данные и с помощью программы изменить всего лишь значения согласно Вашей фотографии? Просто не все занимаются ARDUNIO :)) чтобы вникать во всё это. Правда так и не понял почему кнопки заблокировались, при разблокировке показывают значение L. Там что значения поменялись какие?

    ОтветитьУдалить
    Ответы
    1. Arduino я тоже не использую и в большинстве случаев - откровенно презираю... Хотя если вам так проще можете хоть ардуино, хоть что угодно использовать, абы оно могло читать и писать регистры по I2C на этой плате. Ни CH341, ни другие программаторы, которые у меня есть не смогли этого сделать. Так что взял первый попавшийся микроконтроллер, под него написал за пол часа. Нет вообще никакой разницы в данном случае, хоть STM32F103C6, хоть STM32F103C8 хоть любой другой, все они умеют I2C... Хотя тот который я использовал, четко указан в статье, и это мне непонятно, откуда Вы взяли маркировку другого... А вообще, на физическом уровне хоть CH341, хоть FT232H или FT2232D могут это сделать, если найти или написать соответствующий софт для работы с CT1C08x.

      Удалить
    2. Скиньте сюда, то, что считали... У меня была другая плата, с двумя микросхемами. Явно вам эти настройки не подойдут.

      Удалить
  12. Вы так и не ответили. С помощью программы NEO programmer сняли данные и изменили прямо в ней? Я так понимаю после копоти слетела калибровка? Т.е согласно Вашей фотографии подключить программатор проверить и изменить данные?

    ОтветитьУдалить
    Ответы
    1. Для начала считать данные и выложить их сюда... У меня NeoProgrammer на тот момент не смог этого сделать. Возможно что-то поменялось, пробуйте.

      Удалить
  13. One 우리카지노 of the great things concerning the internet is that people are so related than ever before. That means a web-based casino cannot deal with gamers however they like without it resulting in a barrage of very public complaints for all to see! By the same token, if a participant has had an outstanding expertise at one of the best on-line casino, they'll wish to shout about it, so participant reviews work toweeding out the shady websites and homing in on the great ones. For anyone on-line casino participant is the game choice offered at their chosen platform, and South Korean gambling fanatics are not any exception. Make sure to check which casino software builders truly provide the game titles within the given choice, as this can also make a distinction in your total expertise. Over time, I discovered more about sports betting and found the fascinating on-line gambling trade.

    ОтветитьУдалить