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.

2803x Calibration Data

In the F2803x data sheets, there are two areas in the memory map titled "Calibration Data".

The data sheet also states:

I am trying to use the OscComp example, and they all reference memory locations in 0x3D7EXX range.

When I try to run the OscComp example, I get really strange values, which makes me think I should be accessing the calibration data from 0x3D7CXX range.

I thought maybe it's just mirrored memory, but when I check the data in each memory location, they are different.

Is there a document that has exactly which calibration data corresponds to which memory location?

  • I just noticed the data sheet says 0x3D7CXX is calibration routines, and not data.  So if that's the case, then I should be loading from 0x3D7EXX range.

    In the OscComp example,

    I am getting a very large number for compOscFineTrim, something like -2506 which considering the bounds of -31 to +31, seems way off.

    My temperature sensor reading is about 1800, which doesn't seem far off from the example in

    FYI, I am using F28035 on custom PCB.  Having the same issue with F28035 control card though.

  • Very interesting ... Why are these all equal to 0x28A9????? They should be different.

    It looks like they are all off by 1 i.e., Osc1FineTrimSlope should be at 0x3D7E91, Osc1FineTrimOffset at 0x3D7E94, etc ....

    Anyone have any idea what's going on here???

  • Fulano,

     That calibration content looks correct to me.  As you pointed out the routine or function begins at 0x3D7E90, 0x3D7E93, 0x3D7E96, etc. so it makes sense for those values to be static across devices.  The calibration data is the next word, i.e. 0x3D7E91, 0x3D7E94, 0x3D7E97, etc. and the values you have looks very reasonable to me.

     1800 (decimal) also seems reasonable for a room temp reading. Just estimating off the top, I think your OSC1 trim should be around 17 or 18 based on these numbers.  Can you step through the code and see exactly where it is going wrong?  You may have to separate the compOscFineTrim line into multiple lines of code to simplify the debug.

    Regards,

    Joe

  • Hi Joe,
    Thanks for your response. I was using the OscComp example and I had copied the inner part of the Osc1Comp function, without taking into account that sensorSample was int16.
    It turns out sensorSample - getRefTempOffset() was returning a positive number because sensorSample was a Uint16 ADCRESULT which lead to the crazy results. All I had to do was cast my sensorSample to int16 and it's now working correctly.

    Thank you very much!
  • Glad to hear it and thank you for letting me know you got it working!