Go Back   Home > Forums > >
Home Forums Rules Articles diyAudio Store Blogs Gallery Wiki Register Donations FAQ Calendar Search Today's Posts Mark Forums Read

Digital Line Level DACs, Digital Crossovers, Equalizers, etc.

A question for DAC builders using the SRC4392
A question for DAC builders using the SRC4392
Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 26th March 2020, 05:02 PM   #1
commuteman is offline commuteman  United States
diyAudio Member
 
Join Date: Jul 2004
Location: SF Bay Area
Default A question for DAC builders using the SRC4392

Hi folks,

I'm working on my second DAC project, and I've run into a problem working with the SRC4392. Maybe someone here has some insight.

I'm sending I2S from a Raspberry Pi into the Port B serial port, but it only works with 24-bit data and there doesn't appear to be a register option for 16-bit I2S. I could tell Volumio to upsample to 24-bit, but that kinda defeats the purpose of the SRC. Port B is set up as a slave.

Background:
My first DAC was a simple PCM5142 driven via I2S from a Raspberry Pi. It worked well and sounded surprisingly good. It is compatible with the Allo Piano DAC driver, so I used that.

Starting simple - my first DAC

The PCM5142 seems to be happy receiving 16- or 24-bit data at any speed from 44.1 to 192 , but the SRC4392 isn't so accommodating.

The new one has an SRC4392 between the RPi and the PCM5142, with the DAC driven at 192kHz 24-bit by a better clock. I'm programming the 4392 from an Arduino Uno, thinking I might eventually add other inputs to the 4392 and make it a digital pre.

The format options for Port B (Register 05) are:

24 bit Left Justified
24 bit I2S - this works perfectly for 24-bit files
16, 18, 20, or 24 bit right justified

I thought 24-bit I2S would work with different data lengths, since it's MSB first. But no.

Has anyone made 16-bit work with the SRC4392 serial ports?

BTW, this forum is an amazing resource and a great community!

Thanks,
Peter
  Reply With Quote
Old 26th March 2020, 08:02 PM   #2
rfbrw is offline rfbrw
diyAudio Member
 
Join Date: Oct 2001
Location: .
It works with up to 24 bits. In slave mode, it is for you to format the data accordingly, as the attached device is now bus master. There is no need to explicitly define the word length with Left-Justified or I2S data as the MSB does not move with word length unlike Right-Justified data.
Perhaps MarcelvdG can chime in. His valve dac uses the SRC4392.

Last edited by rfbrw; 26th March 2020 at 08:19 PM.
  Reply With Quote
Old 26th March 2020, 09:14 PM   #3
MarcelvdG is offline MarcelvdG  Netherlands
diyAudio Member
 
Join Date: Mar 2003
Location: Haarlem, the Netherlands
Yes, but I have no idea what is going on either. As far as I know, it should just work when you set it to be an I2S slave.
  Reply With Quote
Old 26th March 2020, 09:40 PM   #4
commuteman is offline commuteman  United States
diyAudio Member
 
Join Date: Jul 2004
Location: SF Bay Area
MarcelvdG and rfbrw,

Thanks for the replies. Sounds like your expectations were the same as mine :-)

I have Port B running as a slave driven by the RPi over I2S. The SRC takes the data from Port B and then Port A outputs it at a fixed 24-bit 192kHz to the PCM5142.

Playing a 24-bit music file on the Pi works fine, but playing a 16-bit file there is no output.

One interesting thing is that I have an LED driven from the RDY pin, which will light when the SRC completes the rate estimation process. It blinks when I change file type, but lights just fine for both 16-bit and 24-bit signals. Does that imply that Port B is correctly receiving the data, or does it mean only that the clock is being received correctly?

Thanks for your help,
Peter
  Reply With Quote
Old 26th March 2020, 10:18 PM   #5
MarcelvdG is offline MarcelvdG  Netherlands
diyAudio Member
 
Join Date: Mar 2003
Location: Haarlem, the Netherlands
Does no output mean complete silence or -48 dB?

Page 25 of the datasheet says explicitly that a bit clock rate of two times the wordlength times the LRCK frequency should suffice in slave mode.

The not-RDY signal goes low when both sample rate tracking loops have switched to slow mode, so that means that the SRC4392 recognizes the word clock LRCK and its frequency is OK. It doesn't say anything about the data.
  Reply With Quote
Old 26th March 2020, 10:31 PM   #6
commuteman is offline commuteman  United States
diyAudio Member
 
Join Date: Jul 2004
Location: SF Bay Area
Marcel,

Thanks for that. I will take another look at the output in the 16-bit case and be back.

Peter
  Reply With Quote
Old 30th March 2020, 08:35 PM   #7
commuteman is offline commuteman  United States
diyAudio Member
 
Join Date: Jul 2004
Location: SF Bay Area
A little more info:

If I play 24-bit or 32-bit files at any sample rate from 44.1-192 it works fine. 16-bit files at 44.1 or 48kHz result in silence. As far as I can tell it's zero output rather than -48dB.

I made a mistake on the PCB; I was so worried about keeping the signals from the SRC4392 to the PCM5142 as clean as possible that I didn't add any test points and there's nowhere I can easily connect logic probes to look at the data flowing between them. I can't find test clips that will work on either chip.

But I did take a look at the PCM5142 registers, and they all stay the same even when I'm trying to play 16-bit files. In other words, the 5142 thinks it's receiving a valid clock from the 4392, and isn't indicating any problem.

As far as I can tell this all implies that the SCR4392 is refusing to output a 24-bit version of the 16-bit data. Either the SRC isn't converting it, or Port A won't output it.

I have posted a question in the TI forums, so hopefully I get some insight from there.

Peter
  Reply With Quote
Old 30th March 2020, 10:05 PM   #8
commuteman is offline commuteman  United States
diyAudio Member
 
Join Date: Jul 2004
Location: SF Bay Area
And one more piece of info:

I'm using the Allo Piano DAC driver on the Raspberry Pi, since the Piano also uses a PCM5142. I suppose it's possible that there is something funky about the way that particular driver is communicating when it sends the 16-bit files. Eventually I will attempt to create an overlay driver file for my own DACs.

The driver is talking directly to the PCM5142 via I2C for things like volume control, but the I2S is being intercepted by the SRC4392.

I'm going to take another look at the I2C data sent from the Pi when file type is changed.

Peter
  Reply With Quote

Reply


A question for DAC builders using the SRC4392Hide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Solid State Amplifier Builders Question from a new guy BalashiFan5 Solid State 2 9th February 2013 03:37 AM
question for BOFU Pass TL builders... Decker Full Range 4 7th December 2010 10:54 AM
Src4392 + Ad1865??? Gcollier Digital Source 2 6th August 2006 03:29 PM
Anyone tried new SRC4392? andrei Digital Source 3 3rd July 2006 03:10 AM
Question for Pass a40 Builders Eric Pass Labs 16 26th August 2002 02:51 PM


New To Site? Need Help?

All times are GMT. The time now is 04:55 PM.


Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 15.00%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Copyright ©1999-2020 diyAudio
Wiki