主题中讨论的其他器件: ADS131M08EVM、ADS131M08
工具与软件:
我们使用大量的 TI 产品、尤其是毫米波和 ADS112U04IPW。 我们将 ADS131M06与较旧的 MSP430GF4619配合使用、而我们在使用 SPI、SCI 和许多其他功能方面拥有丰富的经验。 我们在尝试从 ADS131m06中简单地读取6个模拟端口。 配置寄存器是直接的。
RREG (101a aaaa annn nnnn) 1010 0000 0110 //从寄存器0 7-1字节开始读取
假设默认启动增益=1、24位数据和其他默认条件、因此它会自动转换。
void ADS131_readConversion (){//将所有6个通道读入数组中
io_low (P9、BIT7);//片选 ADS13
for (int ch = 0;ch < 6;ch++){//读取6个 ADC 通道
命令= 0xA |(Ch & 0x07);//这看起来不正确? RREG (101a aaaa annn nnnn) 1010 0000 0110 //从寄存器0 7-1字节开始读取
while (!(IFG2 & UCB0TXIFG));//等待 TX 缓冲区就绪
UCB0TXBUF =命令;//发送命令字节
while (!(IFG2 & UCB0RXIFG));ch = UCB0RXBUF;//等待传输并使用虚拟读取清除 RX 标志
unsigned int high = SPI_TRANSFER (0x0000);//读取 lo、MID、hi 字节
unsigned int mid = SPI_TRANSFER (0x0000);
unsigned int low = SPI_transfer (0x0000);
ADC_DATA[ch]=((unsigned long) high << 16)|((unsigned long) mid<< 8)| low;
}//读取6个 ADC 通道
io_high (P9、BIT7);//取消选择 ADS131
}
我们已经阅读了无数示例的代码和用户手册、但内容尚不清楚
24位数据的寄存器在哪里?
是否需要任何其他启动命令?
我们是否需要发送读取命令并寻址每个模数通道0xA |(ch & 0x07);
请帮助处理上面的代码。
非常感谢、Peter