How can I verifiy the trimming coefficients stored in the NVM of the BMP390 sensor? I would expect to find a checksum somewhere in the NVM section and a corresponding checksum formula in order to be able to verify the values. This is a memory dump of the trimming coefficients received from the BMP390 (Register addresses: 0x31 - 0x45):
Thanks for your inquiry.
BMP390 doesn't have checksum to verify if the read from NVM for the coefficient parameters are correct or not. Basically you could run self-test at https://www.bosch-sensortec.com/media/boschsensortec/downloads/application_notes_1/bst-mps-an006.pdf. If the self-test passes, then it means the parameters from NVM are correct. Otherwise, the self-test will fail.
BMP390 API source code can be found at https://github.com/BoschSensortec/BMP3-Sensor-API.
Many thanks for your reply!
The library Adafruit_BMP3XX implements a crc check of the trimming coefficients using the address 0x30, where a crc8 is stored. I've checked it on my BMP390-application and it is correct. The address 0x30 consists of a crc8 which ca be calculated using the 0x1D polynomial. Why is this not part of the official documentation?
BMP390 API code is available online at Github. There is a bmp3_selftest.c file that has CRC check function for NVM parameters at https://github.com/BoschSensortec/BMP3-Sensor-API/blob/master/self-test/bmp3_selftest.c.