0
\$\begingroup\$

I'm currently working on a audio project where I need to play a 16 bit depth signal with a speaker. Right now I'm using an atmega328 for prototyping, two 8 bit shift registers (controlled by the MCU) and an R-2R DAC (and an LM386). Given that the setup is not so simple, I was wondering if an MCU with a 16 bit DAC exists. Searching on Google, 12 bit is the maximum DAC resolution that I can find for an MCU so far. So my question is: does such a device exist? Or is there a simpler alternative? Thanks

\$\endgroup\$
  • 5
    \$\begingroup\$ The LM386 is a budget audio amplifier. Check its noise specification but I suspect that you're wasting your time with 16 bits. \$\endgroup\$ – Transistor Oct 27 '18 at 15:01
  • \$\begingroup\$ There is a guy who has made a .wav player using just an AVR uC and its PWM. \$\endgroup\$ – Long Pham Oct 27 '18 at 15:15
  • \$\begingroup\$ @Transistor Yeah, I think you are right. 16 bit is way too much. \$\endgroup\$ – Davide Pisanò Oct 30 '18 at 9:53
  • \$\begingroup\$ @LongPham Well, a really cool idea. Thank you for pointing it out. \$\endgroup\$ – Davide Pisanò Oct 30 '18 at 9:54
5
\$\begingroup\$

It's possible that what you want is made, but most DACs you will find built into an MCU would not have more than 12-bit resolution.

In fact simple static DACs of 16 bit resolution are not all the commonly built or used, and are unnecessary for audio. Instead, more complex technique such as Sigma Delta modulation are typically used.

The classic solution of your problem would be an MCU with an I2S interface (or generic synchronous serial implementation able to interoperate with I2S) feeding an external sigma delta audio DAC. Many the STM32 series (and likely other lines as well) have such an interface, and its typically something you can select for when using a distributor's online catalog matrix tool. You may also want to consider making sure you can find code examples for a chip which are adaptable to your need, as figuring out how to operate a peripheral (especially one you would probably want to feed via DMA) from scratch can be a bit of a project.

If your needs are not particularly strict, you might also simply be able to use a PWM output from an MCU timer and an analog lowpass filter.

And yes, there are some parts with 12-bit DACs that you might be able to time modulate to squeeze out another bit or two.

Something you will discover is that it is by no means trivial to design the power and surrounding circuitry in a way that is quiet and linear enough for the limitations of a 16-bit representation to become apparent - it can be done, but a first attempt is unlikely to result in that performance.

A request to identify specific chips would be an off-topic "shopping question" not permitted here.

\$\endgroup\$
  • \$\begingroup\$ Thanks for this info, I misread the question, so I deleted mine. \$\endgroup\$ – Michel Keijzers Oct 27 '18 at 15:56
0
\$\begingroup\$

Yes, they exist. Do a parametric search at a distributor and then go check out datasheets and you will find. Microchip (nee Atmel) parts are one lead.

Or use an external DAC and get more freedom for the MCU core choice and perhaps lower costs. I2S is a common interface for audio.

\$\endgroup\$
0
\$\begingroup\$

Microchip's DSPIC33FJ128GP has an integrated 16 bit audio DAC. I use it often. Its fairly easy to use and I find it pretty good.

\$\endgroup\$
-1
\$\begingroup\$

Why not just daisy chain two DACs with a resistor in between? You can in theory create a 16 bit DAC with two 8 bit ones if you put in just the right resistor in front of one of them. More realistically two 8 bit ones will make a 12 or 14 bit DAC. But why not daisy chain three or four? That way you can get whatever resolution you want.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.