您好!
我尝试使用带 STM32MPU 处理器的 ADS124s08模块读取 PT100的温度、但无法读取任何数据。
我启用了 Linux 驱动程序 ti-ads124s08.c、并看到它正确创建了12 in_volte_raw。
但是、该驱动程序不具有设置寄存器的功能、因此我添加了该部分:
我修改了驱动程序、以便在读取 IN_voltage0_RAW 时、它会将 DAC1设置为 AIN0和1mA 单冲模式。
我可以使用正确的值读回寄存器、并验证 DAC 通道输出电流。
我的配置如下:
数据寄存器(0x2)= 0x34 (单次触发模式)
REF REG (0x5)= 0x12 (内部基准打开)
电流寄存器1 (0x6)= 0x7 (1mA)
当前寄存器2 (0x7)= 0xD0 (dac2关闭、dac1通道0)
正如其他论坛问题中所述、驱动程序在 START 转换命令中存在错误、因此我也更改了该错误。
当我尝试读取数据(IN_voltage1_RAW)时、第一次模块不应答。 如果我发出第二个读取数据命令、我会看到模块在我请求设置多路复用器通道时输出值。
读取数据似乎与我的命令不同步。
root@stm32mp1:~# cat /sys/devices/platform/soc/44004000.spi/spi_master/spi0/spi0 .0/iio\:device0/in_voltage0_raw [ 579.350031] TI-ADS124: send wakeup cmd [ 579.351867] TI-ADS124: setting data register to one-shot mode [ 579.356227] TI-ADS124: data reg set to 52 [ 579.359590] TI-ADS124: setting IDAC magnitude to 1mA [ 579.363703] TI-ADS124: IDACMAG reg set to 7 [ 579.367043] TI-ADS124: setting internal voltage reference [ 579.372707] TI-ADS124: REF reg set to 18 [ 579.376124] TI-ADS124: status reg = 128 [ 579.379423] TI-ADS124: setting chan 0 to IDAC1 [ 579.384144] TI-ADS124: DACMUX reg set to 208
读取通道1时、顺序如下:
将 INMUX REG 设置为0x01。
发送 START CONV CMD。
发送读取数据 CMD。
如果我使用单次触发模式、是否可以跳过读取数据命令?
我应该考虑 DRDY 引脚吗?