I find Gordon's article on U8 invaluable. Here are some valuable excerpts.
U8 A1 & A4 Total System Current
Two OpAmps serve this signal conditioning requirement. One amp, (A4), samples the tiny voltages that develop across the master current shunt resistance, a resistance of only 0.05 ohms, NOM. The second OpAmp (A1) adds a relatively large voltage offset to the non-inverting input of A4 (to prevent A4's OUTput from getting too negative).
In Table-III we see that voltage data in Rows 1 and 5 are identical (to the precision reported) and that is good if the magnitude is correct. We can't know whether "1.24V" is correct simply by looking at tabled values. We must know more about the voltage divider that reduces some unknown bus voltage to an appropriate level. Thus, a little extra work was done to give us confidence in the "1.24" number. I began tracing from U8-3, and quickly located both divider resistors, R209 & R218, nearby to U8 (they are near U8's pins 1, 2, & 3 package corner). I then knew where the supply end of the upper resistor, (R218), was located; so it was just a matter of re-powering the main_PCA and measuring that supply voltage. Voila! It is the +5VREG power-form. Therefore, one fourth of five volts is the nominal input voltage to U8-3(IN(+)). Thus, "1.24 volts" is not bad.
Rows 4 & 8 in that table show us how A4's OUTput changes between battery powered operation and charging mode's high-rate charging period. These are the voltages shown in column-D cells, Rows 4 & 8. We can't learn much by trying to make sense of the values in those two cells. Possibly, the easiest way to sort out whether they are correct is to obtain SCI data from the robot while it is powered by a battery that has an ammeter between it and the Roomba. I did not take time to do that work, so I am limited to commenting on the magnitudes of system currents passing through the shunt and determined by using my DVM to measure dV across the shunt. In the battery-powered On state, actual current was computed as I_batPwr ~= +0.0044 / 0.05 = 0.09 A ( value that, from experience is known to be reasonable); and while PSU-powered and supplying high-rate (I_chrg > 1.25A) charging current the actual current was computed to be: I_hiRate ~= 0.056 / 0.05 = 1.3A. A good value.
The latter calculations basically say the master shunt is OK, and nothing about the (row,col) 4,D, 8,D values. Once again, the SCI connection may be the most satisfying tactic to check those data.
Battery Teeminal Voltage Monitoring
n this table we see that voltage data in Rows 2 and 6 are very much the same, but there was an appropriate increase in voltage after charging mode began. Good! We can't know whether those values are correct simply by looking at tabled values. We must know more about the voltage divider that scales VBAT so the MCU can process a sample. Thus, a little extra work was also done in that regard. Now that I was able to begin tracing from U8-5, both divider resistors, R207 & R208, were quickly found nearby U8 (they are near U8's pin-7 package corner). Easier than that was to divide the U8-5 voltage by a measured VBAT value to learn that about 17.4% of VBAT is tapped for the MCU's sample.
Battery Temperature Tracking
In this table the OUTput of A3 remains the same when Roomba is either battery powered or PSU powered. In this test case the explanation is seen in the Row-7 comment, namely, the 10k variable resistance (representing the battery's thermistor) was not changed from its 10k ohms setting after changing power sources. Row-3's comment points out that temperature sensing is active when battery powered, even though Roomba makes no use of those data. The signal on U8-8 (A3-OUT) dropped to 1.0 volts as the variable resistance was reduced to 2k ohms (representing a very hot battery).
Similarly, after completing the charging-mode measurements, I exited the high-rate charging portion of charging mode by simulating an extremely hot battery--the resistance of 1600 ohms was slowly approached, V_pin8 was reading 0.83 volts, and the MCU+F/W halted high-rate charging. Normally, this would be the start of a cooling period.
To obtain more detail about this thermistor data handling circuit visit this thread.
If you care to translate dummy thermistor resistance into thermistor-temperature visit this thread.
Read the full article here:
http://www.robotreviews.com/chat/viewtopic.php?f=1&t=17151