TI论坛
直播中

李中宏

7年用户 1340经验值
私信 关注
[问答]

使用ADS7951Q芯片进行电压信号采集时,采集回来的电压都是乱码,怎么解决?


  • 我在使用ADS7951Q芯片进行电压信号采集时,采集回来的电压都是乱码,我用的单片机是飞思卡尔的G128,利用SPI通讯。
    ADS1_CS = 0;
    SPI0_send(0x1980);
    temp1 = SPI0_receive();
    delay1us(5);
    ADS1_CS = 1;
    delay1us(5);


    ADS1_CS = 0;
    delay1us(2);
    SPI0_send(0x0000);
    temp2 = SPI0_receive();
    temp2 = temp2<<4;
    temp2 = temp2>>4;
    ADS1_CH3 = (unsigned long int)(((unsigned long int)(temp2)*2500/4095)*411); //采集电池总电压,单位mV
    delay1us(2);
    ADS1_CS = 1;
    delay1us(2);
    这是通讯数据,采集的是channel3的电压信号,无论channel3有没有电压,返回值都一样,基本上都是乱码

回帖(3)

黄远飞

2024-12-5 11:53:53
  基本上都是乱码,   基本上是时序问题,  也有可能是大小端问题,   再检查一下吧
举报

李红梅

2024-12-5 11:53:58
检查下硬件方面是否有问题,包括各部分输入电压是否在正常范围内、输入信号是否在正常范围内。
如果硬件方便没问题,很可能是通讯时序的问题,建议用示波器看下通信波形是否有干扰、时序是否正确。
举报

jjll652

2024-12-5 18:02:14
根据您的描述,您在使用ADS7951Q芯片进行电压信号采集时遇到了乱码问题。以下是一些建议和解决方案,希望能帮助您解决问题:

1. 检查硬件连接:
确保ADS7951Q芯片与飞思卡尔G128单片机之间的SPI通信线路连接正确。检查SPI接口的MISO、MOSI、SCK和CS引脚是否正确连接。同时,检查电源和地线连接是否正确。

2. 检查SPI通信参数:
确保SPI通信参数(如时钟频率、CPOL和CPHA)与ADS7951Q芯片的要求相匹配。您可以查阅ADS7951Q的数据手册以获取正确的参数设置。

3. 检查代码逻辑:
检查您的代码逻辑是否正确。以下是一些可能的问题和解决方案:

   a. 确保在发送命令之前,CS引脚已经拉低(ADS1_CS = 0)。
   b. 在发送命令后,确保CS引脚拉高(ADS1_CS = 1)以结束通信。
   c. 检查SPI0_send()和SPI0_receive()函数是否正确实现,确保它们能够正确发送和接收数据。
   d. 检查temp1和temp2变量的值是否正确。您可以使用调试工具(如调试器)来检查这些变量的值。

4. 检查ADS7951Q芯片配置:
确保ADS7951Q芯片的配置正确。您可以查阅ADS7951Q的数据手册,了解如何正确配置芯片以进行电压信号采集。

5. 检查电源和地线:
确保ADS7951Q芯片和飞思卡尔G128单片机的电源和地线连接正确。不良的电源或地线连接可能导致数据错误。

6. 检查外部干扰:
检查您的电路是否存在外部干扰,如电磁干扰(EMI)或射频干扰(RFI)。这些干扰可能导致SPI通信出现问题。

7. 尝试使用其他通信协议:
如果问题仍然存在,您可以尝试使用其他通信协议(如I2C)与ADS7951Q芯片进行通信,看看是否能够解决问题。

通过以上步骤,您应该能够找到问题所在并解决乱码问题。如果问题仍然存在,请查阅相关数据手册和论坛,寻求更多帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分