I designed a system that has an 8bit PIC microcontroller with a built-in 12b ADC. I know that, by 256x over-sampling, you can increase this ADC resolution to 16bits. This is done by Sigma-Delta modulation. There are wonderful articles on TI, Microchip, ADI's websites describing Sigma-Delta modulation. . My favorite is the one from ADI (Analog Devices): http://www.analog.com/static/imported-files/tutorials/MT-022.pdf
also MT-023 ... Although the description of the theory is absolutely wonderful, I could not find a single article on Microchip's website (or, any other company's) that explains how I can do this in SOFTWARE.
By using my 8bit PIC uC-based system (specifically, PIC16F1783, but, it doesn't matter which PIC), I am perfectly fine with losing my sampling speed. 75 KSPS is what this uC supports at 12bits. 256x oversampling will drop me down to 300 SPS to increase the bit depth from 12b to 16b. I am perfectly fine with that. My specific questions are:
*** Do I need additional hardware to do this ?
*** If not, does anyone have C code to achieve this ? from PURE SOFTWARE ?
*** Assembly code is totally fine too ...