我正在尝试使用 TWIM/I2C 总线配置 LSM6DSO(sparkfun breakout),主设备是北欧 NRF52。
在大多数情况下,
通信似乎是有效的。我能够配置中断以响应单击。中断有效。所以看起来通信和硬件层问题不是问题,芯片正在工作(但只是!)。
我的关键问题是,当我写入某些寄存器并读回值时,我得到了完全不同的值。
一个例子是 TAP_CFG0,当我向它写入 0x45(锁定中断,y 轴打开)时,它读回 0xFF!这太疯狂了,因为数据表表明 msb 应该始终为 0?
是什么导致该寄存器抛出某种错误值或错误的返回值?我在数据表中找不到有用的文档吗?
此外,我尝试通过设置 SW_RESET 位来执行重置(acc 和陀螺仪处于 pwr-down 模式),但该位从未自行重置以指示重置完成。两者可以联系起来吗?无论我是否尝试重置芯片,TAP_CFG0 的问题仍然存在。