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.

[参考译文] ADS7038:ADS7038 SPI 通信技术咨询

Guru**** 2520000 points
Other Parts Discussed in Thread: ADS7038

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1038706/ads7038-ads7038-spi-communication-technology-inquiry

器件型号:ADS7038

大家好、支持团队

我的客户有以下问题:

我在硬件中生产了 ADS7038产品、并正在测试固件。
我们目前正在进行 SPI 测试、但我们不知道接收到的数据是否准确。 它的设计参考了 TI 提供的 C 代码。

使用了 STM32f103 MCU、硬件设置为8位、MSB 优先、波特率为4.5Mbit/s、时钟极性(CPOL)低电平和时钟相位(CPHA) 1边沿。

读取 SYSTEM_STATUS 寄存器后接收到的数据为0x84。 在50ms 延迟后、读取 DATA_CFG 寄存器后接收到的数据为0x84、因此其输出与上述寄存器值相同。
请帮帮我。
我的程序如下。

tCmd[0]= 0x10;
tCmd[1]= 0x00;
tCmd[2]= 0x00;

_HAL_SPI_ENABLE (hspi1);

HAL_GPIO_WritePin (GPIOA、SPI1_CS_Pin、GPIO_PIN_RESET);
while (HAL_SPI_GetState (&hspi1)=HAL_SPI_State_Busy_TX);
SPI_State = HAL_SPI_transmit (&hspi1、&tCmd[0]、3、5);
HAL_DMA_STATE_CHANGE (&hspi1);
HAL_GPIO_WritePin (GPIOA、SPI1_CS_Pin、GPIO_PIN_SET);

dwt_delay_us (10000);

HAL_GPIO_WritePin (GPIOA、SPI1_CS_Pin、GPIO_PIN_RESET);
while (HAL_SPI_GetState (&hspi1)=HAL_SPI_State_Busy_RX);
SPI_State = HAL_SPI_Receive (&hspi1、&adcResp[0]、3、5);
HAL_DMA_STATE_CHANGE (&hspi1);
HAL_GPIO_WritePin (GPIOA、SPI1_CS_Pin、GPIO_PIN_SET);

dwt_delay_us (50000);

tCmd[0]= 0x10;
tCmd[1]= 0x02;
tCmd[2]= 0x00;

_HAL_SPI_ENABLE (hspi1);

HAL_GPIO_WritePin (GPIOA、SPI1_CS_Pin、GPIO_PIN_RESET);
while (HAL_SPI_GetState (&hspi1)=HAL_SPI_State_Busy_TX);
SPI_State = HAL_SPI_transmit (&hspi1、&tCmd[0]、3、5);
HAL_DMA_STATE_CHANGE (&hspi1);
HAL_GPIO_WritePin (GPIOA、SPI1_CS_Pin、GPIO_PIN_SET);

dwt_delay_us (10000);

HAL_GPIO_WritePin (GPIOA、SPI1_CS_Pin、GPIO_PIN_RESET);
while (HAL_SPI_GetState (&hspi1)=HAL_SPI_State_Busy_RX);
SPI_State = HAL_SPI_Receive (&hspi1、&adcResp[3]、3、5);
HAL_DMA_STATE_CHANGE (&hspi1);
HAL_GPIO_WritePin (GPIOA、SPI1_CS_Pin、GPIO_PIN_SET);

dwt_delay_us (50000);

非常感谢。

此致、
Yuki

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

    您好!

    调试数字通信时的第一个建议是探测数字总线、这提供了一个可视化检查、并且很容易地将总线与预期的值进行比较。  

    此外、请务必注意、该器件使用操作码、这些操作码是与器件通信所必需的