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.

[参考译文] BOOSTXL-ADS7841-Q1:无法从 TM4C1294XL 获取 ADS7841-Q1的数据输出

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/774884/boostxl-ads7841-q1-cannot-get-data-output-from-ads7841-q1-from-tm4c1294xl

器件型号:BOOSTXL-ADS7841-Q1
主题中讨论的其他器件: ADS7842

大家好、

我正在通过 TM4C1242的 SPI 接口使用 BOOSTXL-ADS7841-Q1。

我遇到了使 ADC 生成输出数据的问题。 我检查了时序要求、并确定我已将所有内容与数据表相匹配。

请看一下我的示波器代码段以及我用于生成输出的代码。

这是我的设置

我使用的 Vref 为4.5V

无论我做什么、MISO 线路和繁忙线路始终保持低电平

以下是为方便起见的时序要求图

这里是我的代码-我初始化 SPI 接口,然后将函数 ads7842_read_data()放入无限循环,以便使用示波器进行调试。

我要发送的控制字节是

[1][1][0][1][0][1][1][1][1]= 0xD7


 

void init_ads7842 (uint32_t sysClock){
uint8_t flush_buffer[10];

/*用于 SSI 的使能引脚*/
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOQ);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOM);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOP);

/*启用 SPI 接口*/
SysCtlPeripheralEnable (SYSCTL_Periph_SSI3);

GPIOPinTypeGPIOInput (GPIO_PORTQ_BASE、GPIO_PIN_3);// MISO -将其配置为 GPIO 输入
GPIOPinTypeGPIOOutput (GPIO_PORTQ_BASE、GPIO_PIN_2);// MOSI -将其配置为 GPIO 输出
GPIOPinTypeGPIOOutput (GPIO_PORTQ_BASE、GPIO_PIN_0);// SCLK -将其配置为 GPIO 输出
GPIOPinTypeGPIOOutput (GPIO_PORTM_BASE、GPIO_PIN_7);//~CS -将其配置为 GPIO 输出
GPIOPinTypeGPIOInput (GPIO_PORTP_BASE、GPIO_PIN_3);//忙-将其配置为 GPIO 输入

/*将芯片选择设置为逻辑高电平*/
ads7842_chip_select (取消选择);

//为 SSI3配置时钟、MISO 和 MOSI 输入*/
GPIOPinConfigure (GPIO_PQ0_SSI3CLK);
GPIOPinConfigure (GPIO_PQ2_SSI3XDAT0);
GPIOPinConfigure (GPIO_PQ3_SSI3XDAT1);


/*配置 SSI 引脚的 GPIO 设置。 此函数
还将这些引脚的控制提供给 SSI 硬件。*/
GPIOPinTypeSSI (GPIO_PORTQ_BASE、GPIO_PIN_0);
GPIOPinTypeSSI (GPIO_PORTQ_BASE、GPIO_PIN_2);
GPIOPinTypeSSI (GPIO_PORTQ_BASE、GPIO_PIN_3);

/*禁用 SS3以配置它*/
SSIDisable (SSI3_base);

/*配置速度为8MHz 的 SPI 接口设置-发送8位需要1us */
SSIConfigSetExpClk (SSI3_base、sysClock、SSI_FRF_MOTO_MOTO_1、SSI_MODE_MASTER、2500000、 8);

/*
SSI_ADV_MODE_LEGACe. 0x00000000
SSI_ADV_MODE_READ_WRITE 0x000001c0
SSI_ADV_MODE_WRITE 0x000000c0
SSI_ADV_MODE_BI_READ 0x00000140
SSI_ADV_MODE_BI_WRITE 0x00000040
SSI_ADV_MODE_Quad_Read 0x00000180
SSI_ADV_MODE_Quad_WRITE 0x00000080
*

SSIAdvModeSet (SSI3_base、SSI_ADV_MODE_LEGACY_LEGACY_);

/*启用 SSI3 */
SSIEnable (SSI3_base);

/*刷新 FIFO 中的重管理数据*/
while (SSIDataGetNonBlocking (SSI3_base、(uint32_t*)&flush_buffer[0]))
{
}


}

void ads7842_read_data(){

uint32_t buffer[16];
ads7842_chip_select (select);

SSIDataPut (SSI3_base、0xD7);
ads7842_check_busy();
延迟(500);
SSIDataGet (SSI3_base、buffer);

ads7842_chip_select (取消选择);
delay (100);

}

void ads7842_chip_select (chip_select 选项){
if (option == select){
GPIOPinWrite (GPIO_PORTM_BASE、GPIO_PIN_7、0);
SET_BOARD_LED (Board_LED_2、LED_ON);
} 否则、如果(选项=取消选择){
GPIOPinWrite (GPIO_PORTM_BASE、GPIO_PIN_7、GPIO_PIN_7);
SET_BOARD_LED (Board_LED_2、LED_OFF);
}
}

void ads7842_check_busy(){
if (GPIOPinRead (GPIO_PORTP_BASE、GPIO_PIN_3)= GPIO_PIN_3){
SET_BOARD_LED (Board_LED_1、LED_ON);
} 否则{
SET_BOARD_LED (Board_LED_1、LED_OFF);
}
} 

请告诉我可以采取什么方法来解决问题。

谢谢、

Alex

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

    Tran、您好!

    到目前为止、示波器画面看起来不错。 处理器和转换器之间的每个通信都包含八个时钟周期。 但是 、一个完整的转换 通过三个串行通信来完成、在 DCLK 输入上总共有24个时钟周期。 请注意、在发送控制位后的第二组8个时钟周期之前、您将不会看到 SDO 变化、所有这些情况下 CS 都保持低电平。 如果您继续提供时钟周期、您应该会看到 SDO。

    此外、通过了解您如何 使用 TI-BoosterPack、您还可以使用 BoosterPack ADS7841登录页面上提供的软件 与器件进行通信。  通过 GUI、您可以与器  件通信、然后生成示波器截图、其中显示了软件创建的正确通信时序方案、并使用它们与您自己的软件生成的示波器截图进行比较。

    此致、Cynthia

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

    您好、Cynthia、

    感谢您的回答。

    我注意到、时钟周期仅在您发送数据时切换、我假设它会在数据输出时再次切换。 如示波器所示、如果未传入数据、时钟将保持低电平。 当您将芯片选择拉至低电平时、这种感觉是否错误或时钟将始终切换?

    谢谢、

    Alex

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

    Cynthia、

     

    我查看了示例 GUI 程序、还查看了示波器、我对波形现在应该如何执行有了很好的了解。

    但是、您是否可以获取为 GUI 软件编写的 TM4C 上的程序源代码? 这将非常有帮助。

    谢谢、

    Alex

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Hau、
    我很高兴工作正常、我也看到您的另一篇帖子也得到了解答、很高兴看到您在继续。
    遗憾的是、我们没有该器件的示例软件。 您可以在其他社区论坛上找到 TM4C 的示例代码。