Hallo, habe an meinem Controller einen MAX520 an den I2C Bus angeschlossen. Nachdem ich ein Bit Muster für den 1. DAC sende, geht er kurz auf den gewünschten Wert, dannach fällt die Spannung wieder auf 0V. Kann man dem Baustein irgendwie sagen das er den ausgewählten Wert halten soll? Muss ihn sonst in einer Schleife immer den Ausgewählten wert senden und das möchte ich nicht... Danke und MfG
Christoph schrieb: > Kann man dem Baustein irgendwie sagen das er den ausgewählten Wert > halten soll? Das sollte der eigentlich tun. Wenn du das nicht beobachtest, dann ist das eher ein Indiz dafür, dass du einen Programmfehler oder Hardwarefehler hast.
Das Reset Bit ist auf Null gesetzt. Momentan sende ich es so: 1.Byte (Adressbyte) 01010000 Pause 1ms 2.Byte (Command Byte) DAC 0 00000000 Pause 1ms 3.Byte (Output Byte) 11111111 Wenn ich das sende, geht der Ausgang für ca. 1 sec auf +5V, dannach fällt er wieder auf 0V ab.
Christoph schrieb: > Wenn ich das sende, geht der Ausgang für ca. 1 sec auf +5V, dannach > fällt er wieder auf 0V ab. Zeig deinen Code. Alles andere ist nur Kaffeesatzleserei
Hab einen vorgefertige Routine für I2C in der Inizialisiere ich den Bus auf 100kHz, dannach starte ich den I2C Bus. Dann sende ich: Hex 50 Pause 1ms Hex 0 Pause 1ms Hex FF I2C wird gestoppt
Christoph schrieb: > Hab einen vorgefertige Routine für I2C > Mir gehts nicht nur um die I2C Routinen. Mir gehts um Dinge wie zb: Interrupt freigegeben aber keine ISR, Watchdog aktiv, etc. etc. Also zb Dinge, die dafür sorgen, dass dein µC nach irgendwelchen Zeiten in einen Reset gejagt wird. Speicherüberschreiber die dafür verantwortlich sind, dass du selber per Programm nach 1 Sekunde den Ausgangswert auf 0 setzt, etc. etc. Du solltest dir angewöhnen, bei unlogischen Effekten das Problem erst mal bei dir selbst zu suchen, anstatt einem Baustein seltsames Verhalten anzudichten. Auf lange Sicht gesehen fährst du damit um vieles besser. Aber ok. Wenn du nicht willst, dann eben nicht.
:
Bearbeitet durch User
Du hattes recht! hab jetzt im Programm alles andere weg getan, dann hält der MAX520 den Wert. Mein Controller ist ein Atmel ATMega 128. Ich schalte in meinem Programm auch einen Ausgang. Wenn ich diesen Ausgang einf high setzt, ist alles in Ordnung, sobald ich den Ausgang wieder auf low setzt, fällt auch der DAC vom MAX520 auf 0V. Ich verwende da den PC7(A15) vom ATMega128, das ist PIN 42. Woran kann das liegen?? MfG
zb an der Aussenbeschaltung des Pins? I mag nimma aus unvollständigen Informationen Dinge erraten.
Fehler gefunden... Ich schalte mit diesem Ausgang ein 24V Magnetventil über einen Transistor. Hab das ganze zum Test aufgebuat und habe auf eine Sperrdiode vergessen. Jetzt funktioniert alles wie es soll!! Danke für die Hilfe!
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.