This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADS131M06:ADS131M06

Guru**** 2379300 points
Other Parts Discussed in Thread: ADS131M06, MSP430FG4619
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1483805/ads131m06-ads131m06

器件型号:ADS131M06
主题中讨论的其他器件: MSP430FG4619

工具与软件:

我们使用大量的 TI 产品、尤其是毫米波和 ADS112U04IPW。 我们将 ADS131M06与 MSP430FG4619配合使用。 我们在尝试从 ADS131m06中简单地读取6个模拟端口。    

void ADS131_read (){                    //将全部6个通道读取到阵列中。     假设默认启动增益=1、24位数据和其他默认条件、因此它会自动转换。
    unsigned int byteHigh、byteMid、byteLow;    unsigned long 结果;
   io_low (P9、BIT7);                  //片选 ADS13
   io_low (p9、BIT4);delay1ms ();io_high (p9、BIT4);  //重置以同步数据 ?????   是否可以使用默认重置线而不是同步?
   I=0;while ((P9IN 和 BIT5)&& I++<1000);if (I>950) user_debug_msg ("Data AD Ready not ready");//等待数据就绪变为低电平
   SPI_TRANSFER (0x00);                   /?????? 发送空命令和读取响应以启动传输。   
   for (jjj=0;jjj<6;jjj++){                    //读取6个通道
           byteHigh = SPI_TRANSFER (0x00);     //虚拟写入以读取高字节
           byteMid = SPI_TRANSFER (0x00);     //虚拟写入以读取中间字节
           byteLow = SPI_TRANSFER (0x00);    //虚拟写入以读取低字节
           Result =((long) byteHigh << 16)|((long) byteMid << 8)| byteLow; //将三个字节组合成一个24位结果
           if (result & 0x800000){result |= 0xFF000000; }//如果 ADC 使用二进制补码格式、则执行符号扩展
           a_d[jj]=结果;                  //将结果放入数组中
   }                                 //读取6个通道
   io_high (P9、BIT7);  //取消选择 ADS131      
}

//------------------
// SPI_TRANSFTER 通过 SPI 传输一个字节并返回接收到的字节。
unsigned int SPI_transfer (unsigned int 数据){
   while (!(IFG2 & UCB0TXIFG));//等待 TX 缓冲区就绪
   UCB0TXBUF = data;           //发送数据
   while (!(IFG2和 UCB0RXIFG));//等待接收完成
   Return UCB0RXBUF;           //返回接收到的数据
}