This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS1248: System gain calibration is off

Part Number: ADS1248

Hi, I've been trying to get the calibration commands on the ADS1248 to work, but the System Gain Calibration isn't working as I'd expect. To calibrate it I'm configuring MUX1 to 0x22 and ordering the calibration, to ensure that I don't get the timing wrong I am using the dry pins to know when I issue the next command. I am sending 2 text files with the timing and values sent and received, one is commented for convenience and the other isn't.

To perform the SYS. Gain Cal. I'm shorting the Analog inputs before trying to calibrate. I adjusted the internal reference to 2.047 mv and set the gain to 8 and sent the SYS Gain Cal. command. After the calibration. The problem is after the calibration the value of the full-scale register is for example E070D6, before calibrating it's 400140. If I follow the equation 17 on page 39 I find that FSC/400000h is 3 which doesn't make sense with table 16, page 40.

Time [s],Packet ID,MOSI,MISO

Set up initial setup
1.977777000000000,0,0x06,0x7F
1.978803000000000,0,0x16,0xFF
2.188850000000000,0,0x42,0xFF
2.188867000000000,0,0x01,0x00
2.188884000000000,0,0x20,0x00
2.188901000000000,0,0x20,0x00
2.188917000000000,0,0x40,0x00
2.188934000000000,0,0x00,0x00
2.188951000000000,0,0x01,0x00
2.188968000000000,0,0x4A,0x00
2.188985000000000,0,0x00,0x00
2.189002000000000,0,0x06,0x00
2.189019000000000,0,0x4B,0x00
2.189036000000000,0,0x00,0x00
2.189053000000000,0,0xC0,0x00

Pre-Calibration FullScale and Offset register values
Read Offset register 2
2.191224000000000,1,0x26,0x00
2.191241000000000,1,0x00,0x00
2.191258000000000,1,0xFF,0x00
Read Offset register 1
2.192306000000000,2,0x25,0x00
2.192323000000000,2,0x00,0x00
2.192340000000000,2,0xFF,0x00
Read Offset register 0
2.193389000000000,3,0x24,0x00
2.193406000000000,3,0x00,0x00
2.193423000000000,3,0xFF,0x00
Read FullScale Register 2
2.194662000000000,4,0x29,0x00
2.194679000000000,4,0x00,0x00
2.194696000000000,4,0xFF,0x40
Read FullScale Register 1
2.195736000000000,5,0x28,0x00
2.195753000000000,5,0x00,0x00
2.195770000000000,5,0xFF,0x06
Read FullScale Register 0
2.196811000000000,6,0x27,0x00
2.196828000000000,6,0x00,0x00
2.196845000000000,6,0xFF,0xC0

Start Self Offset Callibration routine
Set MUX1
2.198294000000000,7,0x42,0x00
2.198311000000000,7,0x00,0x00
2.198327000000000,7,0x21,0x00
Order Self Offset Calibration
2.398015000000000,8,0x62,0x00
Return Mux1 to Pre Calibration settings
5.777140000000000,9,0x42,0x00
5.777157000000000,9,0x00,0x00
5.777174000000000,9,0x20,0x00

Start System Offset Calibration routine
Set MUX1
5.977887000000000,10,0x42,0x00
5.977904000000000,10,0x00,0x00
5.977921000000000,10,0x31,0x00
Set Idac1
6.178625000000000,11,0x4B,0x00
6.178641000000000,11,0x00,0x00
6.178658000000000,11,0xC0,0x00
Order System Offset Calibration
6.377284000000000,12,0x60,0x00
Return Mux1 to Pre Calibration settings
9.756449999999999,13,0x42,0x00
9.756467000000001,13,0x00,0x00
9.756484000000000,13,0x20,0x00
Return IDAC1 to Pre Calibration settings
9.957200000000000,14,0x4B,0x00
9.957217000000000,14,0x00,0x00
9.957234000000000,14,0xC0,0x00

Start System Gain calibration routine
Set MUX1
10.155856999999999,15,0x42,0x00
10.155874000000001,15,0x00,0x00
10.155891000000000,15,0x22,0x00
Order System Gain Calibration
10.355587000000000,16,0x61,0x00
Return MUX1 to Pre Calibration Settings
13.734788000000000,17,0x42,0x00
13.734805000000000,17,0x00,0x00
13.734821999999999,17,0x20,0x00

Pos-Calibration FullScale and Offset register values
Read Offset register 2
13.935656000000000,18,0x26,0x00
13.935673000000000,18,0x00,0x00
13.935689999999999,18,0xFF,0x00
Read Offset register 1
13.936738999999999,19,0x25,0x00
13.936756000000001,19,0x00,0x00
13.936773000000001,19,0xFF,0x00
Read Offset register 0
13.937813000000000,20,0x24,0x00
13.937830000000000,20,0x00,0x00
13.937847000000000,20,0xFF,0x02
Read FullScale Register 2
13.939092000000000,21,0x29,0x00
13.939109000000000,21,0x00,0x00
13.939126000000000,21,0xFF,0xBC
Read FullScale Register 1
13.940166000000000,22,0x2C,0x00
13.940182999999999,22,0x00,0x00
13.940200000000001,22,0xFF,0x1C
Read FullScale Register 0
13.941236999999999,,0x27,0x00
13.941254000000001,,0x00,0x00
13.941271000000000,,0xFF,0x6D

Time [s],Packet ID,MOSI,MISO
1.977777000000000,0,0x06,0x7F
1.978803000000000,0,0x16,0xFF
2.188850000000000,0,0x42,0xFF
2.188867000000000,0,0x01,0x00
2.188884000000000,0,0x20,0x00
2.188901000000000,0,0x20,0x00
2.188917000000000,0,0x40,0x00
2.188934000000000,0,0x00,0x00
2.188951000000000,0,0x01,0x00
2.188968000000000,0,0x4A,0x00
2.188985000000000,0,0x00,0x00
2.189002000000000,0,0x06,0x00
2.189019000000000,0,0x4B,0x00
2.189036000000000,0,0x00,0x00
2.189053000000000,0,0xC0,0x00
2.191224000000000,1,0x26,0x00
2.191241000000000,1,0x00,0x00
2.191258000000000,1,0xFF,0x00
2.192306000000000,2,0x25,0x00
2.192323000000000,2,0x00,0x00
2.192340000000000,2,0xFF,0x00
2.193389000000000,3,0x24,0x00
2.193406000000000,3,0x00,0x00
2.193423000000000,3,0xFF,0x00
2.194662000000000,4,0x29,0x00
2.194679000000000,4,0x00,0x00
2.194696000000000,4,0xFF,0x40
2.195736000000000,5,0x28,0x00
2.195753000000000,5,0x00,0x00
2.195770000000000,5,0xFF,0x06
2.196811000000000,6,0x27,0x00
2.196828000000000,6,0x00,0x00
2.196845000000000,6,0xFF,0xC0
2.198294000000000,7,0x42,0x00
2.198311000000000,7,0x00,0x00
2.198327000000000,7,0x21,0x00
2.398015000000000,8,0x62,0x00
5.777140000000000,9,0x42,0x00
5.777157000000000,9,0x00,0x00
5.777174000000000,9,0x20,0x00
5.977887000000000,10,0x42,0x00
5.977904000000000,10,0x00,0x00
5.977921000000000,10,0x31,0x00
6.178625000000000,11,0x4B,0x00
6.178641000000000,11,0x00,0x00
6.178658000000000,11,0xC0,0x00
6.377284000000000,12,0x60,0x00
9.756449999999999,13,0x42,0x00
9.756467000000001,13,0x00,0x00
9.756484000000000,13,0x20,0x00
9.957200000000000,14,0x4B,0x00
9.957217000000000,14,0x00,0x00
9.957234000000000,14,0xC0,0x00
10.155856999999999,15,0x42,0x00
10.155874000000001,15,0x00,0x00
10.155891000000000,15,0x22,0x00
10.355587000000000,16,0x61,0x00
13.734788000000000,17,0x42,0x00
13.734805000000000,17,0x00,0x00
13.734821999999999,17,0x20,0x00
13.935656000000000,18,0x26,0x00
13.935673000000000,18,0x00,0x00
13.935689999999999,18,0xFF,0x00
13.936738999999999,19,0x25,0x00
13.936756000000001,19,0x00,0x00
13.936773000000001,19,0xFF,0x00
13.937813000000000,20,0x24,0x00
13.937830000000000,20,0x00,0x00
13.937847000000000,20,0xFF,0x02
13.939092000000000,21,0x29,0x00
13.939109000000000,21,0x00,0x00
13.939126000000000,21,0xFF,0xBC
13.940166000000000,22,0x2C,0x00
13.940182999999999,22,0x00,0x00
13.940200000000001,22,0xFF,0x1C
13.941236999999999,,0x27,0x00
13.941254000000001,,0x00,0x00
13.941271000000000,,0xFF,0x6D

  • Daniel,


    Generally for the ADS1248, I wouldn't use the gain calibration command. The gain is factory trimmed for each gain, and you can get very good gain error results without any gain calibration. I would only short the inputs together at a supply midpoint and run a self offset calibration.

    If you do want to run a self offset calibration, it will be difficult to do it in your configuration. Normally, you would put in an input that would give you a full scale ADC output and the calibration would scale that to get 7FFFFFh. In PGA=1, this would be putting in the VREF as an input. In a different gain, you would need to put in what you think is the full scale voltage. Even in PGA=1, the reference voltage needs to be in the input range of the PGA, which means that the reference voltage's VREFCOM cannot be at AVSS (GND for a unipolar supply).

    Regardless, my advice would be to not run a gain calibration, and only do a self offset calibration.


    Joseph Wu