• Disclaimer: This Vendor's Forum is a paid-for commercial area. Unlike the rest of diyAudio, the Vendor has complete control of what may or may not be posted in this forum. If you wish to discuss technical matters outside the bounds of what is permitted by the Vendor, please use the non-commercial areas of diyAudio to do so.

Building an open embedded audio applicance.

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Looking good!

Just want to make a point that I am also NOT interested in making this cape "low end" and save a few bucks. PLEASE make it "high end" with the best clocks, power, isolation,... for interfacing to the Buffalo :)

IMO after this is done, then an other cape with features like included "low end" DAC, cheaper clocks, no reclocking etc can be developed, IF time and interest is there...

Please be aware of the "scope creep monster"... ;)

Cheers
 
Last edited:
Roll off issues with I2S

I've measured HUGE difference of ES9018 filter roll off when using I2S.

Any idea? Bad settings?

White noise signal on SPDIF generated by onboard sound card and ARTA.
White noise signal on I2S generated by following command on BBB:

$ dd if=/dev/urandom | aplay -r 48000 -c 1 -f S24_3LE -

For 16bit it looks similar, but for 32bit the roll off is even more strange and roll-of is moved to 48kHz instead of 24kHz.

EDIT: first two images are for SPDIF input and the other two (with much noise) are for I2S input.
 

Attachments

  • b3-white-48k-sharp-spdif.png
    b3-white-48k-sharp-spdif.png
    39.7 KB · Views: 700
  • b3-white-48k-slow-spdif.png
    b3-white-48k-slow-spdif.png
    39.9 KB · Views: 670
  • b3-white-48k-sharp-i2s.png
    b3-white-48k-sharp-i2s.png
    39.3 KB · Views: 657
  • b3-white-48k-slow-i2s.png
    b3-white-48k-slow-i2s.png
    39.5 KB · Views: 642
Last edited:
Default settings work on a pi so should be ok for BBB. They also work well on a wandboard which is what we are using for CSOS.

Pi doesn't have the horse-power (CPU bound) to resample on-the-fly to >96k. Not sure how the BBB compares, hardware wise. ISTR, upsample was fine up to 192k with the original BB I have. Not used that for a couple of months, though. (And not sure if the BBB uses the same processor as the BB.)

I'm building the latest CSOS F20 kernel with a bunch of patches for the BBB. Not sure this is going to happen anytime soon, but I'll add miero's BBB I2S patches to the next build, assuming they apply to the latest mainline. Then, maybe Chris can try my CSOS F20 test image on the BBB. ;)

Miero, your code, are you using recent kernels and device tree for initialisation?
 
Measured bare I2S output from BBB, no DAC connected.

Signal changes on falling clock side.
Data is delayed 1 by LRCLK.
MSB is on the left, LSB on the right.
Playing 16/24 bit keeps data aligned on the left side.
Analog channels of BCLK, LRCLK and DATA seems well (BCLK is not shown, but well aligned with LRCLK/DATA).

Seems OK to me.

One thing that might be incorrect is Left-Right side.
 

Attachments

  • i2s_timing.png
    i2s_timing.png
    34.6 KB · Views: 625
Yes, it is developed for kernel 3.8.13 and it uses device tree for initialization.

I've not tried it with the 3.12.x yet.

I think you'll need at least a 3.13.x to boot BBB with a mainline, non-patched kernel. (Not sure on that, but ISTR reading it somewhere.)

OK. I just had a quick 5 minute look, with a view to integrating your code into mainline kernel...... I see use of device tree overlays and cape manager...... That will be a problem with mainline I think, the lack of cape manager functionality.

Modules compile OK with 3.13.6. Suspect it might work OK with a static (boot time only) dts file. Will look again at some point in the future. I'm keen not to go down the path of vendor supplied kernels. Have had enough of that. Don't ask! ;)
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.