Hello,
I am using a LMP90100 to take some current and voltage readings. The problem is that my amperage reading is not stable enough. At 5A and above we would like a tolerance of .2% and below 5A we would like to be at +/- 10mA. One of the methods I was looking into to improve the stability was to change the Output Data Rate(ODR) from 212SPS to ~13SPS. According to the data sheet this should have resulted in 50Hz/6-Hz noise rejection. However, when I changed the ODR the single was nosier than before. I have included a sample of my initialization code below.
void LMPInit(void){ unsigned long calreg[3]; unsigned int ch_scan_reg_config; // Channel Scan Config unsigned int ch0_inputcn_config; // CH0 Input Control Config unsigned int ch1_inputcn_config; // CH1 Input Control Config unsigned int ch0_configuration; unsigned int ch1_configuration; // Set up config words ch_scan_reg_config = (CH_SCAN_SEL_MODE3 | LAST_CH_CH1 | FIRST_CH_CH0); ch0_inputcn_config = (BURNOUT_EN | VREF_SEL_1 | VINP_VIN0 | VINN_VIN1); ch1_inputcn_config = (BURNOUT_EN | VREF_SEL_1 | VINP_VIN2 | VINN_VIN3); ch0_configuration = (ODR_SEL_13SPS | GAIN_SEL1 | BUFF_EN); ch1_configuration = (ODR_SEL_13SPS | GAIN_SEL1 | BUFF_EN); // Setup LMP90100 WriteLMP(RESETCN_REG, REGRST_CMD, SIZE_1B); WriteLMP(CH_SCAN_REG, ch_scan_reg_config, SIZE_1B); WriteLMP(CH0_INPUTCN, ch0_inputcn_config, SIZE_1B); WriteLMP(CH0_CONFIG, ch0_configuration, SIZE_1B); WriteLMP(CH1_INPUTCN, ch1_inputcn_config, SIZE_1B); WriteLMP(CH1_CONFIG, ch1_configuration, SIZE_1B); }// LMP90100 Initialization
Variables that are all caps are constants from the data sheet. If you need specific values of the constants or any more information please ask.
Thanks in advance,
John Barksdale