I C Precision Altimeter - Farnell
I C Precision Altimeter - Farnell
I C Precision Altimeter - Farnell
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Flow chart for FIFO setup<br />
/* I2C Address is 0xC0 */<br />
SlaveAddressIIC = 0xC0<br />
/* Set INT to Active Low Open Drain */<br />
IIC_RegWrite(SlaveAddressIIC, 0x28, 0x11);<br />
/* Set to <strong>Altimeter</strong> with an OSR = 128 */<br />
IIC_RegWrite(SlaveAddressIIC, 0x26, 0xB8);<br />
/* Enable FIFO Interrupt */<br />
IIC_RegWrite(SlaveAddressIIC, 0x29, 0x40);<br />
/* Enable Data Flags in PT_DATA_CFG */<br />
IIC_RegWrite(SlaveAddressIIC, 0x13, 0x07);<br />
/* Set INT to Active Low Open Drain */<br />
IIC_RegWrite(SlaveAddressIIC, 0x28, 0x11);<br />
/* Set Active */<br />
IIC_RegWrite(SlaveAddressIIC, 0x26, 0xB9);<br />
/* Enable FIFO with a Watermark of 10 */<br />
IIC_RegWrite(SlaveAddressIIC, 0x0F, 0x4A);<br />
No<br />
Check for interrupt<br />
on pin INT2<br />
Yes<br />
/* Read INT_SOURCE */<br />
INT_S = IIC_RegRead(SlaveAddressIIC, 0x12);<br />
Service interrupt<br />
and clear<br />
No<br />
/* Is SRC_FIFO Set */<br />
(INT_S & 0x40) == TRUE<br />
/* Read FIFO status, this clears the INT */<br />
F_S = IIC_RegRead(SlaveAddressIIC, 0x0D);<br />
No<br />
/* Is F_WMRK_FLAG Set */<br />
(F_S & 0x40) == TRUE<br />
Yes<br />
/* Dump FIFO with a multi byte I2C read */<br />
IIC_RegReadN(SlaveAddressIIC, 0x01, 32, &fifo_data[0].Sample.BT.b_msb);<br />
Figure 6. FIFO Setup<br />
MPL3115A2<br />
Sensors<br />
Freescale Semiconductor, Inc. 13