Reading battery voltage via frequency
I've come to stackexchange to ask if anyone knows of a better way, such that I could achieve my original goals of a linear map of voltages to frequencies? (keeping in mind the constraints)


IMHO, the easiest way to achieve your goal is to employ an 8-bit PIC micro-controller.

The PIC16(F)XXX parts work with 5V power supply so you do not even need to scale down the voltage input.  The effective ADC resolution is ~10 bits, which gives you about 5 mV resolution or about 120 distinct frequencies (from 3,000 to 3,600 mV).

You can use the ADC to measure the battery voltage and use the PIC's its internal 32 MHz (some have 16 MHz) clock to generate a square-wave signal at the frequency of your choosing.  The waveform signal can be further filtered (standard single-pole LPF RC) to mainly pass through the fundamental component only.

This solution is highly configurable and very cost effective (&lt; $1).