Can the Si850x/1x AC current sensor measure DC current?
No. The Si850x/1x family is designed to measure AC current from 50KHz to 1.2 MHz. It cannot measure DC current. However, the Si8540 DC current sensor measure current from DC to 20KHz to a maximum of 20A. Datasheets are available at www.silabs.com.
How accurate is the on-chip temperature sensor? Is calibration necessary?
Many Silicon Laboratories C8051-series microcontrollers feature integrated temperature sensors. While the temperature sensor accuracy is adequate for most applications, some designs may require greater accuracy. This can be accomplished through calibration.
There are three sources of temperature sensor error:
1) Offset error (measured in mV) due to manufacturing variance in the temperature sensor and internal voltage reference,
2) Gain error (measured in mV/°C)due to manufacturing variance in the temperature sensor and internal voltage reference, and
3) Self-heating errors due to power dissipated on the C8051 die and on the PCB. This is essentially an offset error.
The offset and self-heating errors may be minimized using a one-point calibration. Each device should be individually calibrated as there will be some device-to-device variation. In this calibration, the device should be maintained at a known, constant temperature. The temperature should be measured and the difference between the ideal and actual determined. This difference is the offset which should be stored in non-volatile memory and subtracted from subsequent measurements.
Self-heating errors may be minimized by performing the offset calibration with the system in a typical configuration. This configuration should reflect the power dissipation of the system in normal use. Pay particular attention to the microcontroller clock speed and supply voltage as these will determine the die self-heating. Also pay attention to the system design, including supply voltage feeding the regulator, current drawn through the regulator, peripheral device states, and the enclosure.
Greater temperature measurement accuracy may be obtained by applying a two-point calibration. This corrects for both offset errors, as described above, and slope errors of the temperature sensor. Perform a two point calibration by measuring the sensor value with the system at two different known ambient temperatures. Assume a linear ADC code vs. temperature curve, and compute the gain and offset. Again, these values will be different for each individual device.
Accuracy may be predicted from offset and slope specifications in the datasheet. For example, the C8051F120 datasheet states:
- temperature sensor offset voltage = 776 mV ± 8.5mV - temperature sensor slope = 2.86 ±0.034mV/°C - internal ADC voltage reference: 2.43V +0.05 / -0.07 V
Using these values and the datasheet equation (Vtemp = slope*T + offset), two worst-case conditions may be evaluated:
1) Lower than actual temperature: temperature sensor slope and offset at low end of tolerance range, ADC reference voltage at high end.
2) Higher than actual temperature: temperature sensor slope and offset at high end of tolerance range, ADC reference voltage at high end.
Compounding the above errors, one can compute the expected difference between indicated (Tind) and actual (Tact) temperatures:
- without calibration: Tind = Tact -9.2 / + 12.2°C - using ideal (external) ADC voltage reference: Tind = Tact ± ~3.3°C - one point calibration at 25°C (int Vref): Tind = Tact - ~2.6°C - two point calibration: Tind = Tact ± ~0.2°C