Ремонт PSU07T610 (Philips HTS 8100/12) [Схемотехніка]

Привіт!

Мені віддали саундбар Philips HTS 8100/12, який у напівробочому стані.
Якщо підключити його до живлення на передній панелі, загоряється червоний світлодіод. Далі якщо натиснути кнопку Standby то світлодіод загориться синім і на LCD з’явиться напис Philips.
Потім деякий час (секунд 10) він реагує наприклад на кнопки зміни гучності, але врешті-решт на тому ж LCD напише Low Pow і відключить екран.
Світлодіод продовжує горіти синім. Більше ні на що не буде реагувати.

Розібрав сабвуфер там знаходиться частина плат PSU, APB та AMP.
PSU там стоїть PSU07T610 SRA2034EK.
Вдалося в інтернеті знайти Philips Service manual на HTS 8100 а також принципову схему PSU
HTS8140_PSU07T610_EU_SRV2034EK%20MIT_2.pdf

Фотографії плати PSU:

Поміряв напруги на 5-ти піновому CN3 з підключеним PSU до плати з мікроконтроллером на APB board.
5: —24v — присутня той час коли PSU працює, служить я так розумію для живлення LCD дисплея
4: +5 Ever — є завжди, служить я так розумію черговою напругою
3: GND
2: +12VL — ніколи не з’являється
1: +5VL — теж ніколи не з’являється

Запускається PSU наскільки я видзвонив мултіметром наступним чином:
1) Відразу після включення в мережу на колодку CN1 пін 9 (on/off) з мікроконтролера піде 5v, на піні 10 (P-Down) при цьому 0v.
2) Після натискання на панелі HTS кнопки Standby, навпаки, на піні 9 (on/off) з’являється 0v (його притягуть до GND), а на піні 10 (P-Down) — 5v.

Через деякий час мікроконролер мабуть «розуміє» що решти напруг харчування не надходить і переводить все назад у стан 1.
Робив також виміри при повністю відключених колодках CN3, СN1, на пінах 9,10 завжди 0v.

Наскільки я зрозумів проблема відсутності напруг +5VL і +12VL швидше за все в тому що з якоїсь причини не працюють деякі обмотки трансформатора який на схемі позначений як T101 (деякі тому що все-таки дисплей —24V харчується також від цього трансформатора, і як я вже писав він працює).
Продзвін трансформатора на платі, каже що обмотки начебто в нього цілі.

Я простежив і зіставив назви компонентів IC152 — MIP2C1, IC131 — STR X6759 (на ці два компоненти я зміг знайти даташит)
А ось даташита на IC101, який саме стоїть у ланцюгу однієї з обмототок T101, я знайти не зміг. (На фотографії він зі зворотного боку плати)
Наскільки я зміг розглянути його маркування:
A0740
553
Чи знає хто те, що це таке?

Також якщо подивитися на колір доріжок на звороті плати де саме цей IC101, видно що грілося там дуже сильно.
Шукав також схожі проблеми з цим HTS. Є повідомлення, що буває проблема з гучністю при якій HTS звучить дуже тихо. І проблема та пов’язана з STR X6759 — лікується його заміною.
Але в моєму ж випадку думаю що проблема не там тому що міряв також напруги на колодці CN2 між пінами 1,2,3 (VCC) і 4,5,6 (GNDA) і в момент коли HTS працює там 36v, ну і взагалі по схемою це зовсім інший трансформатор.

Буду дуже вдячний за будь-які підказки з ремонтом цього PSU.

p.s.

Діоди та резистори на платі всі звісно продзвонив.

У кондерів (електролітів) ESR заміряв і ніби все норм (але чесно кажу не випаював їх)

👍ПодобаєтьсяСподобалось2
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Виклав на github: github.com/nen777w/HTS8100NewMaster
Прошивку для EPS32.
Згодом добавлю деталі фотографії та скріншоти.

Quick UPDATE #4
Я знайшов команду селектора входів!!!
Ось вона: C:00111111
З D:00000000 — не один вхід не активний.
Усі інші комбінаціі D напишу пізніше як перестану скакати до стелі :-)

p.s.
Фото робочого сета для історії: www.codijy.com/...​thers/20241030_170630.jpg

Update #3:
Вчора прийшов логічний аналізатор LHT00SU1, не погана штука, але більшість я вже винюхав на саморобному.
Підключив до I2C шини, мікроконтроллер ESP32 та написав невелику прошивку до нього.
Яка за допомогою бібліотеки WIRE, та терміналу (Serial Monitor) дозволяє від імені мастера 0×7C:
— відправляти команди у форматі C:XXXXXXXX,D:XXXXXXXX (де X-це 0|1).
тобто весь пакет I2C це: S1111100W+00000101+11010100+C+D+CRC+s
Та вичитувати відповідь від slave-а.
— робити перебор команд С (від 0 — 0xFF) з якимось (V).

Завдяки цьому:
Зробив мапу команд (тіх на які відреагував основний модуль і шось там написав на дисплеї).
Ось вона:

C:00010001,D:00000001 — volume up
C:00010001,D:10000001 — volume down
C:01010010,D:00000000 — stereo / auto stereo / Multi ch (ambisound)
0 — switch in cycle
1 — auto stereo
01 — multi ch
11 — stereo
100 — bypass
101 — bypass multi ch
010 — bypass stereo
C:00001101,D:00000001 — muted
C:00001101,D:00000010 — unmuted
C:00010111,D:00000000 — bass / treble (request)
C:00010110,D:00000100 — bass level set
C:00011000,D:00000010 — treble level set
C:01010001,D:00000000 — eq mode switch
0 — switch in cycle
1 — concert
10 — drama
11 — action
100 — mtv
101 — gaming
110 — cartoons
111 — sports
1000 — news
C:00001100,D:00000000 — ?
C:00001100,D:00000011 — PSU off
C:00010000,D:00000000 — volume min
C:10011001,D:00000001

Це список тіх команд на які просканились.
Тобото в відповіді від SLAVE — CRC був валідний.
---
Reaction ©:
00001100 — PSU
00001101 — mute
00010000 — volume min
00010001 — volume
00010110 — bass level set
00010111 — b/t level req
00011000 — treble level set
00111111
01000000
01010001 — eq mode switch
01010010 — sound mode
01010011
01010100
01011000
01011001
01011010
01011011
01011100
01011101
01011110
01011111
01100000
01100001
01100010
01100011
01100100
01110011 — aud sync
10001111
10010000
10010110
10010111
10011000
10011001
10011010
10100001
10100010
10101010
10101100

Нажаль поки не вдалося знайти команду для перемикання селектора входу, щоб запрацював звук (подаю з плеера на AUX1/2).

На платі стоїть мікросхема мультиплексора: HEF4052B
Якщо вже вкрай замахаюсь з пошуками команди по I2C , то подам комбінації 0,1 на її ноги 10-ту та 11-ту щоб спробувати вручну перемикать входи.

p.s.
Пробую знайти якісь кінці як звязатися з Philips, щоб якимось там правдами чи неправдами отримати доступ до технічної документації. Поки що марно, бо навіть ті контакти що на офіціальному сайті зроблені чисто для фені і нікуди не ведуть.

То так... я б сказав що сапорта там немає зовсім.

Update #2:

Зробив sniffer на базі ESP32 та цього коду: github.com/...​itehawkTailor/I2C-sniffer
Піднюхав :-) все що можна було.

А мені доступні (ті на які є хоч якак реакція) тільки декілька команд:
— виведення із Standby
— команда на вимкнення (яка летить автоматично через 10 чекунд)
— команди зміни гучності
— команді зміни режима роботи (stereo, surround, і т.д.)

Що мені потрібно знайти:
— команду для зміни входу (AUX1, AUX2, Coaxial, FM)

Тепер маю одну цікаву загадку...
Ось наприклад, зміненя гучності на 12, 13, 14, 15:

S1111100W+00000101+11010100+00010001+00000001+11101011+s
S1111100R+00000101+11010100+00010000+00001100+11110101-s #12

S1111100W+00000101+11010100+00010001+00000001+11101011+s
S1111100R+00000101+11010100+00010000+00001101+11110110-s #13

S1111100W+00000101+11010100+00010001+00000001+11101011+s
S1111100R+00000101+11010100+00010000+00001110+11110111-s #14

S1111100W+00000101+11010100+00010001+00000001+11101011+s
S1111100R+00000101+11010100+00010000+00001111+11111000-s #15

Де:
S — початок передачі
s — кінець передачі
W — запит від master пристрою
R — запит master на відповідь від slave
+ - ACK (bit)
— NACK (bit)
# - мій кометарій

те ж саме в HEX (без I2C специфіки):
0xF8, 0×05, 0xD4, 0×11, 0×01, 0xEB
0xF9, 0×05, 0xD4, 0×10, 0×0C, 0xF5
0xF9, 0×05, 0xD4, 0×10, 0×0D, 0xF6
0xF9, 0×05, 0xD4, 0×10, 0×0E, 0xF7
0xF9, 0×05, 0xD4, 0×10, 0×0F, 0xF8

Із цього видно що у кожній сессії:
S1111100W / S1111100R а потім +00000101+11010100+ — це не що інше як адреса кому цей пакет передається для оброблення. Тобто для мікроконтроллера який займається управлінням аудіо частини (що мені і потрібно).
Взагалі то адреса в I2C бувае 7-бітна або 10-бітна, але цей формат: S1111100 — в специфікації I2C описаний як «Reserved for future purposes». То ж маю підозру що це саме адрес, бо насправді ці два байта 00000101+11010100+ передаються у кожній команді які я перехопив.

Тепер, спробуємо розібрати.
S1111100W+00000101+11010100+00010001+00000001+11101011+s

S1111100W+00000101+11010100+ -> адресса
00010001 -> (на мою думку) команда від master змінити гучність...
+00000001 -> ... на 1-цю...
11101011 -> ось це для мене загадка. Я гадаю що це CRC, спочатку думав що CRC8 але згідно цього калькулятора www.crccalc.com/...​RC-8&datatype=0&outtype=0 ні один набір байтів не дае необхідну сумму.

Далі йде:
S1111100R+00000101+11010100+00010000+00001100+11110101-s #12

S1111100R -> master питає...
слейв -> +00000101+11010100+ ... відподвідає:
00010000 -> ... про статус гучності ...
00001100 -> ... що він 12 ...
11110101 -> і потім знову це (я майже на 99%) впевненний що то є CRC

і т.д. для всіх інших подібних команд 13, 14, 15.

Пробував вже:
— знайти якусь закономірність у тому як формується останній байт самому
— підсовува цю послідовність як запит до LLM Chat-GPT4, nemistral:

0xF9, 0×05, 0xD4, 0×52, 0×00 is 0×2B
0xF9, 0×05, 0xD4, 0×52, 0×02 is 0×2D
0xF9, 0×05, 0xD4, 0xDE, 0×09 is 0xC0
0xF9, 0×05, 0xD4, 0×52, 0×03 is 0×2E
0xF9, 0×05, 0xD4, 0xDE, 0×00 is 0xB7
0xF9, 0×05, 0xD4, 0×52, 0×13 is 0×3E
0xF9, 0×05, 0xD4, 0×0C, 0×03 is 0xE8
Find pattern.

Поки що безрезультатно...
Google, Bing — звістно теж не нічого нормального не видають на запит:
«Philips I2C bus command format» бо документація мабуть таки закрита від публічного доступу.

Як тільки знайду алгоритм який дасть той же СRC залишиться написати перебор тільки двух байтів для пошуку команди на зміну активного входу. Це всьго 255*255 можливих варіантів (за виключенням тих про які я вже знаю).

Якщо хтось має ідеї стосовно що ж це за останній байт, буду дуже радий дізнатися про це.

Сума з другого по п’ятий елемент, overflow біти викидаємо

Офігеть!!! Як ви до цього дійшли????
Дякую велике!
p.s.
Прямо на мій день народження подарок.

o1-mini з другого разу знайшла :))
Питання:

0xF9, 0×05, 0xD4, 0×52, 0×00 is 0×2B
0xF9, 0×05, 0xD4, 0×52, 0×02 is 0×2D
0xF9, 0×05, 0xD4, 0xDE, 0×09 is 0xC0
0xF9, 0×05, 0xD4, 0×52, 0×03 is 0×2E
0xF9, 0×05, 0xD4, 0xDE, 0×00 is 0xB7
0xF9, 0×05, 0xD4, 0×52, 0×13 is 0×3E
0xF9, 0×05, 0xD4, 0×0C, 0×03 is 0xE8

what kind of checksum is it?

Код:

def additive_checksum(data, offset=7):
    """
    Calculates an 8-bit additive checksum with a fixed offset.
    
    Parameters:
        data (list of int): The data bytes as integers (0-255).
        offset (int): The fixed offset to add to the sum.
        
    Returns:
        int: The checksum as an integer (0-255).
    """
    total = sum(data) & 0xFF  # Sum modulo 256
    checksum = (total + offset) & 0xFF  # Add offset and ensure 8-bit
    return checksum

# Example usage:
data_samples = [
    ([0xF9, 0x05, 0xD4, 0x52, 0x00], 0x2B),
    ([0xF9, 0x05, 0xD4, 0x52, 0x02], 0x2D),
    ([0xF9, 0x05, 0xD4, 0xDE, 0x09], 0xC0),
    ([0xF9, 0x05, 0xD4, 0x52, 0x03], 0x2E),
    ([0xF9, 0x05, 0xD4, 0xDE, 0x00], 0xB7),
    ([0xF9, 0x05, 0xD4, 0x52, 0x13], 0x3E),
    ([0xF9, 0x05, 0xD4, 0x0C, 0x03], 0xE8),
]

for data, expected in data_samples:
    computed = additive_checksum(data)
    print(f"Data: {data} | Expected Checksum: {hex(expected)} | Computed Checksum: {hex(computed)} | {'PASS' if computed == expected else 'FAIL'}")
результат:
Data: [249, 5, 212, 82, 0] | Expected Checksum: 0x2b | Computed Checksum: 0x2b | PASS
Data: [249, 5, 212, 82, 2] | Expected Checksum: 0x2d | Computed Checksum: 0x2d | PASS
Data: [249, 5, 212, 222, 9] | Expected Checksum: 0xc0 | Computed Checksum: 0xc0 | PASS
Data: [249, 5, 212, 82, 3] | Expected Checksum: 0x2e | Computed Checksum: 0x2e | PASS
Data: [249, 5, 212, 222, 0] | Expected Checksum: 0xb7 | Computed Checksum: 0xb7 | PASS
Data: [249, 5, 212, 82, 19] | Expected Checksum: 0x3e | Computed Checksum: 0x3e | PASS
Data: [249, 5, 212, 12, 3] | Expected Checksum: 0xe8 | Computed Checksum: 0xe8 | PASS

В неї напрям думок правильний, але складає усі елементи.
Приклад:

0xF8, 0×05, 0xD4, 0×11, 0×01, 0xEB

Ну, префікс-то фіксований — так теж працює :)

Калькулятор в руки та хвилин 5-10 подумав )

Зазвичай подібні симптоми фіксаються заміною кондерів, хз. Електроліти мають досить невеликий період життя відносно інших компонентів і виходять з ладу першими. Але я такий собі майстер, все таки я більше програміст. Взагалі здається існували якісь форуми по ремонту техніки чи радіоаматорів.

Питання: Який I2C sniffer можете порадити?
Бачив що можна зробити з ESP32, не проблема, спробую зробити.
Які ще подібні прибори можна придбати (на aliexpress)?

Вам треба логічний аналізатор, китайська копія Saleae Logic — 400 грн в будь-якому радіомагазині. Вам треба буде напаяти дроти десь на виходи мікрухи чи доріжку і під’єднати до входів логічного аналізатору. Земля, SDA, SCL. Все має працювати, тільки обережно, не коротніть. Також при довгому нагріві доріжки люблять відклеюватися (це не зовсім коректний термін, але іншого в мене нема)

Дякую. Вже зробив на базі ESP32.
Відписав вище.

Update: Продовжую присідання навколо HTS 8100/12
За цей час, я прийшов до висновку, що те що я писав вище про відсутність напруг: +12, +5, −12, −33, 32 через несправність PSU це фігня.
PSU насправді повністю робочий і я не знаю як я міряв тоді перший раз але зараз всі напруги присутні.
Тож проблема судя по всьому в софті... Є підозра що злетіла прошивка.
В основному корпусі є плата:
www.codijy.com/...​ownloads/others/BOARD.jpg
з мікроконтроллером MT1389EFX
DRAM: IS42S16400D-6TL
FLASH: M29W160ET70N6F
www.codijy.com/...​ownloads/others/CHIPS.jpg
В мануалі написано що прошивку можна оновлювати з DVD приводу, але для цього потрібна хоч яка функціональність (якої нема)
На платі також присутній 4-х піновий розєм.
Я подивився по сервіс-мануалу і видно що два середніх піна підключені до мікроконтроллера, порти UP3_4, UP3_5.
www.codijy.com/...​downloads/others/PORT.jpg
По даташиту на цей мікроконтроллер це RXD SCL, TXD SDA, тобто шина I2C. Два інших піна на роємі це +3.3 та GND.
www.codijy.com/...​loads/others/MC_PORTS.jpg
В мене э підозра що це сервісний порт або для тестування або для перепрошивки. Або і те і інше.

Я ніколи не мав справу з перепрошивкою по I2C то ж потребую деяких підказок.
1) Який софт використовувати?
2) Який адаптер USB to I2C ?

Сама прошивка в мене є. Я стягнув її з офіціального сайту. Вона правда для прошивки через DVD диск, але думаю що різниці тут не буде.

це RXD або SCL, та TXD або SDA. Тобто це може бути або I2C або UART в залежності від того, як софт його насетапить.

Скоріш за все там буде просто UART, підключіть консоль і там скоріш за все буде зрозуміло. Швидкість методом тика, там не так багато варіантів :) Те що воно 10 секунд працює — скоріш за все там якійсь лоадер щось навіть напише розумне

Підписатись на коментарі