TI论坛
直播中

哈哈哈

10年用户 894经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

请问ADS131M04 CAP引脚是否应该有1.8V输出呢?


  • 我的数字电源和模拟电源都为3.3V, CAP引脚是否应该有1.8V输出呢?
    我用STM32F407 的PWM输出占空比为50%的信号作为CLKIN,CLKIN为4MHz;SPI CLK配置为 低电平 下降沿有效2.5Mhz 8位 MSB模式 但无论发什么指令器件都没回应,CAP引脚为0V。我用示波器观测CLKIN SCLK 和DIN波形都正常。RESET为高电平 CS直接配置为始终低电平。
    MX_tiM4_Init();
    /* USER CODE BEGIN 2 */

    setCS(LOW);
    InitADC();

    // EXTI6_Enable();
    /* USER CODE END 2 */
    /* Infinite loop */
    /* USER CODE BEGIN WHILE */
    while (1)
    {
    // writeSingleRegister(GAIN1_ADDRESS, 0x0003);//通道0 GAIN = 8
    // sendCommand(OPCODE_UNLOCK);
    //
    // readData(&DataStruct);
    spiSendReceiveByte(0x00);
    spiSendReceiveByte(0x33);
    spiSendReceiveByte(00);

    spiSendReceiveByte(00);
    spiSendReceiveByte(00);
    spiSendReceiveByte(00);

    spiSendReceiveByte(00);
    spiSendReceiveByte(00);
    spiSendReceiveByte(00);

    spiSendReceiveByte(00);
    spiSendReceiveByte(00);
    spiSendReceiveByte(00);

    spiSendReceiveByte(00);
    spiSendReceiveByte(00);
    spiSendReceiveByte(00);

    spiSendReceiveByte(00);
    spiSendReceiveByte(00);
    spiSendReceiveByte(00);

    spiSendReceiveByte(00);
    spiSendReceiveByte(00);
    spiSendReceiveByte(00);

    spiSendReceiveByte(00);
    spiSendReceiveByte(00);
    spiSendReceiveByte(00);

    LL_mDelay(1);
    }


    void InitADC(void)
    {
    // IMPORTANT: Make sure device is powered before setting GPIOs pins to HIGH state.
    // Initialize GPIOs pins used by ADS131M0x

    // Initialize SPI peripheral used by ADS131M0x
    MX_SPI1_Init();
    LL_SPI_Enable(SPI1);
    // Run ADC startup function
    adcStartup();
    }

    SPI_InitStruct.TransferDirection = LL_SPI_FULL_DUPLEX;
    SPI_InitStruct.Mode = LL_SPI_MODE_MASTER;
    SPI_InitStruct.DataWidth = LL_SPI_DATAWIDTH_8BIT;
    SPI_InitStruct.ClockPolarity = LL_SPI_POLARITY_LOW;
    SPI_InitStruct.ClockPhase = LL_SPI_PHASE_2EDGE;
    SPI_InitStruct.NSS = LL_SPI_NSS_SOFT;
    SPI_InitStruct.BaudRate = LL_SPI_BAUDRATEPRESCALER_DIV16;
    SPI_InitStruct.BitOrder = LL_SPI_MSB_FIRST;
    SPI_InitStruct.CRCCalculation = LL_SPI_CRCCALCULATION_DISABLE;
    SPI_InitStruct.CRCPoly = 10;
    LL_SPI_Init(SPI1, &SPI_InitStruct);
    LL_SPI_SetStandard(SPI1, LL_SPI_PROTOCOL_MOTOROLA);


    void adcStartup(void)
    {
    /* (OPTIONAL) Provide additional delay time for power supply settling */
    setSYNC_RESET(LOW);
    LL_mDelay(50);
    /* (REQUIRED) Set nRESET pin high for ADC operation */
    setSYNC_RESET(HIGH);
    LL_mDelay(1);

回帖(1)

梅利号

2024-11-14 18:08:10
根据您提供的信息,您正在使用ADS131M04,这是一个模数转换器(ADC)。关于CAP引脚,它通常用于配置ADC的输出电压范围。在ADS131M04的数据手册中,CAP引脚的电压范围是1.62V至3.3V。因此,如果您的数字电源和模拟电源都为3.3V,CAP引脚应该有1.8V输出。

关于您遇到的问题,您提到无论发送什么指令,器件都没有回应,CAP引脚为0V。这可能是由于以下原因:

1. SPI通信配置不正确:请确保您的STM32F407的SPI配置与ADS131M04的数据手册中推荐的配置相匹配。您提到SPI CLK配置为低电平下降沿有效2.5MHz,8位MSB模式。请检查这些参数是否正确。

2. 时钟配置不正确:您提到使用STM32F407的PWM输出占空比为50%的信号作为CLKIN,CLKIN为4MHz。请确保这个时钟信号与ADS131M04的数据手册中推荐的时钟配置相匹配。

3. 复位(RESET)和片选(CS)引脚配置不正确:您提到RESET为高电平,CS直接配置为始终低电平。请检查这些引脚的配置是否正确。

4. 代码问题:您提供的代码片段不完整,无法判断是否存在问题。请确保您的代码正确地初始化了ADS131M04,并正确地发送了指令。

建议您按照以下步骤进行排查:

1. 检查ADS131M04的数据手册,确保您的硬件连接和配置正确。

2. 使用示波器检查SPI通信的信号质量,确保CLKIN、SCLK和DIN波形正常。

3. 检查您的代码,确保正确地初始化了ADS131M04,并正确地发送了指令。

4. 如果问题仍然存在,您可以尝试使用其他开发板或微控制器进行测试,以排除硬件故障的可能性。

希望这些建议能帮助您解决问题。如果您有其他问题,请随时提问。
举报

更多回帖

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