Before I dive in to explaining it, I want to say that take everything that I say with a bucket of salt. I'm not claiming to be advanced in the so-called "voltnut territory". I am enthusiastic about this topic, but... well yea.
https://github.com/Cheesey125/DIY-Multislope-ADCThis project was inspired by NNNI's project, you can easily find him or his youtube channel by looking him up, he's a great guy!
Using NNNI's simulation for the "free-wheeling" architecture, I thought to myself "Why can't this be implemented with multiple slopes", and by that, I meant the part where it is an automated system, but with no code or software whatsoever (unless you count the random number of 0's and 1's in the sequence generator). In fact, unless I am missing something, this basically eliminates the need for highly-optimized code.
I'm finding this hard to explain, so let me just walk you through it step by step:
1) The runup slope is triggered for a set time
2) The output of the integrator goes through a buffer and proceedingly to a network of opamps.
3) There are two parts to this "opamp network" a) the inverting amplifiers b) the noninverting amplifiers. the inverting amplifiers effectively signal when the net charge in the input of the integrator is positive, and vice versa for the noninverting ones.
4) feeding those opamps through some simple logic gates, and we're done with the part that I found hard to explain.
And just to clear any stupidness that I may have no written well, here's a picture of the simulated waveform and a link to the simulation (Fair warning: the simulation isn't exactly pretty)
https://tinyurl.com/y38vwhdmFinally, there are two more traditional parts (I know that everyone uses residue ADCs, but im not sure about the other thing)
Obviously, I have a poorly implemented residue adc, because I could not find a single true bipolar input one about 12 bits that wouldn't have costed a pretty penny!
Secondly, instead of relying on the speed and accuracy of the timing in GPIO pins, I resorted to an alternative for counting: Counter ics! Specifically, I found this (relatively) cheap 32 bit SPI counter IC: LS7366R..
That's about it for now, I'd appreciate any and all feedback, as I said, don't think I know what I'm doing! (I like to think that, but... there's probably some sort of Vsauce video on it, but it's like when you don't know what you don't know, but you are aware of the fact that you are unaware of something... you are unaware of)