It's a great song by the way.
As discussed in my previous project log, I was able to remove the ADC and DAC otherwise needed to perform the MPPT algorithm, vastly simplifying, if not outright eliminating the need for a microcontroller. The motivation is simple: save cost.
But there's a caveat to this plan of mine; I still need a timing circuit to briefly turn the RT8299 buck regulator off to sample the open current solar panel voltage (Voc). This is where things get interesting.
As shown by my latest breadboard, I've tried a variety of options. I'll discuss the two most interesting below.
My first inclination was to replace the MCU with the good 'ole trusty 555 timer. These ICs have been around since the dawn of semiconductor (mild exaggeration on my part), and today sells well over a billion units a year (not an exaggeration on my part). If you'd like to read more on it's fascinating history, I'd recommend this great oral interview with the inventor.
Anyways, with the 555 timer, it's relatively easy to generate a duty cycle greater than 90%. High duty cycles allows the RT8299 stay enabled and regulating the input solar voltage for as long as possible while briefly turning off to have our peak detector circuit sample for Voc voltage.
I won't go into too much details, but it turns out you can easily generate high duty cycles by using a diode to bypass the resistor between the discharge and trigger pins of the timer (circuit borrowed from this site).
Not too surprisingly, this worked, and after hooking it up to the RT8299, the latter successfully regulated the solar panel voltage.
Mission accomplished. Well, sort of.
Yes, 555 timers are cheap, but the cheap ones ain't so great. At $0.10 each for the NA555DRG4, we have a 555 timer that has:
- VCC range: 4.5V-16V
- Quiescent current: 10mA @ 16V
The voltage range isn't very wide, and the quiescent current is fairly large. Not ideal.
First, let's fix the voltage range issue. The best range I can find is 2V to 18V. It's doesn't completely encompass the 24V max supported by the RT8299, but at 18V I'm willing to compromise. For that range, we're looking at the ICM7555IBAZ-T. The quiescent of 60uA is *far* superior, but the part cost $0.27 alone, and after adding all the surrounding passive components, we're looking at $0.38, more expensive than microchip's cheapest $0.31 microcontroller (PIC10F200), which could do the same job as the 555 timer.
This is where I try to be clever (clever-er?). I remembered many moons ago learning about the 4000 series and their magical ability to operate at high voltages. Enter the CD14538: a dual mono-stable multivibrator. With a VCC range of 3V-20V (not a typo, look at the datasheet), a quiescent current of 0.08uA, and a price tag of $0.14, this deserved some attention.
Being that they are mono-stable multivibrators, I had to devise a way to retrigger each multivibrator one after the other. The first multivibrator had a long period to simulate the long duty cycle, and the second had the short period to turn the RT8299 off.
After some tweaking, and realizing that the maximum allowable period supported by the IC is 10seconds, I got it to work. Rough schematic looks like this:
The astute observer will notice just how similar this is in implementation to the internals of a 555 timer.
As you could imagine, while a fun exercise in playing with 1970's technology, the large number of external passive add up to an impressive cost: about $0.17. Add this to the $0.14 for the IC itself, and you find that the total cost of this solution is $0.31, the same-ish price as the 555 timer or the PIC10F200. Hardly making progress here.
I'm very close to eliminating the need for a microcontroller, but this timing circuit requirement sure is getting in my way. More to come.