我们一直在尝试为一个项目测试和调整 LSM6DSO 评估板 (STEVAL-MKI196V1),但在使用 SPI 与其
通信时遇到了困难。
当放置在 Profi-Mems 板 (STEVAL-MKI109V3) 上并在 Unico GUI 中配置时,它的功能和行为符合预期。我们成功地将它连接到 Nucleo-L031K6 板上,并且能够使用 I2C 读取和写入所有寄存器。当我们决定改为与 SPI 通信时,我们遇到了困难。
我们与 LSM6DSO 的通信有限:我们能够按预期成功读取值为 0x6C 的 WHO_AM_I (0Fh) 寄存器,并写入 FUNC_CFG_ACCESS (01h) 寄存器以启用和禁用对嵌入式功能寄存器的访问。但是,我们无法正确地与 CTRL1_XL (10h) 和 CTRL2_G (11h) 寄存器通信来设置加速度计和陀螺仪。我们能够向每个寄存器读取和写入小于 0x0E 的值,但似乎无法正确接收任何大于此值的值:例如,0x2C 被写入这些寄存器之一,但 0x18 被读回。
LSM6DSO 继续在 Unico 中运行,并且可以使用 I2C 进行配置和通信,这让我们相信在 SPI 通信方面我们缺少一些东西。我们在 SPI 模式 0 下运行,波特率为 125KBits/s,数据大小为 8 位。我们已尝试使用 Vdd = VddIO = 1.8V、Vdd = VddIO = 3.3V 以及 Vdd =3.3V 和 VddIO = 1.8V 进行操作,但此问题在每次迭代中都存在。
我们应该如何解决这个问题以及我们如何解决这个问题?
谢谢你!