ICM20648 BAC packet timestamp interpretation

By rameshsacrasyscom , 7 January 2020

Hi All,

We are operating ICM 20648 in DMP FIFO Watermark interrupt mode which is set at 800 bytes. The sensor is interfaced via I2C running at 100KHz with the application processor. We have ported the sensor driver from eMD-SmartMotion_ICM20648_1.0.5.zip to our platform and works similar to DK-206478 Development Kit.

We have enabled BAC sensor and pedometer to output to the DMP FIFO. We are trying to fetch the timestamp for the respective BAC events from the FIFO. In the application note document (Application Note - Programming Sequence for DMP HW Functions_ICM_20648.pdf), page 22, section "5.2.18 - Activity Recognition Data" tells us that the DMP cycle is stored as timestamp in the BAC Event data packet.

We simulated the TILT events to happen at approximately 10 second intervals and tried to print the timestamp to interpret it. Please find below the output log

[I] ----total_sample_count 8 header 0x08 header2 0x80
[I] ------ TIMESTAMP 181
[I] ------ BAC EVENT VALUE 6

[I] ----total_sample_count 7 header 0x08 header2 0x80
[I] ------ TIMESTAMP 1171
[I] ------ BAC EVENT VALUE 5

[I] ----total_sample_count 6 header 0x08 header2 0x80
[I] ------ TIMESTAMP 1261
[I] ------ BAC EVENT VALUE -5

[I] ----total_sample_count 5 header 0x08 header2 0x80
[I] ------ TIMESTAMP 1981
[I] ------ BAC EVENT VALUE 5

[I] ----total_sample_count 4 header 0x08 header2 0x80
[I] ------ TIMESTAMP 2071
[I] ------ BAC EVENT VALUE -5

[I] ----total_sample_count 3 header 0x08 header2 0x80
[I] ------ TIMESTAMP 2611
[I] ------ BAC EVENT VALUE 5

[I] ----total_sample_count 2 header 0x08 header2 0x80
[I] ------ TIMESTAMP 2701
[I] ------ BAC EVENT VALUE -5

[I] ----total_sample_count 1 header 0x08 header2 0x80
[I] ------ TIMESTAMP 3151
[I] ------ BAC EVENT VALUE 5

[I] ----total_sample_count 0 header 0x08 header2 0x80
[I] ------ TIMESTAMP 3241
[I] ------ BAC EVENT VALUE -5

We have three questions with regards to this test. Please find them below

1. How do we interpret this timestamp value?
2. What is the multiplier value that we have to multiply the timestamp with, in order to get the duration elapsed between events?
3. What is the value of DMP Cycle? How can we estimate it?

Please let us know if you require more information.

Thanks and Regards,
Ramesh M

phpbb Topic ID
38048