Hallo zusammen, ich weiß nicht mehr weiter, kann mir vllt jemand helfen? Versuch mit dem MCP4922 eine Analoge spannung auszugeben aber es scheitert an der SPI übertragung. Programm bis jetzt: Pinclock Alias Portb.7 Pin Alias Portb.5 Config Portd.7 = Output Config Portb.6 = Output CS Alias Portd.7 CS = 1 Ldac Alias Portb.6 LDAC = 1 Dim X As Byte X = 255 Do CS = 0 Shiftout Pin , Pinclock, X , 1 Ldac = 0 Ldac = 1 CS = 1 Waitms 10 loop kann mir jemand sagen was ich falsch mache? mfg
Ldac zu kurz gesetzt? Ansonsten guck mal ob Daten rauskommen - setz mal X=55(hex), laß die waitms 10 weg, miß die Spannung am Pin (ggf. mit Widerstand und Kondensator glätten) / sollte knapp die Hälfte der Betriebsspannung rauskommen. Oder einfacher mit dem Oszi gucken, ob Clock und Daten 'rauskommen / sofern vorhanden.
Ok, hab jetzt Do CS = 0 Shiftout Pin , Pinclock, X , 1 Ldac = 0 Waitms 5 Ldac = 1 CS = 1 loop Am Mosi messe ich 2,60V wenn ich 55Hex ausgeben, das sollte also hinkommen. Trotzdem klappt es nicht, Hab den Aref auf 5V gelegt, verdrahtung hab ich auch schon öfters überprüft... mhh weiß sonst jemand ne fehler möglichkeit?
außerdem ist derm mcp4922 ja ein 12-bit dac, kann es daran liegen das nur 1 byte geschrieben wird? außerdem hat er ja 2 ausgänge, vllt sogar 4 byte schreiben?
$regfile = "m32def.dat" ' specify the used micro $crystal = 8000000 ' used crystal frequency $baud = 4800 Config Spi = Soft , Din = None , Dout = Portb.5 , Ss = None , Clock = Portb.7 Config Portd.7 = Output Portd.7 = 1 Dim Var(4) As Byte Var(1) = &B00001111 Var(2) = &B11111111 Var(3) = &B00001111 Var(4) = &B11111111 Spiinit Do Portd.7 = 0 Spiout Var(1) , 4 Portd.7 = 1 'send 1 byte Waitms 10 Jetziger Code Loop
du mußt immer 2 byte senden. auf seite 18 steht,was Du dabei mit den oberen 4 bit machen sollst.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.