Has anyone used the AC108 or similar as a TDM ADC with the Teensy?

Gav

Member
Hi All,

The background to this is I’m investigating quick ways for me to get extra audio channels into the Teensy. (I’m in Sydney and our supply chain is not exactly prompt)
While browsing around for stuff to improvise with, I noticed that my local electronics shop has a bunch of the Respeaker for Raspberry Pi’s in stock for a very reasonable $40 ea:
https://www.littlebird.com.au/products/respeaker-4-mic-array-for-raspberry-pi
(The Respeaker for Raspberry Pi is a square board, consisting of 4 analog microphones, and the AC108 as ADC to convert to various digital formats, including TDM. It’s aimed at sound localization & voice control stuff)

I’ve been playing with the audio libraries recently, and love the teensy ecosystem a lot.
I see the Teensy audio libraries’ native processing is all performed on 16 bits data. And I see from Paul’s post here: https://hackaday.io/project/2984-te...g/57537-tdm-support-for-many-channel-audio-io
And the audio tool documentation, that the AudioInputTDM object decodes a 256 bit TDM data frame, and puts it into 16 channels of 16 bits each. (Which in the case of the CS42448 board is actually representing 8 channels of 32 bit data. (Which is made up of 24 valid bits, & 8 bits of padding))

I also see that the ICS-52000, which is from what I gather probably the most common TDM mic, similarly uses 32-bit frames with 24 data bits padded with 8 zero bits.

So, given how easy it is to get TDM into Teensy & start processing (around two mouse clicks), I’m hoping that the AC108 ADC chip (which the datasheet promises can provide TDM), will provide a TDM format that is compatible:
https://cdn.sparkfun.com/assets/6/0/d/c/a/AC108_Datasheet_V1.1.pdf

However the datasheet is light on details as to how to set it up. I presume the AC108 must be interrogated via I2C and put in a suitable mode for the TDM to begin working, but there’s nothing about I2C registers in the datasheet, and more detailed manuals are hidden by the manufacturer behind a broken web form.

My next step is to reverse engineer the code here:
https://github.com/respeaker/seeed-voicecard/blob/3d56af9d3ca403487fc5ba18154976950f2a7fd4/ac108.c
to see how the raspberry pi driver works under the hood, and exactly what is required to initialize the chip.

But I thought I’d check with the community first in case someone has already figured it out?

For $40, I’m quite willing to grab one and risk it not working. A $40 microphone array and a $35 teensy to make a quick-and-dirty phased array sonar would be pretty awesome.

Cheers,

Gavin
 
Hey! I am trying exactly the same at the moment. I have a Teensy 4.0 and the Respeaker 4-Mic RPi hat. Wasted some time on searching for the I2C docs but did not find anything unfortunately. Did you succeed?
 
Hey! I am trying exactly the same at the moment. I have a Teensy 4.0 and the Respeaker 4-Mic RPi hat. Wasted some time on searching for the I2C docs but did not find anything unfortunately. Did you succeed?

Hi Andre,

Life got in the way and I haven't had a chance to try it, sorry. If you get it running please let me know!

Cheers,
Gavin
 
Back
Top