Forum: Mikrocontroller und Digitale Elektronik MAX520 Ausgabewert halten?


von Christoph (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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.

von Achim S. (Gast)


Lesenswert?

hast du vielleicht das Reset-Bit im Command-Byte auf 1 gesetzt?

von Christoph (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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

von Christoph (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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
von Christoph (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

zb an der Aussenbeschaltung des Pins?


I mag nimma aus unvollständigen Informationen Dinge erraten.

von Christoph (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.