TLV320AIC23B is no longer available
TI withdrew the TLV320AIC23B, marking it obsolete. This means JLCPCB no longer stock it.
Specifications included:
- TSSOP package, so you can see the pins and hand-solder it
- Stereo line-level out
- Amplified stereo out for headphones (with volume control)
- Mono microphone input and stereo line-level input (selectable, with bypass and sidetone)
- I2C control interface
- I2S digital interface, with host providing BCLK, LRCLK, and DATA.
- Ran from 12 MHz crystal
- Supports 16-bit, at 48 kHz and 44.1 kHz
Edit: Experiments show the RP2040 can take in a 12 MHz BCLK and 44.1 kHz or 48 kHz LRCLK, meaning any notes below about PLLs or taking in clocks are moot. Anything that can generate a BCLK up to 12 MHz should be fine - higher is untested.
TSC2102
4-Wire Touch Screen Controller with Stereo DAC with HP Amplifier
- $2.50
- Voltage measurement
- TSSOP-32
- 16 bit 48 kHz audio playback
- SPI interface
- No line input
LM4550B
AC '97 Rev 2.1 Codec with Sample Rate Conversion and National 3D Sound
- $3.38
- Four stereo inputs
- Aux
- Video
- CD (with separate ground)
- Line
- Four mono inputs
- PC Speaker
- Mic 1
- Mic 2
- Phone
- Headphone Output with volume control
- Line output with volume control
- LQFP-48
- PC Speaker input
- AC'97 digital interface (
SDATA_OUT,BIT_CLK,SDATA_IN,SYNCandRESET)BIT_CLKis generated by the CODEC so would be an input on the RP2040.- There is a "Multiple CODEC mode" where the CODEC takes
BIT_CLKas an input. - The AC'97 bus carries one control frame and 12 data frames, of which up to four can contain 256 bits of PCM audio
- The RP2040 doesn't have a spare pin for the
RESETinput. Unsure how critical that is.
PCM5310
4ch/4ch Audio CODEC with 2Vrms Driver
- $3.69
- Headphone out
- Two stereo line out
- Six stereo line in (no microphone inputs)
- I2C control interface
- 64-pin HTQFP
- Six I2S interfaces
- Requires SCK input locked with BCLK and LRCLK input
TLV320AIC3268
Ultra Low Power Stereo Audio Codec
- $4.60
- 8 ohm speaker driver
- Headphone output
- Eight mono analog inputs
- Three I2S interfaces
- I2C for control
- Voltage measurement
- Two stereo line-level outputs
- Pad underneath looks tricky to solder
- Not in stock at JLCPCB
PCM3060
24-bit Asynchronous Stereo Audio Codec with 96/192kHz sampling rate
- $2.61
- JLCPCB have 150 odd in stock
- TSSOP-28
- One stereo analog input
- One stereo analog output
- I2S and I2C interfaces
- No volume control
- No microphone input
- Can generate BCLK at 64 f_s given an SCLK input.
- Not good at changing between 44.1 kHz and 48 kHz with a fixed SCLK input.
PCM3070
Stereo Audio Codec With Embedded miniDSP
- $2.55
- VQFN ⚠️
- Can generate MCLK from BCLK ✔️
- 3x stereo analog in
- Line-level out
- Headphone out
- Not in stock at JLCPCB
CS4245
Six/Two Channel, 104 dB Codec with Mux and PGA
- Five stereo line in
- One stereo line/mic in
- Two line out (DAC and Aux)
- I2C control interface
- 48-LQFP
- None in stock at JLCPCB
CS4271
108/114 dB Stereo Codec
- Requires MCLK input locked to LRCLK ⚠️
- 28-TSSOP
- One stereo line in
- One differential stereo line out
CS42516
110 dB, 192 kHz, 2-in, 6-out Multi-channel Codecs with S/PDIF Receiver
- 64-LQFP
- Has on-board PLL and can generate the MCLK from incoming LRCLK ✔️
- Six mono DACs, one stereo ADC
- Eight S/PDIF interfaces
- I2C control interface
- Requires separate ADC for microphone input
- Not in stock at JLCPCB
CS42526
114 dB, 192 kHz, 2-in, 6-out Multi-channel Codecs with S/PDIF Receiver
- 64-LQFP
- Has on-board PLL and can generate the MCLK from incoming LRCLK ✔️
- Six mono DACs, one stereo ADC
- Eight S/PDIF interfaces
- I2C control interface
- Requires separate ADC for microphone input
- Not in stock at JLCPCB
AD1938
4 ADC/8 DAC with PLL, 192 kHz, 24-Bit Codec
- SPI control interface
- PLL to generate MCLK from LRCLK ✔️
- 48-LQFP
- Needs separate microphone pre-amp
- 179 in stock, at $7
AD1937
4 ADC/8 DAC with PLL, 192 kHz, 24-Bit Codec
- I2C control interface
- PLL to generate MCLK from LRCLK ✔️
- 48-LQFP
- No microphone input - will need extra boost circuit
WM8988
QFN. Has 12 MHz "USB Mode" like TLV320AIC23, but it doesn't have a crystal driver and it's unclear whether it'll actually let you run MCLK and LRCLK unsynchronised.
Edit: Obsolete and not in stock at Digikey
Another option is to put the RP2040 into receive-mode. You just massively oversample the BCLK pin, waiting for the transition, and then clock out the DAC bit and clock in the ADC bit, using auto-push/pull on the FIFO. You spin once waiting for LRCLK on start-up to lock yourself to the left/right. This removes the need to find a CODEC with a PLL that can lock to LRCLK without an MCLK.
TLV320AIC3104
TLV320AIC3104 Low-Power Stereo Audio Codec for Portable Audio and Telephony
- VQFN :/
- The BCLK input can also be used to generate the internal audio master clock ✔️
- Two mono microphone inputs
- One stereo line input
- Headphone output
- Line output
- 2,600 in stock at JLCPCB @ $1.66
PCM510x
As used on the Pico Explorer board and the Pico VGA demo board. Internal PLL to generate SCK from BCLK - you can just ground the SCK pin and feed it BCLK, LRCLK and DATA. Single analog stereo output, so you'd need a headphone amplifier.
PCM5100A, PCM5101A and PCM5102A only differ in SNR - PCM5102A is best.
JLCPCB have 4000 in stock at $1.45. You'd need a matching ADC...
PCM1863
I2S ADC with internal PLL. Only requires LRCLK and BCLK in, and generates DATA out. Designed to go with PCM5100. Four stereo inputs. PCM1862 same but worse SNR. TSSOP-30.
JLCPCB have 4000 in stock at $1.43.
Edit: No JLCPCB now have none
PCM5121
Like a PCM5100 but it has I2C volume control. Unfortunately it's not in stock at JLCPCB.
PCM514x
Like a PCM512x but you can program the DSP instead of relying on the ROM routines. $5 at JLCPCB and only low stocks available.
ALC5628
I2S/PCM Audio DAC with Headphone and Mono Class-D Speaker Amplifier
- QFN-32
- Stereo line-in
- Stereo headphone out
- Stereo line out
- I2C control
- I2S interface
- Not at JLCPCB - only from marketplace sellers
ALC5616
Ultra-Low Power Audio CODEC for Mobile Devices
- JLCPCB have 5,000 at $0.77
- QFN-32
- Headphone amplifier
- 7-band parametric Equalizer
- Microphone input with pre-amp
- Stereo line input
- Stereo line output
- PLL to generate MCLK from BCLK
- 24-bit 192 kHz I2S interface
- It's only available from JLCPCB - not the catalog vendors
NAU88C22YG
24-bit Stereo Audio Codec with Speaker Driver
- QFN-32
- In stock at Digikey
- 1500 in stock at JLCPCB for $0.62
- 5-band equalizer
- PLL that runs from BCLK
- Headphone Out
- 8 ohm speaker out
- Line Out
- Line In
- Stereo Microphone In
- I2S interface
- I2C control interface
RSPKOUT receives its audio signal via an additional submixer. This submixer supports combining a traditional alert sound (from the RAUXIN input) with the right channel headphone output mixer signal.
We can wire the BMC PWM beeper output into the RAUXIN pin, which will then be passed to the built-in loudspeaker drive circuit. So, the unit can do PCM beeps but also play PCM audio over the internal speaker (like a Risc PC). This also means it can chime on start-up like a Macintosh.
The MA35D1 board from Nuvoton includes this CODEC, and the user manual has a full schematic including the audio section.
WM8960
Suggested by Ben Jordan.
- Three stereo inputs, and mic bias generation.
- Speaker outputs and Headphone Outputs
- PLL
- QFN 5x5 :/
- Available on a bunch of cheap CODEC boards
- JLC have 252 @ $2.70
Edit: This chip has now been obsoleted
That Nuvoton part won't work - the max PLL scaling factor is 12 and that doesn't get us high enough with a 1.536 MHz input from the RP2040.
I'll see if I can operate the existing TLV320AIC23 in clock-out mode. If so, this search gets a lot easier.
Stop the press! The PIO at 150 MHz ish is more than fast enough to oversample a 12 MHz BCLK and 48 kHz LRCLK from the CODEC. So I need to start again and stop worrying about PLLs.
I think the next step is to make a NAU88C22YG break-out board using the schematic from the MA35D1 board as noted above.
See https://oshwlab.com/Analityk/nau8822, where someone has already made a break-out board.
TLV320AIC3204
- JLCPCB have 3100 in stock @ $2.34
- QFN 5x5
- Stocked at Mouser and Digikey