I'm designing a mobile device that uses a Li-Ion battery. It is required to indicate to the user the State-of-Charge of the battery, similar to how it's done in smartphones.
At first I considered simply measuring the voltage of the battery. It doesn't decrease linearly with the SoC, so I figured I'd use a look-up-table in order to convert the voltage to the correct SoC. This approach obviously fails when the device is being charged: an external voltage is forced on the battery, and so there's no point in measuring its voltage. After reading several articles on-line, I figured that Coloumb counting has to be the way they do it in smartphones, since charging doesn't interfere with it, and it doesn't require sensing of internal chemical properties of the battery.
My question is: how is it usually realized in smartphones? Do they use a serial current sensing resistor, whose voltage is amplified and read by an A/D? Does the smartphone processor do the integration, calibration and other calculation, or is there a specialized IC for that purpose? If there was, I'd love to use it!