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.

[参考译文] AFE4300:可以正常写入SPI,但无法正常读取SPI

Guru**** 2540720 points
Other Parts Discussed in Thread: AFE4300

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/657561/afe4300-can-spi-write-properly-but-cannot-spi-read-properly

部件号:AFE4300

您好,

我的AFE4300遇到一个奇怪的问题。 我可以将值写入寄存器,但有时无法正确读取它们。 我确实是在阅读后立即将所需的值或上一个值写回登记册。 我处于SPI_MODE_1 (CPHA = 1)。

重置AFE4300后,我的当前程序在TI BeagleBone Black上运行:

1)从MISC_REG1读取0x8000并将0x0000写回
2)从MISC_REG2读取0x7FFF并将0xFFFF写回
3)从MISC_REG3读取0x0000并向其写入0x0000
4)从device_control1读取0x0000并向其写入0x6006
5)如果我检查VREF针脚,它确实激活至1.7V
6)从device_control1读取0xFFFF (而不是预期的0x6006)并向其写入0x6005
7)如果我检查VLDO引脚,它确实激活至1.7V,并且不再激活VREF引脚。
8)此后的任何读取都会导致0xFFFF (在SDOUT线路上,没有任何变化,但所有其他信号都正确)。

我很困惑为什么AFE4300似乎有时会发送正确的数据(最初),然后几乎停止发送数据。

这是我的读取功能:

	uINT16_t __transferRead (const uint8_t& address,const uint16_t& value,bool use_value = false){
		const uint16_t upperbyte = 0xFF00;
		const uint16_lowert byte = 0x00FF;
		const uint8_readaddr = 0x20;//uint16_t upperbyte = 0xFF00;
		{)
		uINT8_t send[3]={(readaddr |地址),0x00,0x00};
		uint8_t recv[3];
		usleep(2);
		__spidev.transfer_block (send,recv,3);
		uint16_t reteval =(recv[1]<<8)| recv[2];
		if (use_value == true){
			__transferWrite (address, value);
		
		
			
		} else {__transferWrite (address,returnval);}
		return returnval;
	} 

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

    您是否可以检查以下内容:
    1)位21设置为'1'以启用读取操作。
    2)在ADC_CONTINT_REGISTER1 (地址1)中,位[3:0]写入'0000'。 在加电时,这些位被设置为'0011'。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Curtis,

    我们尚未收到回复,因此我将关闭该线程。 但是,如果您仍需要帮助,请随时回复。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢! 我最终只是重新设计了一个新芯片,因为我认为坏的写入会导致故障。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Curtis,

    这是否解决了问题? 芯片是否损坏? 我假设您看到了数据表的7.5 .1.4 部分,因为您说过在阅读后写回。 如果您刚刚更换了该部件,那么它按预期工作,我将假设该部件已损坏

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

    是的,新芯片工作正常。

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

    很好,我会将其设置为"已解决"。