There’s a special place in our hearts for chip tunes generated with your favorite microcontroller. But why stop there? Full-featured audio is a great challenge and it’s not often we see examples of this caliber. It puts out CD-quality audio using not much more than a microcontroller.
How do you get 16-bit audio out of an 8-bit microcontroller. We’ll give you a hint: two pins are used. Not helping? Here it comes: two 8-bit
DACs PWM outputs are used on this chip, the ATmega1284. One is used for the lower eight bits, the other handles the upper. The two are combined using carefully calculated precision resistor values and the results are beyond what you imagine. This is produced at a bitrate of 44077.135, slightly off from the 44100Hz standard but we challenge you audiophiles to tell the difference. The wave files are served from an SD card read by the chip using the Petit-FatFs library.
There are so many great things about this project. First off, following [Wancheng Zhou’s] example will let anyone with even basic microcontroller skills build a digital audio player for an [Andrew Jackson] and a couple of [Washingtons]. Secondly, those with a medium uC skill level will want to take the idea and implement/debug it for themselves. Bringing it home, [Wancheng] shows how to gauge the quality of the audio output using FFT.
If you didn’t figure it out by the time of year, this is yet another example of a Cornell ECE 4760 final project. Shout out to [Bruce Land] for inspiring awesome projects and requiring extensive documentation of the projects which itself promotes deeper understand all around.