Samsung UE40F6805SBXXE 40" TV - Läsa ut eMMC via ISP

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Maalobs
Inlägg: 1299
Blev medlem: 3 februari 2005, 14:35:15
Ort: Stockholm

Samsung UE40F6805SBXXE 40" TV - Läsa ut eMMC via ISP

Inlägg av Maalobs »

Efter en brand i vår kontorsfastighet ifjol har vi haft en del saker i ett brandförråd, däribland en 40" TV:
https://www.samsung.com/se/support/mode ... 6805SBXXE/
Jag var i förrådet med chefen och hämtade saker, och fick samtidigt ta TVn.

TVn är oskadad från branden, men skaderegleraren påpekade till oss att elektronik kan få märkliga fel om de har befunnit sig i en fastighet där det har varit brand, trots att ingen faktisk brand- eller värmeskada har inträffat i det rummet, eller som i vårt fall, inte ens på samma våning.
Orsaken var att en stor brand sprider kolpartiklar även utanför synlig rök, som tar sig in i apparater och kan orsaka elektriska fenomen även en tid efter branden.
Jag tog hem TVn, öppnade den och blåste rent med trycklyft och borstade noga med ESD-borste, så det ska väl hålla.

Efter eskapaderna innan sommaren med Philips TVn som jag fixade åt en kollega, där NAND-minnet hade en rad bitfel men där jag även i efterforskningarna blev uppmärksam på hur vanligt det var med bitfel även i I2C EEPROM och SPI Flash, vilket orsakar ett stoppande fel på TVn, så tyckte jag att det är nog bra om jag tar och dumpar alla minnena nu på en gång, så att jag har en fungerande backup.
Då finns det åtminstone en möjlighet till en snabb fix om något händer.

Jag kunde dock inte hitta service manual till den här modellen på någon av beteckningarna jag hittade, varken på utsidans etikett eller inne på systemkortet:
01.jpg
02.jpg
03.jpg
Nåväl, jag sökte upp beteckningarna på chipparna och kunde på det sättet hitta de här minnena:

Kod: Markera allt

IC901   Atmel    AT24C256C        I2C EEPROM
IC1304  Winbond  W25Q40CL         SPI Flash
IC1301  Samsung  KLM4G1FE3B-B001  eMMC
Allihopa stöds av iFix RT809H, så det ser ut att vara genomförbart.

Först kortslöt jag benen på systemkortets kristaller, så det inte blir störande trafik på I2C-bussen ifall jag råkar driva någon processor via flash-programmeraren:
04.jpg
I2C EEPROMet gick att ta med tången:
05.jpg
SPI Flashen funkade inte med tången, det blev hela tiden ett ben som inte fick kontakt, men det fanns en opopulerad kontakt intill chippet, som jag kunde spåra till chippets ben:
06.jpg
Det var ju behändigt, så jag lödde dit dupontkablar från sockeln som tången annars ansluts från:
10.jpg
Men RT809H-programmet varnade att chippet angav 0xFF som ID, vilket är ogiltigt.
Jag har inte stött på det tidigare så det kanske är något annat som fortfarande stör på det här systemkortet.
Började undra om jag kanske hade pajat eländet med ESD eller något, så jag pluggade i kortets kontakter i TVn igen för att kolla, men allt funkade som det ska.

Jag blåste loss chippet med varmluftsstationen istället och satte den i en sockel direkt i flash-programmeraren, och det blev fortfarande 0xFF som ID. :(
När jag klickade Ignore på det meddelandet så varnade programmeraren att allt innehåll också kom ut som 0xFF. :evil:
Jaha...
Det exakta chippet från den tillverkaren fanns ju i device-listan för RT809H, vad är det här för kiss.
Jag testade att klicka på SmartID-knappen som ska matcha automagiskt till rätt chip, inte för att jag förväntade mig att något skulle hända eftersom chippet redan rapporterade ogiltigt ID, men RT809H-programmet lyckades mappa den till samma chip-beteckning hos en annan tillverkare, och då gick det att läsa!
OK, då har man lärt sig något nytt då, det hade säkert funkat utan att behöva löda loss chippet också. :)

Det sista chippet är ett 4 GByte stort eMMC från Samsung, som tyvärr är i en form av BGA-kapsel.
Inget man gärna löder hemma i stugan, dessutom har jag inte ZIF-socklar för BGA eftersom de var jättedyra när jag köpte flash-programmeraren.
Men det ska ju gå att komma åt eMMC via in-system programming med RT809H, frågan är bara var man ska ta sig in på systemkortet.
Nu hade det varit väldigt bra med service manual med kretsschema. :(
Efter lite efterforskningar visade det sig som kuriosa att eMMC är en vidareutveckling av NAND, nu med ännu mer logik ombord på minneschippet.
Den viktiga detaljen är att man kan kommunicera med eMMC-chippet på både 8-, 4- och 1-bittars buss.
Det är just det som utnyttjas i ISP, man kopplar in sig med 1 databit på bussen och kör seriellt.

Man använder den svarta IDC-kontakten på RT809H-programmerarens kant:
07.jpg
Allra minst måste man koppla in :
1. GND
2. CLK
3. CMD
4. D0

Även VCC krävs, om man inte kan driva kortet med dess riktiga matning.
Det finns dual voltage chippar så det kan vara struligt med drivningen även om RT809H har stöd för separat VCCQ också, men med det här chippet behövs bara VCC så jag tar det också från flash-programmeraren.

Nu är bara utmaningen att hitta var på kortet man jackar in sig på de här signalerna.
Lyckligtvis fanns det silkscreen som angav CMD och CLK, och groundplane kunde jag lista ut redan.
När jag bildgooglade på chippets beteckning så hittade jag en rad bilder från andra produkter där samma chip används, där man har kopplat in sig för att utföra ISP.
Kortlayouten runt chippet var flera gånger nästan identiskt med det här kortet, så jag undrar om det kanske är samma Kina-fabrik som ligger bakom, eller om det finns en app note för chippet med en exempel-layout som alla har kopierat. :)
Jag kunde bekräfta placeringen av rätt VCC och fick förlita mig till de befintliga bilderna för att hitta D0:
08.jpg
Det följde med en ISP-kabel med det RT809H-kittet som jag köpte i våras, så jag lödde in den på de punkterna:
09.jpg
Det finns en varning att ISP-kabeln som används för eMMC inte ska vara längre än 1dm, och det är precis så lång som den medföljda kabeln är också.

Jag fick använda den minsta spetsen jag hade för att löda dit ISP-kabeln:
11.jpg
I RT809H-programmet klickar man sedan bara på AutoISP-knappen, som identifierade metod och målkomponent automatiskt.
Det gick fort att läsa ut, och inga bitfel upptäcktes:

Kod: Markera allt

004:  The currently selected:KLM4G1FE3B-B001_ISP
005:  Download device programming algorithm......
006:  Algo update OK
007:  >------------------------------------OK---------------------------------------<
008:  VCCIO: 3.3V
009:  eMMC OCR: C0FF8080
010:  eMMC CID:  1501004D344731464210A107D3DD21
011:  eMMC CSD: D02701320F5903FFF6DBFFE78A4040
012:  Chip ID:00010015,Chip Name:M4G1FB
013:  Chip Size: User=3728MB,Boot1=Boot2=1024KB,RPMB=128KB.
014:  SAMSUNG EMMC Version : V4.41
015:  Speed set to level 1. 
016:  C:\Samsung\IC1301_eMMC\KLM4G1FE3B-B001_ISP_2424\KLM4G1FE3B-B001_ISP_2424
017:  Start reading chip......
018:  .EXT_CSDRead successful, file saved.
019:  .BOOT1Read successful, file saved.
020:  .BOOT2Read successful, file saved.
021:  .Start to read the user area data and save, large capacity, please be patient ... ...
022:  Buffer data checksum: 16bits_0x1891 £¬32bits_0xAAAF1891 :
023:  The data is read and verified successfully.
024:  Elapsed time: 3006 seconds£¬average speed of 2600667 bytes/sec.
025:  >------------------------------------OK---------------------------------------<
Jag läste ut innehållet till en ny fil också, och den blev identisk med den första filen, så allt verkar bra. :)

En sak som förblir ett mysterium utan service manualen, är var EDID finns lagrat.
Jag gick igenom alla chippar och hittade datablad på allihopa, utom på Samsungs hemkokta huvudprocessor förstås.
Det kanske är så att EDID ligger därinne någonstans, och kanske t o m finns inbakat i EEPROM, Flash eller eMMC?

I vilket fall, jag följde processen som Hedis här på forumet hade forskat fram, och körde I2C-verktygen via HDMI från Linux på en dator:

Kod: Markera allt

root@Microknoppix:~# modprobe i2c-dev
root@Microknoppix:~# i2cdetect -l | sort
i2c-0	smbus     	SMBus I801 adapter at f040      	SMBus adapter
i2c-1	i2c       	i915 gmbus ssc                  	I2C adapter
i2c-2	i2c       	i915 gmbus vga                  	I2C adapter
i2c-3	i2c       	i915 gmbus panel                	I2C adapter
i2c-4	i2c       	i915 gmbus dpc                  	I2C adapter
i2c-5	i2c       	i915 gmbus dpb                  	I2C adapter
i2c-6	i2c       	i915 gmbus dpd                  	I2C adapter
i2c-7	i2c       	DPDDC-A                         	I2C adapter
i2c-8	i2c       	DPDDC-C                         	I2C adapter
Lite oväntat att det blev en ytterligare I2C-buss jämfört med körningen mot Philips TVn, men det kan vara något i den här datorn.
Nu har jag inte den blekaste aning om vilken adress som prylen med EDID-datat har.
Det var 0x50 på Silicon Image-chippet i Philipsen, och såvida det inte finns någon sorts handskakning som berättar vad adressen är, så borde det väl ändå vara samma på alla EDID-chippar på HDMI.

Jag dumpade I2C-bussarna:

Kod: Markera allt

root@Microknoppix:~# perl -we 'system("i2cdetect -y $_") for 0..8'
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- 37 -- -- 3a -- -- -- -- -- 
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- 37 -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
Buss 5 igen hade något som svarade på adress 0x50, samma som med Philipsen, så det låter ju som datorns HDMI-port igen.

Dumpar jag minnet från adress 0x50 på buss 5, så kommer det mycket riktigt ut data som nämner SAMSUNG:

Kod: Markera allt

root@Microknoppix:~# i2cdump -y 5 0x50
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 ff ff ff ff ff ff 00 4c 2d 7d 0a 01 00 00 00    ........L-}??...
10: 2e 16 01 03 80 59 32 78 0a ee 91 a3 54 4c 99 26    .????Y2x????TL?&
20: 0f 50 54 bd ef 80 71 4f 81 c0 81 00 81 80 95 00    ?PT???qO???.???.
30: a9 c0 b3 00 01 01 02 3a 80 18 71 38 2d 40 58 2c    ???.???:??q8-@X,
40: 45 00 24 72 42 00 00 1e 66 21 56 aa 51 00 1e 30    E.$rB..?f!V?Q.?0
50: 46 8f 33 00 24 72 42 00 00 1e 00 00 00 fd 00 18    F?3.$rB..?...?.?
60: 4b 0f 51 17 00 0a 20 20 20 20 20 20 00 00 00 fc    K?Q?.?      ...?
70: 00 53 41 4d 53 55 4e 47 0a 20 20 20 20 20 01 67    .SAMSUNG?     ?g
80: 02 03 30 f1 4d 90 1f 04 13 05 14 03 12 20 21 22    ??0?M???????? !"
90: 07 16 23 09 07 07 83 01 00 00 e2 00 0f 72 03 0c    ??#?????..?.?r??
a0: 00 30 00 b8 2d 21 d0 08 01 40 07 3f 40 50 90 a0    .0.?-!???@??@P??
b0: 01 1d 80 d0 72 1c 16 20 10 2c 25 80 24 72 42 00    ????r?? ?,%?$rB.
c0: 00 9e 01 1d 80 18 71 1c 16 20 58 2c 25 00 24 72    .?????q?? X,%.$r
d0: 42 00 00 9e 01 1d 00 bc 52 d0 1e 20 b8 28 55 40    B..???.?R?? ?(U@
e0: 24 72 42 00 00 1e 01 1d 00 72 51 d0 1e 20 6e 28    $rB..???.rQ?? n(
f0: 55 00 24 72 42 00 00 1e 00 00 00 00 00 00 00 fe    U.$rB..?.......?
Den här gången fanns det flera efterföljande adresser på den bussen också:

Kod: Markera allt

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- -- 
När jag dumpade adresserna 0x51 - 0x57, så hade de identiskt innehåll till adress 0x50, så det får man notera.
Jag testade inte att skriva i något minne via HDMI, så det är en puck jag får ta om det kommer till det. :)

Jag kollade minnet på alla andra adresser också som hade listats, inklusive 0x50 på buss 7, men inget av dem nämnde "Samsung".

Då så.
TVn är milt använd på kontoret och det fanns inga kondensatorer som såg misstänkta ut, så tillsammans med den här backuppen borde man vara ganska framtidssäkrad.
jag tänkte ställa TVn i grabbens rum, så jag kommer nog att få höra omgående om TVn slutar funka någon gång. :lol:

Det var ju intressant att lära sig hur man använder ISP mot eMMC.
Mobilreparatören som hjälpte mig med BGA-reflow på Philipsen nämnde att det var något som tydligen var en grej man gör på mobiltelefoner, man kan modda telefonerna genom att byta till ett jämförelsevis billigt större minne istället för att köpa en dyrare modell av telefonen som kommer med större minne, och han sa att det är eMMC i telefonerna.
I databladet till den här TVns chip verkar det som att 4- och 8 GByte varianterna är pinkompatibla, t ex.
Det är inget jag suktar efter, men det vore ett intressant experiment att testa någon dag, om jag hittar en lämplig patient.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Maalobs 14 september 2019, 20:44:05, redigerad totalt 1 gång.
Användarvisningsbild
Danny
Inlägg: 2945
Blev medlem: 17 maj 2007, 16:30:37
Ort: Skåne

Re: Samsung UE40F6805SBXXE 40" TV - Läsa ut eMMC via ISP

Inlägg av Danny »

Gott att du fått mer användning av programmeraren. Jag blev trött
när jag inte fick min Philips att fungera efter lagt in ny mjukvara.
Det kommer troligtvis fler tillfällen där jag får nytta av programmeraren :)
Maalobs
Inlägg: 1299
Blev medlem: 3 februari 2005, 14:35:15
Ort: Stockholm

Re: Samsung UE40F6805SBXXE 40" TV - Läsa ut eMMC via ISP

Inlägg av Maalobs »

Du gav upp alldeles för enkelt, du hade säkert kunnat klara det. 8)
Jag såg förresten att jag hade glömt lägga till en mikroskopbild på lödningen, la till det i ursprungsposten nu.

Vad som förvånar mig är hur lite service manualer det finns tillgängligt på nätet till Samsungs tv-apparater.
Jag hade bara utgått ifrån att det skulle finnas mycket material tillgängligt eftersom det är ett populärt märke, men tydligen inte.
I nästa TV-upphandling kommer det att vara en faktor.

Att man matar LED-belysningen med överspänning som det noterades i den griniga tråden, var intressant.
Det kanske man ska ta och kolla upp också. :humm:
Användarvisningsbild
Danny
Inlägg: 2945
Blev medlem: 17 maj 2007, 16:30:37
Ort: Skåne

Re: Samsung UE40F6805SBXXE 40" TV - Läsa ut eMMC via ISP

Inlägg av Danny »

Hade tillgång några år till Samsungs service site.
Där fanns servicemanualer men innehöll inga elektronikscheman.
Servicemanualerna var mest hur man kom fram till vilken modul som var defekt :roll:
Användarvisningsbild
breflabb
Inlägg: 3521
Blev medlem: 8 oktober 2014, 17:00:54
Ort: 59.466579, 16.506872

Re: Samsung UE40F6805SBXXE 40" TV - Läsa ut eMMC via ISP

Inlägg av breflabb »

Samsung har alltid varit katastrof gällande servicemanualer :tumner:
Maalobs
Inlägg: 1299
Blev medlem: 3 februari 2005, 14:35:15
Ort: Stockholm

Re: Samsung UE40F6805SBXXE 40" TV - Läsa ut eMMC via ISP

Inlägg av Maalobs »

Det var ju inte bra alls. :(
Kan man utläsa från bilderna vad det är för beteckning på chassit?
Jag har inte lyckats reda ut det.
Skriv svar