-
I am kind of new to using Zephyr so please be kind :) I have been using the Teensy Micromod (TMMM) board with the BMM150 (DFRobot) sensor on Wire1 (I2C0). For the TMM I have been using the board config from #88502 (still open). However, before trying the BMM150 I tested the BMI270 which worked no issues. As a guide for the BMM150 I used this example https://github.com/zephyrproject-rtos/zephyr/tree/d7578804dd4683245f5b3d0140e03769486f7315/samples/sensor/bmm150 which does not seem to be in the current samles folder. Also used the BMI270 as a guide which as I said works. What I run the app I get the message that the device is not ready. Debugging with a few printks, seems ito indicate that the BMM150 failing to complete a soft reset successfully
What I have so far is prj.conf:
App overlay:
kconfig
Cmake
main.cpp - most of which is getting USBSerial working.
Added info. Build info:
any help would be appreciated. Thanks |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
Accordingly to the BMM150 datasheet, the default I2C address is 0x10.... The address is configurable based on the CSB / SDO pin as described on p36. Perhaps you're already familiar with this... Just making sure we're on the same page so to speak. 😄 |
Beta Was this translation helpful? Give feedback.
-
Just as a heads up to any finding this discussion I managed to get the BMM150 working. Comparing chip init in zephyr to the chip init in the DFRobot library found that they do not do a softreset as part of the chip init only a power suspend and power on before configuring the chip, i.e., modified in
Also found that
always fails even if chip is started correctly ( no error returned in debug window). To fix that changed it to
now it works. For convience I also changed the data get loop:
data sample
|
Beta Was this translation helpful? Give feedback.
Just as a heads up to any finding this discussion I managed to get the BMM150 working.
Comparing chip init in zephyr to the chip init in the DFRobot library found that they do not do a softreset as part of the chip init only a power suspend and power on before configuring the chip, i.e., modified in
static int bmm150_init_chip(const struct device *dev)