• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

TinySine TOSLINKBee SPDIF to I2S Module - ASRC Configuration?

Rednaxela

Major Contributor
Joined
Mar 30, 2022
Messages
2,588
Likes
3,538
Location
NL
For a little ESP32-based audio project I am trying to work out if this module fits my needs and how.


This TOSLINKBee module can convert SPDIF optical audio singal to I2S output. It has a TOSLINK receiver on the module and two 10 pin 2.0mm male pins. DIR9001PW converts the SPDIF signal to I2S, and CS8421 converts the audio sample rate. TOSLINKBee can automatically adapt to different sampling rates devices, from 16bit 44.1KHz to 24bit 96KHz. TOSLINKBee is a I2S slave device, It can work with all our DSP digital amplifiers. If you replace the AudioB Bluetooth module with this TOSLINKBee, the whole amplifier will become a new TOSLINK input amplifier board.

TOSLINKBee-4.png


Pins define
5V is input. 3.3v is output


Features:

  • Size: 40*35*20mm
  • Biphase Input Signal Sampling Frequency (fs) Range: 28 kHz to 108 kHz.
  • I2S: Sampling Rate: 44.1KHz to 96KHz
  • I2S: Bit per Sample: 16 bit or 24bit
  • Input voltage: 5VDC

Basically I am wondering if it can be made to
  1. output a fixed 24/96 signal,
  2. while at the input side supporting variable bit depths and sample rates.
From the product description it appears so but what is provided is a bit cryptic, and I find myself struggling to connect all the dots.

One thing that's unclear to me is how the unit is to be configured to output either of the supported
  • I2S: Sampling Rate: 44.1KHz to 96KHz
  • I2S: Bit per Sample: 16 bit or 24bit
To avoid too much TLDR, let me just list my questions.
  1. As it is an I2S slave device I take it the first bullet is determined by the I2S master, in my case the ESP32 board, specifically by the *CK signals it generates. Correct?
  2. How about the second bullet - is this also set by the I2S master through its *CK rates?
  3. If so, how is this in line with what's in section 4.2 - Mode selection (p. 17) of the attached CS8421 data sheet, where it says that output bit depth selection is set and fixed by means of resistors?
  4. Has this in this component been set to 24 bit so that 16 bits also fit, or does it not work that way?

Anyone who could shed some light on this? Thanks so much!



Edit: numbered questions
 

Attachments

  • 1730309026634.png
    1730309026634.png
    44.5 KB · Views: 66
  • CS8421_F7.pdf
    1.1 MB · Views: 84
Last edited:
I just got one of these to integrate into a raspberry 3 b+ for basic dsp on a Tv optical input, but my understanding is that it locks in i2s master mode (so I will have to put rasp in i2s slave mode using overlay) and output is also locked to 48KHz/24. Did you have the chance to check? Thank you

Cheers,
 
Last edited:
I haven’t used the TOSLINKBee board, but have used several other TinySine products. The following is just my best guess how the TOSLINKBee actually operates based on my experience.

The TinySine documentation states that the “TOSLINKBee is a I2S slave device”. According to the TinySine schematic. the board only requires I2S lines BCK (bit clock), SD (data), LRCK (left/right clock) plus power and ground. No MCLK (master clock) is required.

From the CS8421 datasheet (LINK): “In Slave Mode, the left/right clock and the serial bit clock are inputs”. The CS8421 uses these inputs to determine the Fs (48 KHz, 96 KHz, etc.) and MCLK of the master I2S device (the one receiving the I2S data).

Also from the datasheet: “The CS8421 uses the resistors attached to the MS_SEL, SAIF, and SAOF pins to determine the modes of operation.” If you look at the tables in the datasheet:

MS_SEL determines the master/slave modes of the CS8421 input and output sections. We know the output section is set to slave mode. The input section (the DIR9001PW’s I2S output)) is really a don’t care, but I’d guess it’s also set as a slave.

SAIF determines I2S format for the input section. This is also a don’t care, but I’d guess it’s set to “I2S up to 32-bit data”.

SAOF determines the I2S format for the output section. The TinySine DSP program for their amplifier using this board configures the incoming I2S data as 16 bit, I2S format. So that’s my guess how the CS8421’s output is configured too.

Edit: I looked again at the DSP program. Based on the DSP's BCK setting the I2S data could handle up to 32 bits. So the TOSLINKBee could be set to 24 bits, but the DSP would throw away the extra bits.

Again, this is just my armchair analysis. I’d contact TinySine to verify this.
 
Last edited:
I do have an unused TOSLINKBee board and measured 1 KOhm from the SAOF pin to the ground pin. That configures the I2S output data to 16 bit, I2S format. You can configure your receiving device as 24 or 32 bits, but the extra bits will be zero filled.
 
Back
Top Bottom