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.

[参考译文] ADS7138-Q1:ADS7138QRTERQ1

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1434736/ads7138-q1-ads7138qrterq1

器件型号:ADS7138-Q1

工具与软件:

大家好、 团队成员:

我们需要器件型号 ADS7138QRTERQ1的固件支持

如何使用 STM32 EVK 在 ADS7138QRTERQ1中选择每个通道并读取 ADC 数据。 请告知 或提供示例固件。

此致、

Ajay S

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ajay、您好!

    遗憾的是、除了寄存器定义头文件外、迄今为止、我们还没有任何针对此器件和平台的代码示例可供共享。 有关我们的当前代码示例产品、请查看我们的 GitHub 页面。

    https://github.com/TexasInstruments/precision-adc-examples/

    此致、
    Joel

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们正在使用两个并联的 ADs7138-Q1、现在我需要在两个 Ic 中读取 AIN0 ADC 引脚、

    如何逐一选择 IC 中的 AIN0 ADC 通道并正确读取 ADC 数据、

    现在 、我尝试使用 IC 地址通过 I2C 直接读取、

    在这里,我 也附上我的代码  ,亲切,检查和建议。     

     uint16_t READ_ADC ( I2C_HandleTypeDef * hi2c、 uint16_t 器件地址)

       uint8_t 数据[10];

       uint16_t ADC_value = 0;

    #if 1.

      如果 ( HAL_I2C_EVM Master_Receive (I2C、DEVICE_ADDRESS、DATA、2、HAL_MAX_DELAY)!= HAL_OK){

          Error_Handler ();

       }

     

    #endif  //将原始 I2C 数据打印到 UART

            字符 uart_msg[50]

           // snprintf (uart_msg、sizeof (uart_msg)、"原始 ADC 数据:0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x\r\n"、DATA[0]、DATA[1]、DATA[2]、DATA[3]、 DATA[4]、DATA[5]、DATA[6]、DATA[7]、DATA[8]、 数据[9]);

            snprintf (uart_msg大小 (uart_msg)、"原始 ADC 数据:0x%02x 0x%02x\r\n"、DATA[0]、DATA[1]);

            HAL_UART_TRANSMIT (&huart6、( uint8_t *) uart_msgstrlen (UART_msg)、HAL_MAX_DELAY);

     

       //组合 MSB 和 LSB

       ADC_value =(DATA[0]<< 8)| DATA[1]

       //adc_value = adc_value1*3.3/65535;

       return ADC_Value

    }

     

    //将 ADC 值转换为电压

    悬空 ADC_TO_Voltage ( uint16_t ADC_value){

       悬空 Reference_voltage = 3.3f;

       悬空 分辨率= 65536.0f;// 16位分辨率

       return (ADC_value * reference_voltage)/分辨率

    }

     

    //通过 UART 打印 ADC 电压的函数

    空洞 Print_ADC_VOLTAGES ( 悬空 ADC1_VOLTAGE、 悬空 ADC2_VOLTAGE){

       字符 uart_msg[50]

       snprintf (uart_msg大小 (uart_msg)、"ADC1电压:%.3f V、ADC2电压:%.3f V\r\n"、ADC1_voltage、ADC2_voltage);

       HAL_UART_TRANSMIT (&huart6、( uint8_t *) uart_msgstrlen (UART_msg)、HAL_MAX_DELAY);

    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ajay、您好!

    如果没有手头的控制器和硬件设置、我很难验证这些代码的运行情况、但一目了然。 如果您碰巧遇到任何问题、我可以更轻松地使用逻辑分析仪捕获之类的东西进行调试、而不是使用源代码进行调试。 请告诉我、我是否可以通过这种方式提供进一步的帮助。

    此致、
    Joel