Python 如何从Raspberry Pi写入AD5754 DAC寄存器?SPI接口

Python 如何从Raspberry Pi写入AD5754 DAC寄存器?SPI接口,python,cpu-registers,spi,dac,Python,Cpu Registers,Spi,Dac,我用一个树莓皮试着控制模拟设备产生的任意波形。我已使用SPI将RPI连接到DAC。我试图写入DAC,首先给DAC通电,然后选择所有四个DAC,最后将输出电压范围设置为+-10V 我曾尝试写入24位DAC寄存器,创建3个不同的函数,并使用spi.self.writebytes一次写入8位,然后将它们合并在一起,没有任何乐趣 '''' 蟒蛇 import spidev from time import sleep import math DEBUG = False spi_max_speed =

我用一个树莓皮试着控制模拟设备产生的任意波形。我已使用SPI将RPI连接到DAC。我试图写入DAC,首先给DAC通电,然后选择所有四个DAC,最后将输出电压范围设置为+-10V

我曾尝试写入24位DAC寄存器,创建3个不同的函数,并使用
spi.self.writebytes
一次写入8位,然后将它们合并在一起,没有任何乐趣

''''
蟒蛇

import spidev
from time import sleep
import math

DEBUG = False
spi_max_speed = 4 * 1000000 # 4 MHz
V_Ref = 3300 # 3V3 in mV
Resolution = 2**16 # 16 bits for the AD5754
CE = 1 # CE0 or CE1, select SPI device on bus

#setup and open an SPI channel
spi = spidev.SpiDev()
spi.open(0,CE)
spi.max_speed_hz = spi_max_speed

LDAQ = 7 # Can use any pin, here we use GPIO07
GPIO.setmode(GPIO.BOARD)'
GPIO.setup(LDAQ, GPIO.OUT)
GPIO.output(LDAQ,GPIO.LOW)

def powerUp(self)
    lowbyte = self.spi.writebytes([0xb00010000])
    midbyte = self.spi.writebytes([0xb00000000])
    highbyte = self.spi.writebytes([0xb00001111])

self.spi.xfer(lowbyte,midbyte,highbyte)

def selectDAC(self)
    lowbyte1 = self.spi.writebytes([0xb00000100])
    midbyte1 = self.spi.writebytes([0xb00000000])
    highbyte1 = self.spi.writebytes([0xb0000000])

self.spi.xfer(lowbyte1,midbyte1,highbyte1)

def selectDAC(self)
    lowbyte2 = self.spi.writebytes([0xb00000100])
    midbyte2 = self.spi.writebytes([0xb00000000])
    highbyte2 = self.spi.writebytes([0xb0000000])

self.spi.xfer(lowbyte2,midbyte2,highbyte2)

def DACvoltage(DACvalue,DACvoltage)
    DACVoltage = (-9.99969482421875,9.99969482421875);
    DACValue = (DACVoltage/10) * 32768;


try:
    while(True):
        for angle in range(1, 360):
            # generate a sine wave
            DACvalue = math.sin(math.radians(angle))
            # results in values between -1 and +1
            # add 1 to make all values positive (so between 0 and 2)
            # scale it to get only positive numbers between 0 and 256
            # Use only integer numbers
            DACvalue = int((DACvalue + 1 ) * 1024 / 8)

            if DEBUG : print "Output value is {0:24b}".format(DACvalue)

            setOutput(DACvalue)

            if DEBUG :
                sleep(0.0)
            else :
                # if you use a DMM to track the output, leave the sleep in.
                # if you use a scope, set the sleep to 0.0
                sleep(0.05)


except KeyboardInterrupt:
    print "Closing SPI channel"
    spi.close()

def main():
    'pass'

if __name__ == '__main__':
    'main() '
我希望VoutA,B,C,D产生正弦波输出,但我似乎只是得到噪音