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.
您好,当我通过SPI使用ADS7951中的读取数据,并且SPI时钟的SPI波特率为2M时,会出现一些问题。
在手动模式下,我通过使用SPI命令切换通道读取通道0到通道7,但所有返回值都是通道0。所以我很困惑。
SPI命令为:
读取通道0:0x1800 0x0000
读取通道1:0x1900 0x0000
读取通道2:0x1A00 0x0000
...
读取通道7:0x1B80 0x0000
现在我不知道它有什么问题, 它是SPI命令错误吗?
请你帮我,非常感谢。
月标,
SPI命令0x1800:选择手动模式和通道0
SPI命令0x1900:选择手动模式和通道2 <---而不是通道1
SPI命令0x1A00:选择手动模式和通道4 <--而不是通道2
请参阅以下数据表中的表1:第10 - 7位选择通道。 因此通道1 0x1880,通道2为0x1900,通道3为0x1980等
如果您只读回0,让我们检查设备是否设置正确。 您是否可以分享您的原理图片段,其中显示了ADS7951引脚的连接方式? ADS7951需要两个电源+VA和+VBD以及外部2.5V参考。
谢谢!
Vishy
您好,Vishi,
我正在尝试获取ADS7951原理图。
对于供应商+VA和+VBD以及外部2.3 参考,我有板载测试,+VA和+VBD为3.3V,REF电压为2.5V。
它是否具有故障模式等其他模式,但我在数据表中找不到它。
谢谢。
张月标
您好,Vishi,
今天我再次尝试测试,问题与上次相同。
在手动模式下,电压设置为0 V的所有通道(通道0除外)都是100mV,但是我切换到任何通道,返回值将是通道0,而且我使用DDM测试MXO端口,它始终为100mV。
在Auto1和Auto2模式下,结果也是仅读取通道0值,而不读取其他通道信息。
设备是否接收不到SPI命令,但我可以捕获SPI波,并且它是正确的。
我的配置是:
手动模式:0x1800 0x0000,切换通道:0x1880 0x0000...
Auto-1模式:0x2800 0x8000 0x00ff 0x0000...
Auto-2模式:0x3800 0x91C0 0x0000
我不知道问题出在哪里,软件或硬件。
谢谢你。
月标,
您可以说
>>>我的配置为:手动模式:0x1800 0x0000,切换通道:0x1880 0x0000...
只是为了确定:说您正在执行16位写入0x1880,0x0000是您的读回数据,这是否正确? 有关如何在MSP430中执行此操作的信息,请参阅下面的示例代码片段
首先断言芯片选择。 然后写入两个字节:msb (0x18),后跟lsb (0x80)。 同时,设备会移出与写入的每个字节对应的字节数据。 这些字节作为16位数据读取和返回。
注意 ADS7951 在启动时有2个周期延迟... 在"Cycle N"(循环N)中,您将告诉它在"Cycle N+1"(循环N+1)中切换到哪个信道,然后在"Cycle N+2"(循环N+2)中给出该信道的转换。 有关详细信息,请参阅此上的以下链接
b)另外,请检查SPI时钟相位和极性设置:选择时钟相位高,时钟极性为低
谢谢!
Vishy
您好,Vishi,
在手动模式下,我发送0x1800和0x0000命令(两个帧), 所有返回数据都是0x0000。switch channel命令与您的说明相同。
我使用正确的示波器检查SPI命令,但它仍然无法读取其他通道数据。
注:时钟相位高,CS极性低。
谢谢你。