Difference between revisions of "Iis2dh"
m |
m |
||
Line 7: | Line 7: | ||
* https://github.com/STMicroelectronics/STMems_Standard_C_drivers/tree/master/iis2dh_STdC/examples | * https://github.com/STMicroelectronics/STMems_Standard_C_drivers/tree/master/iis2dh_STdC/examples | ||
+ | |||
+ | Symbols in the polling code example from STMicroelectronic/iis2dh repo are defined in a sub-part of sdk-nrf modules/hal/ project space: | ||
+ | <pre> | ||
+ | guest@ubuntu-vm:~/embedded/z3-on-var/modules/hal/st$ grep -nr IIS2DH_2g ./* | ||
+ | ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.h:742: IIS2DH_2g = 0, | ||
+ | ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.c:636: case IIS2DH_2g: | ||
+ | ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.c:637: *val = IIS2DH_2g; | ||
+ | ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.c:649: *val = IIS2DH_2g; | ||
+ | |||
+ | guest@ubuntu-vm:~/embedded/z3-on-var/modules/hal/st$ grep -nr IIS2DH_ODR_1Hz ./* | ||
+ | ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.h:707: IIS2DH_ODR_1Hz = 0x01, | ||
+ | ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.c:402: case IIS2DH_ODR_1Hz: | ||
+ | ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.c:403: *val = IIS2DH_ODR_1Hz; | ||
+ | |||
+ | guest@ubuntu-vm:~/embedded/z3-on-var/modules/hal/st$ grep -nr IIS2DH_TEMP_ENABLE ./* | ||
+ | ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.h:692: IIS2DH_TEMP_ENABLE = 3, | ||
+ | ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.c:285: case IIS2DH_TEMP_ENABLE: | ||
+ | ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.c:286: *val = IIS2DH_TEMP_ENABLE; | ||
+ | guest@ubuntu-vm:~/embedded/z3-on-var/modules/hal/st$ grep -nr PROPERTY_ENABLE ./* | ||
+ | </pre> | ||
+ | |||
+ | And really the above project is pulled in to Nordic's sdk-nrf. Looks to be at a slightly older, or at least different version, but driver header and sources at https://github.com/STMicroelectronics/iis2dh are the same as in the STMicro hal code in Nordic sdk-nrf v1.6.1. | ||
Revision as of 20:45, 14 October 2021
Notes on STMicro IIS22DH high frequency MEMS accelerometer.
- https://community.st.com/s/question/0D50X00009XkdfV/understanding-acceleration-data-from-iis2dh (Excerpt from this post copied to section below . . .)
A promising project on Github:
- https://github.com/STMicroelectronics/iis2dh
- https://github.com/STMicroelectronics/STMems_Standard_C_drivers/tree/master/iis2dh_STdC/examples
Symbols in the polling code example from STMicroelectronic/iis2dh repo are defined in a sub-part of sdk-nrf modules/hal/ project space:
guest@ubuntu-vm:~/embedded/z3-on-var/modules/hal/st$ grep -nr IIS2DH_2g ./* ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.h:742: IIS2DH_2g = 0, ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.c:636: case IIS2DH_2g: ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.c:637: *val = IIS2DH_2g; ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.c:649: *val = IIS2DH_2g; guest@ubuntu-vm:~/embedded/z3-on-var/modules/hal/st$ grep -nr IIS2DH_ODR_1Hz ./* ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.h:707: IIS2DH_ODR_1Hz = 0x01, ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.c:402: case IIS2DH_ODR_1Hz: ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.c:403: *val = IIS2DH_ODR_1Hz; guest@ubuntu-vm:~/embedded/z3-on-var/modules/hal/st$ grep -nr IIS2DH_TEMP_ENABLE ./* ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.h:692: IIS2DH_TEMP_ENABLE = 3, ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.c:285: case IIS2DH_TEMP_ENABLE: ./sensor/stmemsc/iis2dh_STdC/driver/iis2dh_reg.c:286: *val = IIS2DH_TEMP_ENABLE; guest@ubuntu-vm:~/embedded/z3-on-var/modules/hal/st$ grep -nr PROPERTY_ENABLE ./*
And really the above project is pulled in to Nordic's sdk-nrf. Looks to be at a slightly older, or at least different version, but driver header and sources at https://github.com/STMicroelectronics/iis2dh are the same as in the STMicro hal code in Nordic sdk-nrf v1.6.1.
Configuration Post from ST Micro Forum
Excerpt on accelerator configurations from this developer: mhackney (Community Member) Edited by ST Community July 21, 2018 at 5:26 PM Posted on January 02, 2017 at 16:21
Ok, I overlooked the data sheet that Low Power mode is 8-bit data output. But that still does not explain why the data is not left aligned?
Also, here is my complete configuration to sanity check:
// setup CTRL_REG1
accelerometer_write(CTRL_REG1, 0b10011100); // ODR 5.376kHz in LPMode [7-4] Low power enable [3] Z enable [2]
// setup CTRL_REG2
accelerometer_write(CTRL_REG2, 0b00110001); //
// setup CTRL_REG3
accelerometer_write(CTRL_REG3, 0b01000000); // AOI (And Or Interrupt) on INT1 en [6]
// setup CTRL_REG6
accelerometer_write(CTRL_REG6, 0b00000000); //
// setup CTRL_REG4
accelerometer_write(CTRL_REG4, 0b00110000); // Full-scale selection 16G [5-4]
// setup CTRL_REG5
accelerometer_write(CTRL_REG5, 0b01001010); // FIFO enable [6] Latch INT1 [3]
// setup INT1_CFG
accelerometer_write(INT1_CFG, 0b00100000); // ZHIE enabled [5]
// setup INT1_THS
accelerometer_write(INT1_THS, Z_PROBE_SENSITIVITY); // 40
// setup INT1_DURATION
accelerometer_write(INT1_DURATION, 0);