AUDI CONCERT 3, MP3 OEM RADIO HACK. Help!!
Hi all.
I am trying to hack my AUDI CONCERT III, 2 DIN MP3 CD unit for my next project.
EDIT : Picture of the AUDI CONCERT III, 2 DIN MP3 CD/RADIO :
http://coucouillu.free.fr/PROTO_CONC...ONCERT_III.JPG
EDIT : Picture of the AUDI CONCERT III MP3 CD DRIVE BP7-VA :
http://coucouillu.free.fr/PROTO_CONC...BP7-VA_MP3.JPG
Chip_1 : 908292 / CU27RUG-6C74, PQF-64 PINS
http://coucouillu.free.fr/PROTO_CONC...27RUG-6C74.JPG
Seems to be a microcontroller with a custom firmware. This is this firmware I try to reverse engeneer.
Chip_2 : TC94A54MFG, 100 PINS
http://coucouillu.free.fr/PROTO_CONC...TC94A54MFG.JPG
Material:
I own an EASYPIC5 development board for my project.
I am familiar with both C and BASIC programming (but would prefer BASIC).
SCANS :
Below, you will find the scan I made beetween the CD MP3 DRIVE and the mainboard of the radio unit :
http://coucouillu.free.fr/PROTO_CONC...S/SCAN_SEC.JPG
It is SPI protocol (Serial Peripheral Interface Bus). On the picture above, we can see 10 BYTEs :
0xB0 | 0xB1 | 0xB2| 0xB3| 0xB4 | 0xB5 | 0xB6| 0xB7 | 0xB8 | 0xB9
0x09 | 0x3A |0x31 | 0x01 | 0x01 | 0x00 | 0x00 | 0x0B | 0x00 | 0x01
B0 : 0x09 ==> NUMBER OF BYTE (here 9)
B1 : 0x3A ==> CHECKSUM
B2 : 0x31 ==> COMMAND* ?
B3 : 0x01 ==> FOLDER NUMBER (=1 for this example)
B4 : 0x01 ==> TRACK NUMBER (=1 for this example)
B5 : 0x00 ==> HOURS (=0 for this example)
B6 : 0x00 ==> MINUTES (=0 for this example)
B7 : 0x0B ==> SECONDS(=11 for this example/ Hex 0B = Dec 11)
B8 : 0x00 ==> CONSTANT VALUE (always 0x00 STOP byte???)
B9 : 0x01 ==> CONSTANT VALUE (always 0x01 STOP byte???))
BYTES_NUMBER | CHECSUM | 0x31 | FOLDER | TRACK | HRS | MIN | SEC | 0x00 | 0x01
CONSTANTS
CHECKSUM is the BINARY XOR ADDITION of the following values : 0x31, FOLDER, TRACK, HRS, MIN and SEC.
*0x10=Track Time Info MCU request?
0x12=?
0x14=next track MCU request?
0x31=Track Time Info
0x41=File ID3 Tags Info
0x53=File infos MCU request?
I am trying to make a spy in SPI SLAVE MODE with a microchip PIC16F887 (or PIC18F4455/PIC18F4550) @ 20Mhz which would read these bytes and store them in an array of 10 values and display them on the graphic LCD of the development board every 1 second.
This 8-bytes-word appears on the SPI bus each second.
My problem is for the SPI read part. It doesn't work.
Each second, instead of reading 10 values, it only read 1 which correspond to nothing.
In SPI, the ENABLE PIN should be set to '0' beetween each byte. Here, this is not the case.
In my scan, this is not the case. could it be a source of problem?
I am looking for help.
Thank you.
Brice.