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.

[FAQ] PGA900: Questions Regarding the EEPROM used on the PGA900, PGA300, PGA302 and PGA305 Devices

Part Number: PGA900

Tool/software:

I have the following questions:

  • What is the EEPROM used for on the PGA devices? 
  • Can undesignated bytes be used for other purposes?
  • What is the process of storing the coefficients in EEPROM?
  • I have negative coefficient values, so how are they represented?
  • I read about normalizing the coefficients.  What does this mean and how do I do it?

Thanks!

  • What is the EEPROM used for on the PGA devices? 

    The EEPROM consists of 128 bytes of usable EEPROM space.  The primary locations used are as given in the device datasheet. Most of the EEPROM space is used for storing compensation coefficients.  Other bytes may be designated as DAC clamp values, digital offset and gain, as well as serial number information.  The last byte is the computed CRC value for the space, and this value must match with the actual CRC value of the EEPROM.  If the contents of the EEPROM have changed, then the EEPROM must also have the CRC byte adjusted accordingly.

    Can undesignated bytes be used for other purposes?

    If the space has a designated purpose, then you should only use the EEPROM space for the designated purpose.  If the EEPROM space is used for another purpose, then it must be undesignated free bytes.

    What is the process of storing the coefficients in EEPROM?

    The coefficients must first be multiplied by the normalization value and then be stored as integer values to the EEPROM in binary 2’s complement form.  After writing the values to EEPROM, the EEPROM contents must be calculated to the CRC value and the CRC stored to the last byte of the EEPROM.

    I have negative coefficient values, so how are they represented?

    The coefficients are normalized to values between +/-2.  The coefficients are then stored as normalized values rounded to integers and can be represented in binary 2’s complement form.

    I read about normalizing the coefficients.  What does this mean and how do I do it?

    The calibration data are used to determine the coefficient values that range between +/-2.  As the ADC data can be much larger, the determination of the coefficients are done by dividing the ADC and DAC values by the normalization constant of 2^14 for 16-bit values and 2^22 for 24-bit conversion values.  This results in a floating-point value when the linear regression routine is run.  To reverse the process for storing to EEPROM as integers, the coefficients are then made into integers by rounding the result of the multiplication of the coefficient times the appropriate normalization constant.