Difference between revisions of "BCM4325"

From The iPhone Wiki
Jump to: navigation, search
(promising code lines from an iOS3 script)
m (formatted properly)
Line 16: Line 16:
   
   
  +
<code>
## Set the sleep mode params
 
  +
<nowiki>##</nowiki> Set the sleep mode params
  +
 
bcm -s 0x01,0x00,0x00,0x01,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01
 
bcm -s 0x01,0x00,0x00,0x01,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01
   
 
msleep 200
 
msleep 200
   
# Configure I2S GPIO lines
+
<nowiki>#</nowiki> Configure I2S GPIO lines <---- here
  +
 
bcm -g
 
bcm -g
   
 
msleep 50
 
msleep 50
   
# route audio to pcm
+
<nowiki>#</nowiki> route audio to pcm <---- here
  +
 
bcm -p
 
bcm -p
   
## That was easy!
+
<nowiki>##</nowiki> That was easy!
  +
quit
 
  +
quit</code>
  +
   
 
this means that there is more than likely some sound streaming code just waiting to receive data (or send it, in which case it could easily be hacked??)
 
this means that there is more than likely some sound streaming code just waiting to receive data (or send it, in which case it could easily be hacked??)

Revision as of 07:17, 11 July 2010

This chip is in the iPod2,1 (iPod touch 2G) and iPhone2,1 (iPhone 3GS) and combines Bluetooth/Wifi and a secret FM radio, presumably connected and ready to go on a future firmware release by Apple.

FM Radio

The most peculiar thing is the inclusion of an FM radio. There is a product brief available from broadcom on this chip: {put link here} but it serves little purpose apart from the block diagram and interface hardware/software.

Interfacing the FM radio is done in two stages: Control via the bluetooth modules's UART or I2C and digital audio streaming over the module's I2S/PCM hardware.

most notably: the FM radio never physically leaves the sillicon die, except for the antenna (which may be connected directly to the BT/UMTS/everything else [:P lol] antenna) this means that the control/streaming will be an extension to the BT protocols currently implemented.

For control, the HCI over UART (/dev/uart.bluetooth) seems the most logical solution to turn the radio on/tune/search etc. but the vendor specific HCI commands will need to be *obtained* (or reversed, which could prove hard). A broadcom datasheet would have this information, but unfortunately you have to sign an NDA to obtain one.

For streaming, the i2s bus sounds good... interfacing this could be hard but playing on the stereo bluetooth profile of iphone OS 3 we could piggy back, at least to start with. however we do need the radio ON first...

In terms of sound streaming /etc/bluetool/iPhone2,1.bot.script from iOS3 contains these lines of interest:


## Set the sleep mode params

bcm -s 0x01,0x00,0x00,0x01,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01

msleep 200

# Configure I2S GPIO lines <---- here

bcm -g

msleep 50

# route audio to pcm <---- here

bcm -p

## That was easy!

quit


this means that there is more than likely some sound streaming code just waiting to receive data (or send it, in which case it could easily be hacked??)

lets find it!


Datasheet

The 'datasheet' provided is rubbish and we need the actual datasheet before any real development can be done...