Ga naar inhoud


[Pioneer] Pioneer Wetenswaardigheden


Satori

Aanbevolen berichten

Adressen van verschillende type Pioneers

 

Het patchen van een Pioneer staat zeer goed beschreven door Sa1vad0r in de manuals/docs die bij Pionero bijgeleverd worden.

Door voortschrijdend inzicht hebben we echter geleerd dat er meer mogelijkheden zijn om te patchen dan door Sa1vad0r beschreven zijn.

Meestal zijn er dan ook wat randvoorwaarden.

 

Programma om te flashen: Pionero 4.0 Final

 

Op een rij:

 

DBRS100/200/BCT14xx

-[color:"white"]A[/color]Firmware:

[color:"white"]AAAA[/color]Adres: 7FE0 0000

[color:"white"]AAAA[/color]Lengte: +/- 1.5 Mb

[color:"white"]AAAA[/color]Methode: Parallel/serieel en Jtag

-[color:"white"]A[/color]Kanalenlijst

[color:"white"]AAAA[/color]Adres: 6000 0000

[color:"white"]AAAA[/color]Lengte: 320 - 512 kb

[color:"white"]AAAA[/color]Methode: Parallel/serieel en Jtag

-[color:"white"]A[/color]Eeprom

[color:"white"]AAAA[/color]Methode: Serieel en Jtag

 

DBRS110/210/BCT15xx

-[color:"white"]A[/color]Firmware:

[color:"white"]AAAA[/color]Lengte: +/- 1.5 Mb

[color:"white"]AAAA[/color]Methode1: Jtag

[color:"white"]AAAA[/color]Methode2: Parallel/serieel Beperking: Lengte van firmware moet precies 0x140002 = 1310722 bytes zijn

-[color:"white"]A[/color]Kanalenlijst

[color:"white"]AAAA[/color]Adres: 7FE0 0000

[color:"white"]AAAA[/color]Lengte: 320 - 512 kb

[color:"white"]AAAA[/color]Methode: Jtag

-[color:"white"]A[/color]Eeprom

[color:"white"]AAAA[/color]Methode: Serieel en Jtag

 

DBRS120/BCT16xx

-[color:"white"]A[/color]Firmware:

[color:"white"]AAAA[/color]Adres: 7FE0 0000

[color:"white"]AAAA[/color]Lengte: +/- 1.12 Mb Let op: Mag niet te groter zijn, anders wordt system loader overschreven

[color:"white"]AAAA[/color]Methode: Parallel/serieel en Jtag

-[color:"white"]A[/color]Kanalenlijst

[color:"white"]AAAA[/color]Adres: 7FF8 0000

[color:"white"]AAAA[/color]Lengte: 320 - 480 kb Let op: Mag niet te groter zijn dan 480 kb, anders wordt boot-loader overschreven

[color:"white"]AAAA[/color]Methode: Parallel/serieel en Jtag

-[color:"white"]A[/color]Eeprom

[color:"white"]AAAA[/color]Methode: Serieel en Jtag

PS: Er is een speciale versie van Pionero die het kanalen adres kan selecteren in de parallel/serial sectie.

 

DBRS300/400/BCT17xx

Deze kan mbv jtag geflashd worden, maar er is geen jtag interface in de Pioneer. Je zult de draden van de interface los in de Pioneer moeten solderen.

-[color:"white"]A[/color]Firmware:

[color:"white"]AAAA[/color]dres: 7FE0 0000

[color:"white"]AAAA[/color]Lengte: +/- 1.12 Mb Let op: Mag niet te groter zijn, anders wordt system-loader overschreven

[color:"white"]AAAA[/color]Methode: Jtag

-[color:"white"]A[/color]Kanalenlijst

[color:"white"]AAAA[/color]Adres: 7FF8 0000

[color:"white"]AAAA[/color]Lengte: 320 - 512 kb

[color:"white"]AAAA[/color]Methode: Jtag

-[color:"white"]A[/color]Eeprom

[color:"white"]AAAA[/color]Methode: Jtag

PS: Ik heb een speciale versie van Pionero gemaakt die de 300/400/17xx adressen kan selecteren in de jtag sectie.

 

--------------------------------------------------------------------------------------------------------

 

Wetenswaardigheden

 

-[color:"white"]A[/color]Het is bekend dat Pionero foutmeldingen geeft bij het

parallel/serieel flashen van de kanalenlijst. Pionero is oorspronkelijk gemaakt om de firmware te flashen en toen bleek dat het mogelijk was om met een minimale aanpassing de kanalenlijst ook te laden, maar met de bekende foutmeldingen. Er verschijnt 2 a 3 keer de melding dat er iets opnieuw gestuurd moet worden en op het eind komt er de melding dat het laden van de 'firmware' mislukt is.

 

-[color:"white"]A[/color]Als je de Pioneer patcht en het mislukt om de een of andere reden, dan krijg je soms de volgende melding in je display ‘Out of Order’ of ‘retrying’. Je hoeft je dan geen zorgen te maken. Dit is geen enkel probleem. De Pioneer staat nu automatisch in service mode en je kunt gewoon je nieuwe firmware laden.

 

-[color:"white"]A[/color]Zender springt naar kanaal 1 als je op EPG drukt en het EPG kanaal is niet aanwezig

 

-[color:"white"]A[/color]Soms lees je over een NoEPG eeprom en dan blijkt de EPG toch te werken. Dit komt omdat C+ een tijdje attacks gestuurd heeft via het EPG kanaal en maakte daarbij gebruik van de EPG methode in de Pioneer. De oplossing om dat te omzeilen bleek relatief simpel. In de eeprom zijn een aantal bytes die de bepalen of de EPG al dan niet aan staat. Deze byte is uitgezet. Om toch de EPG te kunnen uitlezen is vervolgens een stukje in de firmware aangepast, die deze functie overgenomen heeft. Daarom zie je soms de tekst: No EPG, toch EPG.

 

-[color:"white"]A[/color]In de Dynamit versies zijn de EPG toetsen lang geleden gedefinieerd. Er is toen gekozen om de EPG en E toets functies te wisselen, omdat je dan met een hand de meeste handelingen kunt verrichten. En natuulijk waren er toen (en later) discussies over de keuze. De EPG waar we nu over praten is de EPG van de Seca providers. De EPG van oa premiere (Betacrypt) zat heel anders in elkaar en het is pas later gelukt om die toe te voegen. Omdat die Premiere EPG anders opgeroepen moest worden was een andere toets nodig en dat is de C toets geworden. Deze keuze is gemaakt toen we nog in de 400 serie zaten.

 

-[color:"white"]A[/color]Uitlezen van de flashes kan alleen mbv een jtag interface

 

-[color:"white"]A[/color]De kanalenlijst kan in een aantal verschillenden secties staan en dan moet de Pioneer weten waar de actuele staat. De verwijzing naar de sectie met de actieve kanalenlijst staat in eeprom. Om die reden moet je de kanalenlijst en eeprom altijd tegelijk geprogrammeerd worden. Soms heb je toch beeld als je alleen de kanalenlijst programmeert. De reden is simpel. De verwijzing stond toevallig naar de goede sectie.

 

-[color:"white"]A[/color]Het programmeren van de flashes gaat niet zo simpel als gewoon geheugen. We kunnen van buiten af alleen maar de ‘1’ in een ‘0’ veranderen. Om die reden begint het programmeren via de jtag altijd met een erase block (of chip, maar dat is riskant). Zo’n erase block maakt van alle bitjes een ‘1’. Vervolgens kan Pionero dan de ‘1’ in een ‘0’ veranderen waar dat nodig is.

 

-[color:"white"]A[/color]Als je bij het zoeken naar kanalen kiest voor Canal Digitaal dan zullen de C+ kanalen op 1 t/m .... staan en alle anderen zullen beginnen op 500. Deze laatste kun je dan in je eigen volgorde zetten, maar de C+ kanalen niet. Je kunt echter ook kiezen voor willekeurige volgorde. In dat geval kun je alle kanalen op elke willekeurige nummer/volgorde zetten.

 

-[color:"white"]A[/color]Na het zoeken en sorteren moet je de Pioneer eerst even met de rode knop op je AB in standby mode zetten, want dan worden de wijzigingen ook echt in de Pioneer vastgelegd. Doe je dat niet en je gebruikt de schakelaar op je Pioneer eerst, dan ben je al je wijzigingen kwijt.

 

--------------------------------------------------------------------------------------------------------

 

Flashen 100/200/BCT14xx via parallel/serieel

 

PC

-[color:"white"]A[/color]De seriële staat op een baud rate van 9600 baud of meer (control

 

panel)

-[color:"white"]A[/color]De parallelle port is in ECP mode in de BIOS

-[color:"white"]A[/color]Programma Pionero 4 Final

-[color:"white"]A[/color]Parallelle male-male(1 op 1)en seriële kabel male-female (1 op 1)

 

(geen 0-modem kabel)

-[color:"white"]A[/color]Besturingssysteem windows ME of 98 of XP

 

Stappen:

-[color:"white"]A[/color]Haal de 220 V van de deco (met schakelaar)

-[color:"white"]A[/color]Sluit deco aan op pc

-[color:"white"]A[/color]Stroom blijft van de deco

 

-[color:"white"]A[/color]Zet k2002 (dit is een pennetje of een groot soldeerpunt ongeveer op de helft van het board) op aarde. Zet hierna de Pioneer aan. Er verschijnt DL1o in de display.

-[color:"white"]A[/color]Je kunt nu de aarde van k2002 halen

-[color:"white"]A[/color]Start pionero 4.0 final

-[color:"white"]A[/color]Binnen pionero kies je "Firmware (parallel + Serial)" en kies "DL K2002" met het volgende adres:

[color:"white"]AAAA[/color]- 100/200 en 120: adres 7FE00000

[color:"white"]AAAA[/color]- 110/210: adres 60000000

-[color:"white"]A[/color]Zet een vinkje voor fase 1 en 2

-[color:"white"]A[/color]Klik op ‘verzenden’ en kies firmware bijv: pioneer. bin (1.152 kb voor 120) De display verandert in een knipperende DL2. Er verschjnt na het laden een boodschap dat je een minuut moet wachten. Hierna komt de melding dat alles gelukt is en staat er een vaste DL2 in de display.

-[color:"white"]A[/color]Zet nu de Pioneer uit en aan met de schakelaar.

 

KANALENLIJST (NIET voor 110/210)

-[color:"white"]A[/color]De Pioneer staat in standby mode.

[color:"white"]AAAA[/color]- 100/200: Zet pinnetje k6003 (rechts op het board)

[color:"white"]AAAA[/color]- 120: zet soldeerpunt k7003 (rechts op het board, klein gaatje met bruine bescherming er omheen) op aarde en zet de deco in actieve mode (met ab)

-[color:"white"]A[/color]Hierna kun je de aarde van k6003 of k7003 halen

-[color:"white"]A[/color]Start pionero 4.0 final

-[color:"white"]A[/color]Binnen pionero kies je "Firmware (parallel + Serial)" en kies "FL K7003" met het volgende adres:

[color:"white"]AAAA[/color]- 100/200: adres 60000000

[color:"white"]AAAA[/color]- 120: adres 7FF80000

-[color:"white"]A[/color]Zet vinkje voor fase 1 en 2 UIT

-[color:"white"]A[/color]Klik op ‘verzenden’ en kies de kanalenlijst (LET OP: Voor de 120 mag deze maximaal 480 kB zijn en niet groter want dan wordt de bootloader overschreven!!)

-[color:"white"]A[/color]Pionero geeft een foutmelding over de verandering van de kanalenlijst maar dit maakt niet uit.

-[color:"white"]A[/color]Zet de Pioneer uit en aan

 

EEPROM

-[color:"white"]A[/color]De Pioneer staat in standby mode.

-[color:"white"]A[/color]Zet nu k6003 of k7003 (dit is het stukje soldeer ongeveer op de helft van het board) op aarde

-[color:"white"]A[/color]Start de Pioneer op vanuit standby naar actieve mode

-[color:"white"]A[/color]Haal daarna k6002 of k7003 van aarde

-[color:"white"]A[/color]Ga in pionero naar het tabblad EEPROM

-[color:"white"]A[/color]Kies openen bestand en kies van de ‘eeprom.txt’ of ‘eeprom.bin’

-[color:"white"]A[/color]Lengte ‘de gehele eeprom’

-[color:"white"]A[/color]Klik hierna op ‘verzenden’

-[color:"white"]A[/color]Nadat pionero aangeeft klaar te zijn de deco uitzetten en afkoppelen.

PS: Je kunt voor de eeprom de Pioneer ook in service mode 1 zetten. (k2002 aan aarde).

 

--------------------------------------------------------------------------------------------------------

 

Gebruiksaanwijzing om BCT16=DBRS120 weer tot leven te wekken als bootloader overschreven is

 

Start programma 'jtag_chk'

 

0. (Optioneel)

Selecteer 'DCU registers'

Klik 'Start' om DCU monitor te starten

Klik 'kleine groene toets' vlakbij het Control veld om DCU Control register dialoog te

 

openen

Aanvinken: bits 25 en 31

Klik 'Send'

Klik 'Stop' toets om monitor te stoppen

 

1.

Selecteer 'Miscellaneous'

Klik 'Init from file'

-[color:"white"]A[/color]selecteer je Pioneer model (BCT16)

Klik 'Init from file'

-[color:"white"]A[/color]selecteer 'Clear Traps'

 

2.

Selecteer 'DCU monitor'

Klik 'Start'

-[color:"white"]A[/color]Als vinkjes voor 25 en 31 weg zijn, opnieuw aanvinken

Klik 'Stop'

 

3.

Selecteer 'Hardware Config'

Klik 'Trap routine address'

-[color:"white"]A[/color]selecteer (of vul in) het address 40000000

 

4.

Selecteer 'Hardware Config'

Bij trap routine parameters

-[color:"white"]A[/color]Vink aan: 'Priority - High'

-[color:"white"]A[/color]Vink aan: 'Group of traps - BreakPoint'

 

Klik 'load trap routine'

-[color:"white"]A[/color]Selecteer de gewenste trap handler (fl4_dblchk.bin)

 

Klik 'Install Traps'

Klik 'Take trap'

 

5.

Selecteer 'DCU monitor'

Klik 'Start'

-[color:"white"]A[/color]Bekijk de DCU monitor: Als Control=60000, dan is alles ok

Klik 'Stop'

 

6.

Selecteer 'Harware Config'

Klik 'Verify trap handler'

 

7.

Selecteer 'Flash programming'

Klik 'Clear Chip'

Selecteer 'Write from file' 7FE0 0000 (lengte van de file moet zijn: 200.000 = 2Mb).

 

8.

Wachten tot programma gereed is.

 

That's all

 

--------------------------------------------------------------------------------------------------------

 

EPG checksum berekening

 

De EPG checksum berekening wordt steeds minder belangrijk nu de nieuwe firmware releases dit zelf regelen, maar ik kreeg een vraag via mail en toen ik het antwoord aan het uitschrijven was, dacht ik dat het wel aardig was om het nogmaals te posten.

 

Berekening:

 

Oude checksum = PP QQ

Nieuwe checksum = XX YY

XX = [8 bytes van oude EPG] ^ [8 bytes van nieuwe EPG] ^ [Eerste byte oude checksum]

YY = 0xFF - XX

 

Het ^ staat voor 'exclusieve of' functie.

Zo'n functie werkt op bit niveau:

In een waarheidstabel:

 

b a | Q

-----|--

0 0 | 0

0 1 | 1

1 0 | 1

1 1 | 0

 

(Voor degene die thuis een wissel - of hotel schakeling hebben moet dit bekend voorkomen)

 

Wij werken op hex niveau. Dat lijkt anders, maar is een verkorte schrijfwijze voor de bitjes.

 

De hiernavolgende 2 rijen zijn hetzelfde, maar anders weergegeven

 

00000001 00100011 01000101 01100111 10001001 10101011 11001101 11101111

0x01 0x23 0x45 0x67 0x89 0xAB 0xCD 0xEF

 

Ik heb expres 8 bytes gebruikt (de lengte van een key) om aan te geven dat daar dus 8*8 = 64 bitjes in zitten.

 

Terug naar de xor

 

Als ik nu de eerste 2 getallen hierboven xor dan gaat dat als volgt

 

getal_1: 11001101 0xCD

getal_2: 11101111 0xEF

----------: ------------ -------

Xor [color:"white"]AAA[/color]: 00100010 0x22

 

De 2 kolommen in bitjes of hex doen dus hetzelfde.

 

-[color:"white"]A[/color]Als we een getal met zichzelf xor_ren komt er 0x00 uit (probeer maar)

-[color:"white"]A[/color]Als we een getal met 0x00 xor_ren komt er hetzelfde getal weer uit.

Deze 2 rekenregels samen betekenen dat we vij een berekening altijd alle 0x00 er uit kunnen

 

strepen

 

We hoeven de berekening niet met de hand te doen. We kunnen de standaard calculator die bij

 

Windows zit gebruiken.

We kiezen voor scientific mode. Vervolgens vinken we HEX aan.

 

Als we de V5 eeprom die ooit gedistribueerd is als uitgangspunt nemen vinden we als oude EPG

 

vanaf 0xDE:

0x3B 0x00 0x00 0x00 0x60 0x00 0x00 0x00 met als checksum 0x88 0x77

 

In de nieuwe EPG willen we alle EPG bitjes op 0x00 hebben

0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

 

Dus XX = 0x3B ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x60 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x88

 

Ten behoeve van onze berekening vallen alle 0x00 weg (Volgens de rekenregels die ik eerder beschreven heb)

 

We houden over:

 

XX = 0x3B ^ 0x60 ^ 0x88

 

Berekening:

 

0x3B = 00111011

0x60 = 01100000

----------------------[color:"white"]AA[/color]Xor

Xor[color:"white"]AAA[/color]01011011 = 0x5B

0x88 = 10001000

----------------------[color:"white"]AA[/color]Xor

Xor[color:"white"]AAA[/color]11010011 = 0xD3

 

Dus XX = 0xD3

ZZ = 0xFF - 0xD3 = 0x2C

 

En dus wordt de nieuwe checksum 0xD3 0x2C

 

Succes met narekenen

 

--------------------------------------------------------------------------------------------------------

 

Testen jtag interface

 

Even het basisprincipe:

 

Er gaan 4 signalen van de PC richting Pioneer

Er gaat 1 signaal van de Pioneer richting PC

 

In principe werkt de PC-kant met 5 Volt en de Pioneer kant met 3.3 Volt.

Soms meet je op de interface aan de Pioneer kant toch 5 Volt, als er niets aangesloten is, maar dan zal deze bij belasting toch naar 3.3 V gaan.

 

De electronica die er tussen zit doet niets anders dan

1) Bij 4 signalen de 5 V aan de PC-kant terugbrengen naar 3.3 Volt (belast) aan de Pioneer

 

kant.

2) Bij 1 signaal de 3.3 Volt aan de Pioneer kant omzetten naar 5V (en soms alleen maar doorgeven.)

 

 

De genoemde connectorpennen zijn allemaal aansluitingen op de interface!!!

 

PC_x is de PC-kant van de interface

Pio_x is de Pioneer kant van de interface

 

De 4 signalen van PC naar Pioneer

 

PC_2 --> Pio_9

PC_3 --> Pio_11

PC_4 --> Pio_13

PC_5 --> Pio_19

 

Het ene signaal van Pioneer naar PC

 

Pio_15 --> PC_13

 

De pijl geeft de richting aan met een spanningsomzetter.

 

Interface testen:

 

PC --> Pioneer

 

Zet op PC_2 0 Volt, dan moet op Pio_9 ook 0 Volt staan

Zet op PC_2 5 Volt, dan moet op Pio_9 3.3 tot 5 Volt staan

 

Zet op PC_3 0 Volt, dan moet op Pio_11 ook 0 Volt staan

Zet op PC_3 5 Volt, dan moet op Pio_11 3.3 tot 5 Volt staan

 

Zet op PC_4 0 Volt, dan moet op Pio_13 ook 0 Volt staan

Zet op PC_4 5 Volt, dan moet op Pio_13 3.3 tot 5 Volt staan

 

Zet op PC_5 0 Volt, dan moet op Pio_19 ook 0 Volt staan

Zet op PC_5 5 Volt, dan moet op Pio_19 3.3 tot 5 Volt staan

 

 

Pioneer --> PC

 

Zet op Pio_15 0 Volt, dan moet op PC_13 ook 0 Volt staan

Zet op Pio_15 3.3 Volt, dan moet op PC_13 3.3 tot 5 Volt staan

 

--------------------------------------------------------------------------------------------------------

 

Veel Pioneer plezier,

Satori

 

Link naar reactie
Delen op andere sites


Gast
Dit onderwerp is nu gesloten voor nieuwe reacties.
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...