Gert said:
[...]
There was original the idea to use those for a board revision (e.g. A/B) but I have been informed that there are at the moment no plans to use those pins in the software builds. [...] Certainly the current (B-boards only) builds do not use those pins.
Thank you for the very interesting details. From the picture, it seems like there is about 0.05" (1.27mm) room between those resistors, it's relatively easy to solder.
The four pins look like configuration inputs to me, and I guess a driver is needed to activate the I2S on them. But why put the resistors if the config bits are not read? (some are at +3V3, some at GND, here)
-
- Posts: 239
- Joined: Thu Jan 12, 2012 5:45 pm
Re: Sad about removal of I2S. Why was this change made?
ceteras said:
But why put the resistors if the config bits are not read? (some are at +3V3, some at GND, here)
If a CMOS input is not pulled high or low it tends to drift to about 50% and take a lot of current. (Horowitz and Hill: the Art of Electronics, P390)
But why put the resistors if the config bits are not read? (some are at +3V3, some at GND, here)
If a CMOS input is not pulled high or low it tends to drift to about 50% and take a lot of current. (Horowitz and Hill: the Art of Electronics, P390)
Re: Sad about removal of I2S. Why was this change made?
Chris Rowland said:
ceteras said:
But why put the resistors if the config bits are not read? (some are at +3V3, some at GND, here)
If a CMOS input is not pulled high or low it tends to drift to about 50% and take a lot of current. (Horowitz and Hill: the Art of Electronics, P390)
I know, but since they are not all to GND or 3V3, I thought they actually meant something.
ceteras said:
But why put the resistors if the config bits are not read? (some are at +3V3, some at GND, here)
If a CMOS input is not pulled high or low it tends to drift to about 50% and take a lot of current. (Horowitz and Hill: the Art of Electronics, P390)
I know, but since they are not all to GND or 3V3, I thought they actually meant something.
Re: Sad about removal of I2S. Why was this change made?
I would not remove the resistors to get at the I2S. There will be a 10k pullup or pulldown that is unnecessary. So be it! It will cost an extra 0.33 mA of current from the Broadcom or the I2S side, That should be acceptable.
Check out our raspberry pi addons: https://www.bitwizard.nl/shop/
Re: Sad about removal of I2S. Why was this change made?
Has someone actually tried the "hack" that Gert suggested? I have looked at the waveforms on CONGIF0, CONFIG1, CONFIG2 and CONFIG3 (i.e. the common points of the resistors that Gert is referring to) and I do not see any I2S activity when playing music on the Pi.
Wonder if the GPIO configuration needs to be changed in order to be in ALT2 (as per page 102 of the Broadcom datasheet) and then get the I2S on GPIO28 to GPIO31, i.e. the CONFIG0 to CONFIG3...
How can I easily find out which ALT the GPIOs are configured to? They do not seem to be configured in ALT0 either since on GPIO18 (on the P1 header) you would then get the I2S clock, which again I am not seeing when looking at that node waveform...
Wonder if the GPIO function select registers need to be read back (page 90 of the Broadcom datasheet), which seems like a pain...
Thanks for the help
Wonder if the GPIO configuration needs to be changed in order to be in ALT2 (as per page 102 of the Broadcom datasheet) and then get the I2S on GPIO28 to GPIO31, i.e. the CONFIG0 to CONFIG3...
How can I easily find out which ALT the GPIOs are configured to? They do not seem to be configured in ALT0 either since on GPIO18 (on the P1 header) you would then get the I2S clock, which again I am not seeing when looking at that node waveform...
Wonder if the GPIO function select registers need to be read back (page 90 of the Broadcom datasheet), which seems like a pain...
Thanks for the help
- Gert van Loo
- Posts: 2487
- Joined: Tue Aug 02, 2011 7:27 am
- Contact: Website
Re: Sad about removal of I2S. Why was this change made?
No younrf said:
Has someone actually tried the "hack" that Gert suggested? I have looked at the waveforms on CONGIF0, CONFIG1, CONFIG2 and CONFIG3 (i.e. the common points of the resistors that Gert is referring to) and I do not see any I2S activity when playing music on the Pi.
Wonder if the GPIO configuration needs to be changed in order to be in ALT2 (as per page 102 of the Broadcom datasheet) and then get the I2S on GPIO28 to GPIO31, i.e. the CONFIG0 to CONFIG3...
How can I easily find out which ALT the GPIOs are configured to? They do not seem to be configured in ALT0 either since on GPIO18 (on the P1 header) you would then get the I2S clock, which again I am not seeing when looking at that node waveform...
Wonder if the GPIO function select registers need to be read back (page 90 of the Broadcom datasheet), which seems like a pain...
Thanks for the help
Indeed if you want I2S on those pins you have to:
1/ Program the GPIO pins to be in I2S mode (simple)
2/ Set up the I2S module and provide it with data (a lot more work)
The I2S/PCM module has a DMA interface so it requires little CPU power to drive it with data.
The I2S can be used in input mode too so you could use it to stream music TO the Pi.
Has someone actually tried the "hack" that Gert suggested? I have looked at the waveforms on CONGIF0, CONFIG1, CONFIG2 and CONFIG3 (i.e. the common points of the resistors that Gert is referring to) and I do not see any I2S activity when playing music on the Pi.
Wonder if the GPIO configuration needs to be changed in order to be in ALT2 (as per page 102 of the Broadcom datasheet) and then get the I2S on GPIO28 to GPIO31, i.e. the CONFIG0 to CONFIG3...
How can I easily find out which ALT the GPIOs are configured to? They do not seem to be configured in ALT0 either since on GPIO18 (on the P1 header) you would then get the I2S clock, which again I am not seeing when looking at that node waveform...
Wonder if the GPIO function select registers need to be read back (page 90 of the Broadcom datasheet), which seems like a pain...
Thanks for the help
Indeed if you want I2S on those pins you have to:
1/ Program the GPIO pins to be in I2S mode (simple)
2/ Set up the I2S module and provide it with data (a lot more work)
The I2S/PCM module has a DMA interface so it requires little CPU power to drive it with data.
The I2S can be used in input mode too so you could use it to stream music TO the Pi.
Re: Sad about removal of I2S. Why was this change made?
I have just configured GPIO18 to be in ALT0 instead of the pre-configured ALT1 (by writing 0x04829000 to 0x7E300004 address), so I was expecting to see the I2S clock on pin12 of the P1 header, but still no signal activity. I am checking the waveform while playing music so I thought the Pi would be using the I2S module to provide the audio.
Re: Sad about removal of I2S. Why was this change made?
nrf said:
I have just configured GPIO18 to be in ALT0 instead of the pre-configured ALT1 (by writing 0x04829000 to 0x7E300004 address), so I was expecting to see the I2S clock on pin12 of the P1 header, but still no signal activity. I am checking the waveform while playing music so I thought the Pi would be using the I2S module to provide the audio.
For completeness, the pre-configured value for register address 0x7E300004 was 0x05829000
I have just configured GPIO18 to be in ALT0 instead of the pre-configured ALT1 (by writing 0x04829000 to 0x7E300004 address), so I was expecting to see the I2S clock on pin12 of the P1 header, but still no signal activity. I am checking the waveform while playing music so I thought the Pi would be using the I2S module to provide the audio.
For completeness, the pre-configured value for register address 0x7E300004 was 0x05829000
- Gert van Loo
- Posts: 2487
- Joined: Tue Aug 02, 2011 7:27 am
- Contact: Website
Re: Sad about removal of I2S. Why was this change made?
nrf said:
I have just configured GPIO18 to be in ALT0 instead of the pre-configured ALT1 (by writing 0x04829000 to 0x7E300004 address), so I was expecting to see the I2S clock on pin12 of the P1 header, but still no signal activity. I am checking the waveform while playing music so I thought the Pi would be using the I2S module to provide the audio.
All you have done is step (1) of my previous post.
Until somebody does (2) and writes the SW to route sound to the I2S/PCM module nothing will come out.
Or to explain it differently: You have just toggled the light switch. But in order to get light you need to have somebody generating the electricity for you.
I have just configured GPIO18 to be in ALT0 instead of the pre-configured ALT1 (by writing 0x04829000 to 0x7E300004 address), so I was expecting to see the I2S clock on pin12 of the P1 header, but still no signal activity. I am checking the waveform while playing music so I thought the Pi would be using the I2S module to provide the audio.
All you have done is step (1) of my previous post.
Until somebody does (2) and writes the SW to route sound to the I2S/PCM module nothing will come out.
Or to explain it differently: You have just toggled the light switch. But in order to get light you need to have somebody generating the electricity for you.
Re: Sad about removal of I2S. Why was this change made?
nrf said:
I have just configured GPIO18 to be in ALT0 instead of the pre-configured ALT1 (by writing 0x04829000 to 0x7E300004 address), so I was expecting to see the I2S clock on pin12 of the P1 header, but still no signal activity. I am checking the waveform while playing music so I thought the Pi would be using the I2S module to provide the audio.
For completeness, the pre-configured value for register address 0x7E300004 was 0x05829000
Surely you mean 0x7E200004 which is GPIO Alt function select 1 register with bits 26-24 being for GPIO18.
Where as address 0x7E300004 contains the EMMC BLKSIZECNT register.
Is this a typo on your part or have I missed something?
Re: Sad about removal of I2S. Why was this change made?
@Dave_G_2 : yes, that is a typo from my side. I meant address 0x7E200004. Sorry.
Re: Sad about removal of I2S. Why was this change made?
@Gert: sorry to sound silly but I am missing something here: how is the sound produced by default in the PI? Isn't that via the PCM/I2S which then created the PWM right and left that drive the headphone?
Re: Sad about removal of I2S. Why was this change made?
@nrf
No problem, thanks.
I thought perhaps I misunderstood the address locations and there was yet another relocation by the kernel as the GPIO is apparently also available starting at 0x20000000 according to the Broadcam peripherals datasheet (page 5).
No problem, thanks.
I thought perhaps I misunderstood the address locations and there was yet another relocation by the kernel as the GPIO is apparently also available starting at 0x20000000 according to the Broadcam peripherals datasheet (page 5).
- Gert van Loo
- Posts: 2487
- Joined: Tue Aug 02, 2011 7:27 am
- Contact: Website
Re: Sad about removal of I2S. Why was this change made?
nrf said:
@Gert: sorry to sound silly but I am missing something here: how is the sound produced by default in the PI? Isn't that via the PCM/I2S which then created the PWM right and left that drive the headphone?
No, the PWM is driven straight from the GPU using sound-to-PWM software specially written for the Raspberry-Pi. The sound can come from the ALSA driver which passes ARM messages to the GPU. Unless you're playing video+sound which the GPU can all do without talking to the ARM. The same holds for the sound up the HDMI cable: all different streams. So if you want sound out of your I2S you have to first convert it to the right format and then use the I2S/PCM module to push it out.
@Gert: sorry to sound silly but I am missing something here: how is the sound produced by default in the PI? Isn't that via the PCM/I2S which then created the PWM right and left that drive the headphone?
No, the PWM is driven straight from the GPU using sound-to-PWM software specially written for the Raspberry-Pi. The sound can come from the ALSA driver which passes ARM messages to the GPU. Unless you're playing video+sound which the GPU can all do without talking to the ARM. The same holds for the sound up the HDMI cable: all different streams. So if you want sound out of your I2S you have to first convert it to the right format and then use the I2S/PCM module to push it out.
-
- Posts: 1
- Joined: Fri Apr 27, 2012 5:14 pm
Re: Sad about removal of I2S. Why was this change made?
I'm sad too that I2S has been removed
I've just registered in order to let you know!
very sad.
I've just registered in order to let you know!
very sad.
Re: Sad about removal of I2S. Why was this change made?
Reading the documentation of the broadcom chip, PCM/I2S signals can be mapped to: GPIO18, GPIO19, GPIO21 – or to: GPIO28, GPIO29, GPIO31.
According to the diagram:
* GPIO28, GPIO29 and GPIO31 you use internal to hardware configuration. (and now suggest to hardwire to).
* GPIO18 and GPIO21 is traced to the pin-headers. However: GPIO19 is NOT.
Since there is several pins on the pin-header not in use, why not trace GPIO19 there, and get it to run I2S with ease ?
According to the diagram:
* GPIO28, GPIO29 and GPIO31 you use internal to hardware configuration. (and now suggest to hardwire to).
* GPIO18 and GPIO21 is traced to the pin-headers. However: GPIO19 is NOT.
Since there is several pins on the pin-header not in use, why not trace GPIO19 there, and get it to run I2S with ease ?
- mahjongg
- Forum Moderator
- Posts: 13567
- Joined: Sun Mar 11, 2012 12:19 am
- Location: South Holland, The Netherlands
Re: Sad about removal of I2S. Why was this change made?
It might not be technically possible to route out GPIO19, depending on where the physical solderball is located of the BGA, also it would diminish the number of standard (GP)I/O pins if they are redefined as part of the I2S port.
Re: Sad about removal of I2S. Why was this change made?
In the meantime, could be there by any chance any way to get better quality from the headphone jack? I can plug my headphones to the screen to get audio from HDMI and get decent quality but the headphone jack has horrible noise in it? Why is that? Is there any workaround?Gert van Loo wrote:nrf said:
@Gert: sorry to sound silly but I am missing something here: how is the sound produced by default in the PI? Isn't that via the PCM/I2S which then created the PWM right and left that drive the headphone?
No, the PWM is driven straight from the GPU using sound-to-PWM software specially written for the Raspberry-Pi. The sound can come from the ALSA driver which passes ARM messages to the GPU. Unless you're playing video+sound which the GPU can all do without talking to the ARM. The same holds for the sound up the HDMI cable: all different streams. So if you want sound out of your I2S you have to first convert it to the right format and then use the I2S/PCM module to push it out.
Cheers, Remi.
Re: Sad about removal of I2S. Why was this change made?
Did anybody find a cheap way to get SPDIF on the PI after all?
- Gert van Loo
- Posts: 2487
- Joined: Tue Aug 02, 2011 7:27 am
- Contact: Website
Re: Sad about removal of I2S. Why was this change made?
There is some general work on SW going on in this thread:
http://www.raspberrypi.org/phpBB3/viewt ... =44&t=8496
There seem to be two kind of users following and contributing that thread:
The ones that can live with a limited functionality only coming out on the GPIO pins.
Others who want to picking the missing signals of the board by adding some wires.
http://www.raspberrypi.org/phpBB3/viewt ... =44&t=8496
There seem to be two kind of users following and contributing that thread:
The ones that can live with a limited functionality only coming out on the GPIO pins.
Others who want to picking the missing signals of the board by adding some wires.
Re: Sad about removal of I2S. Why was this change made?
+1 disapointement =(
I actually bought the PI for a hd audio project using I2C interface (as listed in BCM2835 datasheet). Would never imagine they would remove such desirable feature from it
I actually bought the PI for a hd audio project using I2C interface (as listed in BCM2835 datasheet). Would never imagine they would remove such desirable feature from it

- Gert van Loo
- Posts: 2487
- Joined: Tue Aug 02, 2011 7:27 am
- Contact: Website
Re: Sad about removal of I2S. Why was this change made?
I2S is back on the rev-2 boards.
- silverfox0786
- Posts: 215
- Joined: Mon Feb 04, 2013 10:32 pm
- Location: Slough, UK
- Contact: Website
Re: Sad about removal of I2S. Why was this change made?
im confused here
are we talking about I2C or I2S lack of
are we talking about I2C or I2S lack of
- pluggy
- Posts: 3635
- Joined: Thu May 31, 2012 3:52 pm
- Location: Barnoldswick, Lancashire,UK
- Contact: Website
Re: Sad about removal of I2S. Why was this change made?
In the lifetime of this thread the situation has changed. The early posts are from early last year when the Pi didn't have I2S and they were bemoaning the fact. Around October last year the Revision 2 boards were brought out and I2S had been put on. So if you bought a Pi from late last year it will have I2S. The revision 2 boards have 2 mounting holes in them, the Revision 1 boards don't.
Don't judge Linux by the Pi.......
I must not tread on too many sacred cows......
I must not tread on too many sacred cows......
- silverfox0786
- Posts: 215
- Joined: Mon Feb 04, 2013 10:32 pm
- Location: Slough, UK
- Contact: Website
Re: Sad about removal of I2S. Why was this change made?
pluggy wrote:In the lifetime of this thread the situation has changed. The early posts are from early last year when the Pi didn't have I2S and they were bemoaning the fact. Around October last year the Revision 2 boards were brought out and I2S had been put on. So if you bought a Pi from late last year it will have I2S. The revision 2 boards have 2 mounting holes in them, the Revision 1 boards don't.
my 2 Raspi's are only max 2 months old so i think i have the ones with teh mount holes
but i have looked at RasPi Low lever periphrals website numerous times and cant see mention of it
what header is teh mount hole?