With the ASoC driver it is quite easy - you only have to specify the correct format in the machine driver. I can help you to build a machine driver, but first I have to understand your setup:Sniper435 wrote: could either Philpoole or koalo fill me in with what changes or driver options need to be supplied to run the Pi as an I2S slave?
Why are you using a DIR9001 as well as a PCM5141? Are you using the DIR9001 only for clock generation (this seems bloated - even if you want to use an external clock) or is there anything else that this chip does for you?Sniper435 wrote:From what I understand (and more importantly what my collaborator and hardware wizard understands) we're all set up in terms of supplying the correct clock to the Pi (we are using a DIR9001 with an external crystal to generate and supply the clocks both for the pi and for the DACS which are PCM5141) ideally we want to be able to run at 48KHz and 24bits.
Code: Select all
git init git fetch git://github.com/koalo/linux.git rpi-3.8.y-asocdev:refs/remotes/origin/rpi-3.8.y-asocdev git checkout rpi-3.8.y-asocdev
Code: Select all
sudo modprobe -a snd_soc_bcm2708 snd_soc_bcm2708_i2s bcm2708_dmaengine snd_soc_tda1541a snd_soc_rpi_tda1541a
3.8. is not absolutely required, it should also be possible to apply those patches to the 3.6. branch. However, I would like to switch to 3.10. sooner or later, because it will have some new features in the ASoC core. Why are you restricted to the 3.6. branch?mhelin wrote:Great someone has took time for implementing the ASoC driver support. Is the RPi kernel version 3.8.x absolutely required? Got to upgrade the kernel first then.
It should have been tested..... I forgot to register the device. I am sorry!koalo wrote:I have not tested it....
Code: Select all
$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA] Subdevices: 8/8 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 card 1: sndrpitda1541a [snd_rpi_tda1541a], device 0: TDA1541A HiFi tda1541a-hifi-0  Subdevices: 1/1 Subdevice #0: subdevice #0
I am happy to see more and more people working on this topic!steveha wrote:My intention is to set up raspberry PI to connect my NOS TDA1541A dac via I2S.
Oh, yes, you find the corresponding setting understeveha wrote:When performing modprobe, I come across 'bcm2708_dmaengine' is missing.
That is normal - you have to repeat the modprobe after each reboot. Later this should be done via modules.conf, but that is another topic...steveha wrote:Now, I have the correct 'aplay -l' screen. However, ' card 1: sndrpitda1541a [snd_rpi_tda1541a], device 0: TDA1541A HiFi tda1541a-hifi-0 ' disappeared after poweroff.
You buy a revision 2 board and solder a pin header at P5. Then you have PCM_FS on pin 4. (Maybe I misunderstood you question...)Wavelength wrote:So basically to get I2S working on the GPIO port we need to get GPIO19 (PCM_FS) out. So what is needed to do that?
Thank you It is great, that someone - besides me - gets my driver running!steveha wrote:Well done. I would like to inform you that your drivers are really great. I have been suffering from
USB packet loss for a long period. Your I2S driver is just another story - smooth and noise free.
Maybe I have to disappoint you a little bit: The TDA1541A only supports 16 bit, the 24 bit material is rounded inside of ALSA. However, 96 kHz should be ok. I never tested that and since there is a little trick for multiples of 8000 kHz, it is great to hear that it seems to work!steveha wrote:So far, I have no problems on streaming 44/16 and 96/24 materials.
I don't know about any limitation. If you can find one, I would be nice to know! (What is this 176.4?)steveha wrote:BTW, is there any limitation on the brandwith (e.g. 176.4 ) ? I will perform some more testing and let you know the results.
In fact the driver currently runs at 40fs for 16 bit (that is the trick to get better clocks out of the Raspberry Pi). I don't know if that is a problem for some codecs, but let me know if it is. Furthermore, I think you should use an external clock source (or the one from a codec) if you are going to such high quality. I don't think that the Raspberry Pi has such a good clock (but I don't know...).steveha wrote:The main difference between them is ESS9018 is running on 64fs bit clock I2S and TDA1541A only does 48fs.
I didn't even know that there are devices with such a high sampling rate I will enable that inside the driver and maybe you have lucksteveha wrote:176.4 khz or 192 khz
Users browsing this forum: No registered users and 6 guests