You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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.
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.
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.
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.
Activity
thejpster commentedon Aug 5, 2023
thejpster commentedon Aug 5, 2023
thejpster commentedon Aug 5, 2023
thejpster commentedon Aug 5, 2023
thejpster commentedon Aug 5, 2023
thejpster commentedon Aug 5, 2023
thejpster commentedon Aug 5, 2023
thejpster commentedon Aug 5, 2023
thejpster commentedon Aug 5, 2023
thejpster commentedon Aug 5, 2023
thejpster commentedon Aug 5, 2023
thejpster commentedon Aug 5, 2023
thejpster commentedon Aug 5, 2023
thejpster commentedon Aug 5, 2023
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.
thejpster commentedon Aug 5, 2023
TLV320AIC3104
TLV320AIC3104 Low-Power Stereo Audio Codec for Portable Audio and Telephony
thejpster commentedon Aug 5, 2023
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
thejpster commentedon Aug 5, 2023
PCM5121
Like a PCM5100 but it has I2C volume control. Unfortunately it's not in stock at JLCPCB.
thejpster commentedon Aug 5, 2023
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.
thejpster commentedon Aug 5, 2023
thejpster commentedon Aug 5, 2023
ALC5616
Ultra-Low Power Audio CODEC for Mobile Devices
thejpster commentedon Aug 5, 2023
NAU88C22YG
24-bit Stereo Audio Codec with Speaker Driver
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.
thejpster commentedon Aug 18, 2023
thejpster commentedon Aug 18, 2023
thejpster commentedon Sep 3, 2023
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.
thejpster commentedon Nov 14, 2023
I think the next step is to make a NAU88C22YG break-out board using the schematic from the MA35D1 board as noted above.
thejpster commentedon Nov 15, 2023
See https://oshwlab.com/Analityk/nau8822, where someone has already made a break-out board.
thejpster commentedon Nov 20, 2023
TLV320AIC3204