• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

READMED23-Mar-20242 KiB6044

st_mag40.cD23-Mar-202430.6 KiB1,074823

README

1STMicroelectronics mag40 magnetometer sensor device driver for Google nanohub.
2
3This drivers support following devices:
4    - LSM303AGR
5    - LSM303AH
6    - LIS2MDL
7
8- Supported features:
9
10A. Reports geomagnetic field vector data
11B. Different data rates: 10/20/50/100 Hz
12C. I2C protocol
13D. Data ready reported by interrupt
14
15
16- Platform/variant porting:
17
18The driver requires that following macros are defined in the variant.h
19file of the specific variant:
20
21  ST_MAG40_CAL_ENABLED   /* specify whether the magnetic calibration API must be included */
22
23  ST_MAG40_I2C_BUS_ID    /* specify I2C Bus ID */
24  ST_MAG40_I2C_SPEED     /* specify I2C Bus speed in hz */
25  ST_MAG40_I2C_ADDR      /* specify device I2C address */
26
27  ST_MAG40_INT_PIN       /* specify the gpio used for the DRDY irq */
28  ST_MAG40_INT_IRQ       /* specify the exti interrupt of ST_MAG40_INT_PIN */
29  ST_MAG40_ROT_MATRIX    /* specify how axis has to be rotated according to variant platform
30                          * orientation.
31                          *
32                          * = r11, r12, r13, r21, r22, r23, r31, r32, r33
33                          *
34                          * Rotation:
35                          *
36                          * [x']   [r11 r12 r13]   [x]   [r11*x + r12*y +r13*z]
37                          * [y'] = [r21 r22 r23] * [y] = [r21*x + r22*y +r23*z]
38                          * [z']   [r31 r32 r33]   [x]   [r31*x + r32*y +r33*z]
39                          */
40
41Example:
42
43  /*
44   * Define platform/variant dependent ST_MAG40 device macros
45   */
46  #define ST_MAG40_CAL_ENABLED   1
47
48  /* I2C defs to be used when device is plugged on U4 slot */
49  #define ST_MAG40_I2C_BUS_ID      0
50  #define ST_MAG40_I2C_SPEED       400000
51  #define ST_MAG40_I2C_ADDR        0x1E
52
53  #define ST_MAG40_INT_PIN         GPIO_PB(4)
54  #define ST_MAG40_INT_IRQ         EXTI4_IRQn
55
56  #define ST_MAG40_ROT_MATRIX      0, 1, 0, 1, 0, 0, 0, 0, 1
57
58If these macros are not defined in the current variant the driver forces a compilation
59error.
60