CPU Ammeter, v.3
1 Attachment(s)
To all three or four people who care about the quest to measure CPU power usage, I finished building the new and improved ammeter.
It features 0.02% precision resistors, a gigantic improvement over the old 1% tolerance. It has on board a capacitive charge-pump, to eliminate the necessity of tapping into the -12 V line. Analog isolation has been replaced with superior digital isolation. Op-amp input offset voltage has been reduce 40 fold. Yeeha! Sadly, I messed up a bit on the assembly, and killed my ADC by feeding -9.2 volts into a pin rated for -0.3 to 6.0 volts. It really sucks to leave off one resistor. :mad: Soooo, no exiting results or pretty graphs until I get a new one. In mean time... Damn I make a nice circuit board! |
Re: CPU Ammeter, v.3
Quote:
Sorry to hear about the ADC. Looking forward to seeing the results. |
I use the toner mask method. After drawing the relevant artwork on computer, one laser prints a mirror image of the circuit. There's fancy transfer paper available, but I use semi-gloss photo paper. Iron the paper onto a copper clad board, toss in water. After a couple hours the paper can be peeled away, leaving the toner on the board (stubborn paper remnants can be persuaded with a soft tooth brush). Then, all the board needs is a dip in ammonium persulfate - any copper not covered by toner is etched away.
20 mil tracks/spacings come out really well; things get tough at 10 mil. Using the transfer paper, 6 mil is possible. Some preliminary tests: shorting all the inputs together and applying a voltage is giving me a final output of ~0.8 mV per input volt. |
Groth
you guys are doing fine work, nice to watch but why post this in "geek stuff" ? had Since87 not posted I'd never have seen it |
Maybe there should be a separate forum
"Shhh don't disturb the 3 or 4 people in there and DON'T touch anything" Or something. Very nice work Groth. You are fast turning into my hero. |
Quote:
Where'd you find the resistors? I wouldn't expect to be able to find 0.02% resistors of the right values without 8+ week lead time and a 2K piece minimum order. |
Quote:
Quote:
One of the difference amps seems to be the source of most of the common mode error, plus it has a slightly lower gain than the other two. Surgery. Anyone know a good/easy way to remove flux? Specifically, flux that has flowed underneath a 14 pin SOIC. I think some output error is flux leakage. |
Quote:
Quote:
PM me with your address if you want me to send you a can of 1676. |
another vote for WACKO
spot on, new forum please |
This is a sweet project man, very cool.
|
I'm much too impatient, so I removed my flux with automotive brake parts cleaner. It cleaned really well, not only removing the flux, but the writing on the ICs too.
Sadly, the flux leakage seems to have been in my favor - things are slightly worse now. In other news, two resistors have suffered soldering induced drift and are being replaced. WACKO forever! |
This is pretty good stuff. What do you use as a display to read the values?
|
Quote:
It does the whole voltage, fan RPM, and temperature monitoring thing, but I'm just using the voltage inputs here. Most importantly (since I have zero programming skill), it's recognized by Motherboard Monitor. Once everything is set up, MBM will display/log the CPU current (with ~0.2 amp resolution). With any luck, we should able to characterize the thermal power of a given AthXP core running specified software at a various Vcore, FSB, and multipliers. 'Twill be the end of silly power estimates. Edit: grammar |
Quote:
|
Quote:
|
Quote:
Access to the North Bridge is probably the only thing that can throw the die dissipation measurement off significantly. An ideal load program would operate in the CPU's internal cache only. Considering how little the die temperature fluctuates when running CPU Burn, and how clearly you can see the impact of cache size with Prime95, I think it's reasonable to believe that CPU Burn is not doing much North Bridge access. Maybe someone should contact the author(s) of CPU Burn and see what they say about this. |
Quote:
Then there's 120 or so tri-state bidirectional lines. These are pulled up by external resistors to a reference voltage, nominally one half Vcore. When the CPU puts data on these line, it pulls them up to Vcore or down to ground through FETs that can source/sink a maximum of 6 mA. Absolute worst case (all lines continuously 1, or continuously 0), the CPU will source or sink no more than ~720 mA at a voltage of Vcore/2 -- less than three quarters of a Watt in or out. In reality, there will be a mix of 1's and 0's; the net will be tens of milli-Watts. Not a significant issue. |
1 Attachment(s)
After a few days of playing, I've discovered a couple things.
My board layout is inadequate. I arranged the various components with more thought toward ease of etching and assembly. As it is, the various resistors that control gain and offset for a given amp are not grouped together. With even a small thermal gradient, I get changes in performance. Trimmers are a necessity. I had thought that using precision amps and resistors would eliminate the need for pots. Nope, difference amps are way too sensitive, and hand soldering is way too sloppy. Murphy's law reprised: any re-work will just make things worse. So, how bad is it? To test, I hooked up the CPU-ammeter to a spare ATX supply. Two case fans provided 12 V load and kept the thermal problems to a minimum. A (black-light) inverter powered from the 5 V line provided switching noise. A collection of pots and resistors allowed the application of variable voltage to the ammeter's inputs. With all three pairs of inputs shorted together, voltage was applied. Readings were taken at the output of each difference amp channel, and at the final amplified summed output. Error amounts to 1.2 mV + 2.2 mV/V. In our region of interest, output error runs 5 to 6 mV - roughly 0.15% percent of full scale output, or about 40% of the least-significant-bit value of the ADC. Thanks to it's linear nature, it should be possible to eliminate most of this error in software. |
With the common mode and input offset quantified, I moved to gain. Each channel was tested by applying 2 volts to the non-inverting input and from 2.00 to 2.06 V to the inverting input, while the inputs of the other channels were grounded Measurements were again taken at the output of the difference amp and at the final output.
Visually, it's boringly linear. Statistically, well, no fireworks here either. Correcting for the previously determined common-mode/input-offset gave the following: Code:
Gain Non-linearity |
Tell me again where you tap into the mobo?
|
Quote:
Current sense shunts (resistors of a few milliOhms) need to be placed in series with the CPU voltage regulator's inductors. You'll need to unsolder the inductors, and solder the shunts to them, with sense wires coming off each end of each shunt. Depending on the available space, you may need to wind new wire around the torroidal cores to get long enough leads. Solder the combined units back in, with the shunt on the CPU of the coil. |
Groth,
Could you post a schematic of the analog section of what you have now? (Reference designators for components would be handy for discussion purposes.) It looks like the summing amplifier has an awfully high offset for some reason. |
Quote:
Page 12 of the opa227 pdf, input bias current cancellation - they specifically say not to use an external cancellation resistor. I did and it does make a difference. The power of re-reading. Also, I do need to switch to a ground plane on the back of the board. The trace feeding the former external cancellation resistor is very thin and shared with one of the diff-amps. Ground float perhaps? Grounding through vias should also allow tightening up the layout. I'm still using three difference amps feeding into a summing amp. I'll draw a schematic when I wake up this evening. |
Quote:
A bit extreme maybe, but you get the idea. The safest way to lay this out, is with every ground point going back to a single node. This avoids currents that you don't anticipate affecting things they shouldn't. Ground planes are good for high frequency digital stuff, but they can cause problems with high accuracy analog designs. Using the back side of the board, to hook up a 'star' of ground nets to a central node, might be a good way to maintain accuracy while clearing up congestion. |
Star ground, I think I've run into that concept before. I think it's one of those thing that everyone believes doesn't apply to them until too late. Actually, I'm not terrible worried by a couple of mV, but, when in bedlam...
Well, the ground thing's a bit of drag. I had hoped I could avoid needing artwork for the back, hence groundplane. It appears I've reached the end of using Paint as my layout tool; I'll have to slog my way through the Vutrax tutorials. I've pulled the offending current cancellation resistor and added jumpers to give individual grounds. Qualitatively, it looks to be an improvement; numbers to be announced. In other developments, I've picked up a 150 W, 5 Ohm nichrome variable resistor. I'm hoping to better measure my shunt resistors with the aid of some large currents. The techspray works very well. It even cleaned off the bits of salty residue that the isopropanol and xylene left. Cool. Thank you kindly, Since. |
All times are GMT -5. The time now is 06:53 PM. |
Powered by vBulletin® Version 3.7.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
(C) 2005 ProCooling.com If we in some way offend you, insult you or your people, screw your mom, beat up your dad, or poop on your porch... we're sorry... we were probably really drunk... Oh and dont steal our content bitches! Don't give us a reason to pee in your open car window this summer...