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.

[参考译文] ADS7851:ADS7851

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/617123/ads7851-ads7851

部件号:ADS7851

大家好,我最近购买了ADS7851

通过QFN16至DIP16适配器,我将其连接到Raspberry Pi,尝试通过SPI进行通信。

但是,我遇到了一些问题,这可能是本产品特有的问题,因为ADS7851没有Din (数据输入)端口。 它只有CS (芯片选择)端口。

据我所知,我需要通过MOSI (Raspi)->Din (ADS)发送命令字节,并通过miso (Raspi)<-SDO A (ADS)接收回来,这是其他ADC产品(如MCP3208)中的常用方法。

关键是,我想知道如何将SPI通信应用于此产品。

谢谢,Daniel

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

    为了通过SPI与ADS7851正确通信,我建议仔细查看ADS7851数据表中的图1。 这是时序图,如果您遵循CS,SCLK的时序要求,并从SDO-A和SDO-B读取数据,则应该能够正确地从SAR ADC收集采样数据。

    另请注意,根据您想要运行的采样率,您的SCLK可以调整。 例如,在2000kSPS时,您需要SCLK为32MHz,以确保每个周期都能足够快速地捕获数据。 在采样速率较低时,SCLK可以扩展到较慢的频率。

    如果您有任何后续问题,请告知我。 如果是,请同时告知我您想要的采样率。

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

    我期望1.5MSPS,然后需要24MHz的时钟速度(我认为是正确的,因为一个数据需要16位(2个虚拟+14个分辨率位)

    这是我在Raspberry Pi中使用的代码

    #!/usr/bin/python
    导入时间
    导入系统
    导入spidev
    将RPI.GPIO导入为GPIO

    GPIO.setmode(GPIO.BCM)
    SPI=spidev.spiDev()
    SPI.max_speed_Hz=2400万

    SCLK=23
    Cs=24
    Miso=21

    GPIO.setup(SCLK,GPIO.OUT)
    GPIO.setup(CS,GPIO.OUT)
    GPIO.setup(MISO,GPIO.IN)

    DEF readADC (clkPin,csPin,misoPin):
    GPIO。输出(csPin,GPIO,LOW)
    缓冲=[]
    对于范围内的I (16):
    buff.append (GPIO.input(misoPin))
    bData=buff [2:16]
    bData.reverse()
    Data=0
    对于bData中的位:
    Data=(Data<1|bit
    返回数据

    如果__name__='__main__':
    尝试:
    为True时:
    Val=readADC (SCLK,CS,Miso)
    VOL=VAL* 3.3 (2**14)
    打印'ADC值',str (volt)
    时间睡眠(0.1)
    键盘中断除外:
    gPI.cleanup()
    SPI.Close()
    sys.exit (0)



    这里,我使用了Time.SLEEP (0.1),只是为了检查实时电压信号(稍后我将删除它以获得完整的采样率)

    这是否是SPI通信的正确方法?

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

    对于1.5 MSPS,您需要具有24 MHz的SCLK,这是正确的。

    只要时间与数据表中的图1相匹配,就应该设置所有时间。 该代码似乎已正确设置输入和输出以及24MHz的SCLK频率。

    谢谢!
    簧片