Open-source USB interface: Audio Widget

There is a ring buffer in the widget firmware. So when sync is lost the buffer is replayed.

Uac1 and uac2 have very different mechanisms and the drivers will also behave differently.

I will look at uac1 mute and see whether there are ways to mute the "chirps". You cannot compare the widget against other uac1 devices as they may not be (unlikely) async out with rate feedback. If there is no rate feedback there is no loss of sync to speak of :)

Playback software should also do the proper thing by muting the output while skipping tracts or changing sampling rates etc.

Nonetheless, I will see what can be done in the firmware to mute the output :). If in cannot be done u can always stick with uac2 :)

Alex
 
Can I apologize in advance, as I have not read this whole thread.

I am interested in an I2S to usb device (up to 24/192) to take digital audio into a PC.

I am starting a project to rack up a TI PCM4222 ADC evaluation board, and want to capture the digital audio to computer. The evaluation board has a serial data header from which an I2S format data stream can be taken.

(I have found some options (eg the miniSTREAMER) which offer up to 24/96, and I could also just use the spdif input from my Echo Audiofire 8 interface.)

Just wondering if any of the projects discussed here can be used, or adapted, for my purpose? Thanks in advance.

regards, Paul
 
Hi guys, how difficult would it be to add firmware for generic ADC I2S to the audio widget branches? The ADC would have to be I2S slave. And whether or not to forward the data from the I2S pin (and enumerating as audio IN for that matter) could be a matter of firmware config. The hardware support is already there.

Børge
 
Hi Borge,

The ADC will have to be i2s master instead of slave to make sure the L/R channels are not inverted. This is a quirk of the Atmel chip (we are using the DMA for the i2s transfers and the exact timing with respect to the LRCK is not directly controllable by the cpu.)

Also the MCLK for the ADC has to be synchronous with the i2s clock used by the Atmel - ie you need to feed the MCLK (or a divided MCLK in case it is > 16Mhz, as the Atmel uC cannot take > 16Mhz) to the Atmel's xin1 pin.

If you want the ADC to be i2c slave, you will have to have a master clock and clock circuit that can generate the i2s SCLK and LRCK and then drive both the ADC and the Atmel. This is not trivial as the LRCK freq changes with the sampling rate.

In other words, you have to look at each ADC and see how best to design the hardware/firmware to fit. A "generic" ADC interface may not give you the low jitter clock signals and consistent L/R channels desired for a high performance unit.

Alex
 
Hi Alex,

According to section C.5.10 I2S of http://www.cyantechnology.com/public/manuals/eCOG1X_V2/eCOG1X User Manual-33.htm
both outgoing and ingoing serial data are sampled by a positive bit clock edge. So for test purposes it should be possible to selectively patch DAC serial output to ADC serial input. (Add a pull-down to ADC in so that it returns 0 when patch is not present.)

Do you think it is feasible that outgoing serial data is updated at negative edge while incoming serial data is read on the following positive edge?

Børge
 
Last edited:
Thanks Alex

1. Yes, that's snow leopard. Switching to UAC1 I have the volume controls back but it is still mute.

2. No idea, I browsed the group data and messages but I have no clue how to download and run this widget. I am quite a cave man when coming to these very specific tricks.


Gianluca
 
I guess the GUI compatible with OS/X is only the Python-based one, "WidgetControl.py", not the windoze exe file. Likely you'll have to install all of its dependencies first (Python et all).

BTW:

have you checked what's in "Configure Speakers"?

The "clock source" can be changed? (which are the options?)

A/W have no volume, so I'd say that it's no surprise that the controls are either completely disabled or works in a "binary" way (zero/full) only.

P.S.: try mute/unmute and changing resolutions. Try using the same res. as the material being played (e.g., CD).

P.P.S.: to me, everything looks fine there... :-/
 
Last edited:
This is how it looks when i switch to UAC1: volume controls active but it is mute (i understand it is untested on Macs). On UAC2 controls are disabled and set to zero. Mute/unmute won't change the result, modifying the resolutions doesn't help.

I tried on a win laptop but it became unresponsive when the AB11 was plugged in. I don'y know if I need drivers or such.

Gianluca
 

Attachments

  • SDR_UAC1.jpg
    SDR_UAC1.jpg
    148.9 KB · Views: 148
You need drivers for Windows. Download from the code site I mentioned. AUDWDGT... And SDRWDGT.... Then run the Windows version of WidgetControl.

Btw, windows will HANG with a uac2 device such as widget, unless u have a third party uac2 driver installed.

U really need to get WidgetControl working first and show me a screenshot to see what you have set up in the widget.