AD7705在Python中通过bitbanged SPI与Raspberry Pi建立和通信的问题

2024-09-29 21:50:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新来的,拼命地寻找解决问题的办法。我的PBAM正在尝试与我的PBAM AD7705位ADC进行通信。不幸的是,事情并没有如预期的那样发展。。。 电路是这样的:AD7705 Circuit

我做了大量的研究,并仔细研究了数据表,以选择符合AD7705所有要求的部件。所有的东西都焊接在一个条纹板上。
为了使我的PCB尽可能的简单,我不能使用硬件SPI,所以我被绑定到bitbanking。由于CS与GND相连,通信被简化为MOSI、MISO和CLK。我想我在为AD7705实现SPI时犯了一个错误。在使用bitbanged SPI之前,我曾使用过MPC3008,并使其正常工作,因此我认为在AD7705的实现中存在一个巨大的逻辑思维错误。在

目前,我的例行程序是这样的:

send 0010 0000 -> request write access to clock register
send 0000 0100 -> configure clock register for 2.4576MHz operation
send 0001 0000 -> request write access to setup register
send 0100 0010 -> set gain = 1, buffered mode and perform self-calibration
send 0000 1000 -> request read access to communiation register
read 1 byte

这与数据表中的“设置和读取AD7705的流程图”非常相似,只是写入时钟寄存器的数据略有不同(我使用的是另一个频率的谐振器)。在

问题是我只接收随机的,不可复制的字节。我甚至还没试着去阅读实际数据。你能发现什么错误吗?在

我试图提供关于我的方法的所有信息,尽管我不能解释整个数据表。不过,问题不应该是硬件方面的。在

^{pr2}$

Tags: to数据spiregistersendread硬件access
2条回答

“发送0000 0100->;为2.4576MHz操作配置时钟寄存器” 而是用4.9152MHz发送0000 1100(2位偏差)

我借了个数字示波器(很棒的仪器!)从一个朋友那里得知CLK信号切换太快,所以我把CLK高/低切换之间的等待时间增加到0.001s。
后来,我发现我没有从ADC的DOUT pin接收到任何正确的信号,即使我的字节被正确地发送了,所以我更换了芯片。在

现在一切如期而至,所以我给大家的建议是:记住在咬SPI时要慷慨地遵守时间标准!=)

相关问题 更多 >

    热门问题