[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
From: |
Kevin Townsend |
Subject: |
|
Date: |
Sun, 15 Aug 2021 18:27:37 +0200 |
Updates the proposed LSM303DLHC magnetometer device following review by
Philippe Mathieu-Daudé.
This has been tested with Zephyr 2.6.0, as follows:
$ west build -p auto -b mps2_an521 \
zephyr/samples/sensor/sensor_shell/ \
-- -DCONFIG_I2C_SHELL=y
$ qemu-system-arm -M mps2-an521 -device loader,file=build/zephyr/zephyr.elf \
-serial stdio \
-monitor tcp:localhost:4444,server,nowait \
-device lsm303dlhc_mag,id=lsm303,address=0x1E
uart:~$ i2c scan I2C_SHIELD1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1e --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
1 devices found on I2C_SHIELD1
Zephyr's LSM303DLHC driver can be enabled in a sample by adding the following
DTS overlay:
/*
* Copyright (c) 2021 Linaro Limited
*
* SPDX-License-Identifier: Apache-2.0
*/
&i2c_shield1 {
lsm303dlhc-magn@1e {
compatible = "st,lsm303dlhc-magn";
reg = <0x1e>;
label = "LSM303DLHC-MAGN";
};
};
And the following KConfig settings:
CONFIG_I2C=y
CONFIG_I2C_SHELL=y
CONFIG_SENSOR=y
CONFIG_LSM303DLHC_MAGN=y
When a sample with the above settings is run, the magnetometer can be read
via the shell sensor command:
uart:~$ sensor get LSM303DLHC-MAGN magn_xyz
channel idx=11 magn_xyz x = 0.000000 y = 0.000000 z = 0.000000
Set the y-axis (via human monitor or qmp) to 1100, which equals 1 Gauss
with the default gain settings:
(qemu) qom-set lsm303 mag_y 1100
qom-set lsm303 mag_y 1100
And test again in Zephyr:
uart:~$ sensor get LSM303DLHC-MAGN magn_xyz
channel idx=11 magn_xyz x = 0.000000 y = 1.000000 z = 0.000000
- [no subject],
Kevin Townsend <=