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.

[参考译文] AFE4403:多个数据读取

Guru**** 2782575 points

Other Parts Discussed in Thread: AFE4403

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1604334/afe4403-multiple-data-reads

部件号: AFE4403

您好、  

我们希望在单次 SPI 传输中读取寄存器 0x2A 至 0x2F。 数据表表示它支持“多数据读取和写入“(ch8.5.2.3)。  因此我们尝试了 SPI 传输(地址设置为 0x2A、读取长度为 18 个字节)、但结果是只有 0x2A 寄存器可以成功读取正确的值、而所有其他寄存器都不正确。 你对我们有什么建议吗?

谢谢。

BR

Trevor

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

    尊敬的 Trevor:

    您用于执行多数据读取/写入的确切顺序过程是什么? 此外、您是否已验证(通过单独读取)寄存器 0x2B-0x2F 的内容已正确写入?

    此致、

    Payton

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

    尊敬的  Payton:  

    我们可以使用以下代码一次读取一个寄存器 、利用以下代码、我们可以正确读回 0x2a~0x2F、  

    AFE44xx_AFE4442 (Reg_Read);

    AFE44xx_AFE4443 (Reg_Read);

    AFE44xx_AFE4444 Reg_Read (44);

    AFE44xx_AFE4445 (Reg_Read);

    AFE44xx_AFE4446 (Reg_Read);

    AFE44xx_AFE4447 (Reg_Read);

    unsigned long AFE44xx_Reg_Read(unsigned char Reg_address)
    {
    	HAL_StatusTypeDef ret;
    	uint8_t recv_char[4] = { 0};
    	unsigned long retVal;
    
    	//Enable_AFE44xx_SPI_Read();
    
    	HAL_GPIO_WritePin(AFE_CS_GPIO_Port, AFE_CS_Pin, GPIO_PIN_RESET);
    
    	ret = HAL_SPI_TransmitReceive(&hspi1, (uint8_t*)&Reg_address, (uint8_t*)recv_char, sizeof(recv_char), 1000);
    	if (ret != HAL_OK) {
    		printf("There is a problem with the SPI HAL_SPI_Transmit %d\r\n", ret);
    	}
    
    	HAL_GPIO_WritePin(AFE_CS_GPIO_Port, AFE_CS_Pin, GPIO_PIN_SET);
    
    }

    关于多个数据读取、我们只是通过增加接收缓冲区的大小并仅调用 AFE44xx_0x2a (42) 函数来修改上述函数;但是、只有寄存器 Reg_Read 的值正确。

    从 uint8_t recv_char[4]={0};

    uint8_t recv_char[4 + 4 + 4 + 4 + 4]={0};

    BR

    Trevor

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

    您好、Trevor、

    对延迟深表歉意。 由于请求量很大、我将能够在本周结束前得到您的回复。

    此致、

    Payton

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

    您好、Trevor、

    我仔细检查了“多数据读取和写入“功能、可以确认该功能的预期用例是允许将数据写入寄存器、然后自动从同一寄存器读取。 不支持在不发送寄存器地址的情况下从连续的 AFE4403 寄存器连续读取。

    此致、

    Payton