I am getting incorrect data from the MPL3115A2. I am triggering a single conversion by setting the OST bit in standby mode. Then I poll the OST bit until it gets cleared. Then I read the temperature and pressure registers. I am reading 15 deg C and around 32578 pascals. The RAW bit and the OS[2:0] bits are all set. The temperature should be around 27 degC while the pressure should be around 101325 pa. I am able to read the dev id register and I am getting 0xc4 as expected. I have an LM75B temp sensor, a light sensor (TSL4535), a serial eeprom and an CC2D33S (humidity sensor) on the same i2c bus. There is no address collision. Everything else is reporting valid data. I then verified that the temperature value reported by the MPL3115A2 increases when I directed hot air at the sensor.
I have attached a pic of the sensor node which has this MPL3115A2 on board. Could it be that the sensor got damaged during hand soldering ?
Hi Krishnan,
First, sorry for not responding sooner, I have been out of the office the last couple of days.
It would be helpful to see your complete source code or at least your initialization of the MPL3115A2 and both the pressure and temperature data conversion routines.
Did you try to use the device set in the continuous measurement mode with the RAW bit cleared as shown in my example code?
Could you please share here the values you are getting from output data registers 0x01 – 0x05 with the RAW bit set and then cleared?
As a side note, Jose’s first comment regarding the temperature sensor is true for the MPL115A only. The MPL3115A2 does have a factory calibrated temperature sensor that provides data to the user via OUT_T registers 0x04 – 0x05, as well as for internal compensation of the pressure sensor.
Regards,
Tomas
PS: If my answer helps to solve your question, please mark it as "Correct" or “Helpful”. Thank you.
I am having a similar problem. I cannot find in the datasheet what are the reflow temperature requirements. My temperature is within 5 degrees but the pressure is of by a factor of 2.6. Can you give me the reflow temperature requirments?
Thanks
Hi,
First let me do a comment about the temperature readings on the MPL32115A2: The “temperature sensor” embedded in the MPL115A2 is used for the pressure compensation of the pressure output more than to be used as an “ambient temperature sensor” so it is not recommended to use it that way.
The known fact is that the 25 deg C is supposed to be set at 472 ADC counts on the Tadc output from MPL3115A2.
It is a negative slope, such that it’s -5.35 ADC counts per a deg C. The transfer function is like
(Tadc – 605.75) / -5.35 = Temp
Unfortunately, the accuracy of the sensor is not specified and also unfortunately, we resent discovered that that the MPL3115A temperature sensor is not accurate, since this the temperature is taken from the ADC and, as mentioned, the real purpose of this temperature sensors is for internal use of the sensor, however, for my experience with this device, I can tell you that the temperature you read with the MPL3115A, will be always approximately 5C below the real temperature (which is not your case).
Now, about your case, it is hard to know if the device was damaged during the hand soldering, it seems like was, but I cannot assure it. My recommendation would be to replace the soldered MPL3115A2 with a new MPL3115A2 just to make sure if the sensor was damaged during the hand soldering process, if you see the same results with the new sensor, then I would need to review your schematics and configuration.
You might also find useful some example codes we have for the MPL3115A2 published on the Sensor community:
https://community.freescale.com/docs/DOC-95378
https://community.freescale.com/docs/DOC-95590
If you download the source code, you can find the I2C routines in the I2C.c file within the Sources folder.
I hope this helps.
Have a great day,
Jose Reyes
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Jose,
Thanks for the information but what about the pressure reading. I am getting the same readings from another board (with MPL3115A2 hand soldered).
Why is the pressure so off from the expected value ?
Thx
Krishnan
Hi Krishnan,
It is possible that the error on the pressure that you are seen is related to an offset error, this error can be calibrated by the user as mentioned in section 7.18 of the MPL3115A2 datasheet.
The 2’s complement offset correction registers values are used to trim the temperature, altitude and pressure offsets that might occur over the life of the product or in your case, probably caused by the hand soldering process.
Have a great day,
Jose Reyes
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------