Moving forward with 4.1 For USB audio

Do not send me hardware. I have a huge backlog of other work, so I can not possibly dedicate time to troubleshooting your hardware on my workbench.

I did look over the schematic and the connections seem to agree with the code. Your schematic symbol for Teensy 4.1 doesn't show normal pin numbers like the chip does. Are you sure the signals really are connected correctly on your PCB?
 
Do you have an oscilloscope or logic analyzer? Now is really the time to look at what's actually happening on the I2S signals. If using a scope, set it to trigger on the LRCLK signal. If you only have 2 channels, LRCLK and DATA are the important ones to view.
 
Maybe the PCM1860 is not connected properly?

My understanding is it should always output something in response to the 3 clocks with the pins as you've configured them. Even a zero analog input will always result in a lot of random data in the low bits.
 
Hi
I use a PI-Hat as ADC input and there a PCM1863 is running on.
This thing is doing most of its I2S configuration by auto-config. So even if you do not setup any configuration via I2C it should work out-of-the-box.
Configuration via I2C is limited to the internal audio specific stuff.

In my setup I use it in Slave-Mode without the MClk as this is not available on PI-Hats.

I do not know the arduino libs. So does yours run in Master- or Slave-Mode?

On the DIn pin of the Teensy you always see some flickering data. There is always something shaking the inputs.
LRClk should run the sample freg and the BClk should be somewhat higher, about 6MHz?

I use 96kHz sample rate so maybe have wrong values in mind.

The I2S in the RT1060 knows different styles of frame sync. For the PCM1863 I needed to set "FrameSync Early" to true. Without that I was some bits late.

I use a raspi as a serial output terminal. So I know that you will always get some data as input.
Besides ... the raspi has 3.3V levels on its I/Os so you can connect it directly to the Teensy board.
 
No, not really 4 channels.

screenshot.jpg

Even if it was really 4 channels, meaning 2 data signals required for I2S protocol or use of TDM protocol, Teensy 4 can handle that with either the quad I2S input or TDM input.

But you would be wasting your time to attempt using TDM or quad I2S, because the version of the chip you have can do at most 2 channels. Only normal I2S is appropriate.

All of these ADC chips with pin config work the same way. When you connect the pins for I2S slave mode (all clocks are from Teensy to ADC chip) it will output some data because even with the analog input shorted to GND there is always some small noise inside the ADC.

Since you have Teensy configured to create all the clocks and you're not getting that data signal, I am pretty sure the problem is incorrect connection of the ADC chip.
 
OK. I got the breakout board. I connected it up to the breadboard. Just it and the teensy.
xxx.JPG
cca.jpg



Connected pins in I2S mode 1 instead of the I2S2 that I had on previous replies.

I'm getting signals on BCLK, MCLK, and LRCLK at the correct frequencies on my scope.

I'm still getting a flatline for the RX / input into the teensy from the chip.
 
Problem solved. Their manual was either not clear enough to me or was giving wrong instructions. In the manual they "INT pin - Interrupt output (for analog input detection). Pull high for active mode, pull low for idle."

I had it 3.3v, pin should be ground instead.
 
Last edited:
Back
Top