Hallo liebe Gemeinde,
ich versuche jetzt schon seit Tagen den MCP4921 (SPI DAC) zum Laufen zu bewegen. Irgendwie will mir das nicht gelingen, so dass ich jetzt auf eure Hilfe angewiesen bin.
Dies ist das Datenblatt dazu: http://ww1.microchip.com/downloads/en/DeviceDoc/21897a.pdf
Auf Seite 18 ist der entsprechende Write Command.
Ich setzte 0x3FFF, also 0011111111111111
Die ersten 4 bits stellen den header dar (0011), die folgenden 12 bits stellen den Wert 4095 dar.
Die Pins sind korrekt verschaltet, der Chip wird mit 3,3V versorgt (die auch gemessen anliegen). Nach dem Befehl sollte die Ausgabe eigentlich 3,3V sein; es sind aber 0V.
Ich hoffe ihr könnt mir helfen den Fehler zu finden.
Lg
Jay
Code
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
SCLK = 11 # Serial-Clock
MOSI = 10 # Master-Out-Slave-In
CS = 22 # Chip-Select
def sendSPI(value):
GPIO.output(CS, GPIO.LOW)
for i in range(16):
if (value & 0x01):
GPIO.output(MOSI, GPIO.HIGH)
else:
GPIO.output(MOSI, GPIO.LOW)
GPIO.output(SCLK, GPIO.HIGH)
GPIO.output(SCLK, GPIO.LOW)
value <<= 1
GPIO.output(CS, GPIO.HIGH)
def main():
# Pin-Programmierung
GPIO.setup(SCLK, GPIO.OUT)
GPIO.setup(MOSI, GPIO.OUT)
GPIO.setup(CS, GPIO.OUT)
# Pegel vorbereiten
GPIO.output(CS, GPIO.HIGH)
GPIO.output(SCLK, GPIO.LOW)
sendSPI(0x3FFF)
if __name__ == '__main__':
main()
Display More