Forum: Mikrocontroller und Digitale Elektronik Bitte um Hilfe bei Datenblatt - Verständnisfrage zum LATCH. Analog Devices AD421


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Dennis (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen!

Ich bräuchte mal eure Hilfe. Ich arbeite mit einem AD421, das ist eine 
4-20mA Stromsenke von Analog Devices.

Den Strom kann ich schon reinprogrammieren, aber ich verstehe den LATCH 
nicht so ganz.
1
Aus dem Datenblatt:
2
3
The AD421 can be programmed for normal 4 mA to 20 mA
4
operation or for alarm current operation. For normal operation,
5
the coding is 16-bit straight (natural) binary over an output
6
current range of 4 mA to 20 mA. For alarm current operation,
7
the coding is also straight binary but with 17 bits of resolution
8
over twice the span, 0 mA to 32 mA, although the part should
9
not be programmed outside the range of 3.5 mA to 24 mA. To
10
determine whether data written to the part is normal 4 mA to
11
20 mA data or alarm current data, the number of clock pulses
12
between two successive LATCH pulses are counted. If the number
13
of pulses is 016 (modulo 32), it chooses normal mode; if it
14
is 1731 (modulo 32), it chooses alarm current range.

Mein Problem ist, dass es hier kein richtigen Chip Select gibt, sondern, 
soweit ich das verstehe, die Bits zwischen zwei steigenden Flanken am 
LATCH empfangen werden und bei der zweiten reingeladen werden.

Soll ich jetzt vor jeder Übertragung einmal togglen und danach 
ebenfalls?

WEIL: Wenn ich nun am Kommunikationsport noch ein anderes Device habe, 
dann bekomme ich doch einen Konflikt mit dem ganzen, denke ich.

Dann ist es nämloch so:

LATCH TOGGLEN -> DATEN FÜR AD421 -> LATCH TOGGLEN -> LÄUFT

oder

LATCH LOW -> DATEN FÜR AD421 -> LATCH HIGH geht beim ersten mal 
natürlich nicht, danach geht es nach der Methode jedoch, weil natürlich 
immer zwischen zwei HIGH die Daten kommen.

Wenn nun aber irgendwas anderes noch dran ist, dann bekommt der AD421 
die Daten ja auch mit und sobald ich die Latch-Leitung berühre könnte er 
die falschen Daten übernehmen.


Kennt sich einer aus?

von Dennis (Gast)


Lesenswert?

Noch niemand einen Baustein mit einem Latch benutzt?

von Kai Klaas (Gast)


Lesenswert?

>Den Strom kann ich schon reinprogrammieren, aber ich verstehe den LATCH
>nicht so ganz.

Die Latch-Leitung dient der Synchronisation: Der AD421 muß doch wissen, 
wo das Datenwort anfängt. Das wird ihm markiert mit der steigenden 
Flanke am Latch-Eingang.

Wenn du das Timing-Diagramm genau anschaust, siehst du, daß Latch high 
zurück genommen werden muß, bevor die Datenübertragung fertig ist.

>Soll ich jetzt vor jeder Übertragung einmal togglen und danach
>ebenfalls?

Wieso denn das?

>WEIL: Wenn ich nun am Kommunikationsport noch ein anderes Device habe,
>dann bekomme ich doch einen Konflikt mit dem ganzen, denke ich.

Wieso denn? Du läßt die Latch-Leitung einfach auf low, solange du für 
jemand anderen Daten überträgst.

>Wenn nun aber irgendwas anderes noch dran ist, dann bekommt der AD421
>die Daten ja auch mit und sobald ich die Latch-Leitung berühre könnte er
>die falschen Daten übernehmen.

Wieso willst du denn die Latch Leitung "berühren"??

Kai Klaas

von Peter R. (gelb)


Lesenswert?

Die Bezeichnung Latch halte ich hier für irreführend. Das ist ja kein 
paralleler Port, der die Daten latcht.

Stattdessen kann man den LATCH als CS betrachten. Jedes Device bekommt 
seinen eigenen CS. Pegel wie von Kai beschrieben, direkt vor Beginn 
high, vor dem ende low.

DATA und CLOCK kann bei allen Devices parallel geschaltet werden.

Grüße, Peter.

von Kai Klaas (Gast)


Lesenswert?

>WEIL: Wenn ich nun am Kommunikationsport noch ein anderes Device habe,
>dann bekomme ich doch einen Konflikt mit dem ganzen, denke ich.

Stimmt, du hast Recht. Jetzt habe ich dich verstanden. Du mußt am Ende 
der Übertragung die Latch-Leitung auf high togglen, damit der Wert 
übernommen wird und vom DAC ausgegeben wird.

Danach interpretiert der AD421 jeden Datenverkehr auf der Clock- und 
Daten-Leitung natürlich als erneute Übertragung. Sobald dann später 
irgendwann tatsächlich neue Daten zum AD421 gesendet werden und die 
Latch Leitung auf high getoggelt wird, gibt der DAC bis um nächsten 
Latch high Schrott aus.

Damit ergibt auch Figure 14 vom Datenblatt wenig Sinn, es sei denn, der 
AD7714 wird nur einmal am Anfang konfiguriert. Bis dahin stimmt das DAC 
Ausgangssignal ja sowieso nicht.

Kai Klaas

von Dennis (Gast)


Lesenswert?

Kai Klaas schrieb:
> Danach interpretiert der AD421 jeden Datenverkehr auf der Clock- und
> Daten-Leitung natürlich als erneute Übertragung. Sobald dann später
> irgendwann tatsächlich neue Daten zum AD421 gesendet werden und die
> Latch Leitung auf high getoggelt wird, gibt der DAC bis um nächsten
> Latch high Schrott aus.

Hey super, hat ja doch noch jemand reingeguckt.

Also genau das meine ich! Ich weiß garnicht, wie ich das machen soll - 
meiner Meinung nach muss der komplett an einen eigenen Port, aber eben 
das Schaltbild sagt, dass es auch anders gehen müsste.

Im Datenblatt steht, dass die Daten zwischen zwei LOW->HIGH 
Latch-Übergänge übernommen werden. Trotzdem werden alle auf der Leitung 
ankommenden Signale erstmal ins Register aufgenommen.

Wenn es denn jetzt so wäre, dass das Schiebe-Register 16Bit fasst und 
alles darüber hinaus im Müll landet, dann wäre dass ja kein Problem, 
jedoch stellt man den Fehlerstrom mit einem 17. Bit ein, ich muss also 
drei 8-Bit-Writes machen. Und Fehlerstrom oder nicht wird leider nicht 
über die ankommenden Bytes ausgewertet, dann könnte man das erste Byte 
zu 0x00 setzen, sondern über die eingegangen Clock-Pulse.

Da ist noch was mit modulo32 im Datenblatt, aber das hilft mir bei 
meinem Problem glaub ich auch nicht weiter, das guckt nur, ob 
Fehlerstrom oder eben nicht.

Dennis

von Dennis (Gast)


Lesenswert?

Peter Roth schrieb:
> Stattdessen kann man den LATCH als CS betrachten. Jedes Device bekommt
> seinen eigenen CS. Pegel wie von Kai beschrieben, direkt vor Beginn
> high, vor dem ende low.

So funktioniert das leider nicht.

von Dennis (Gast)


Lesenswert?

Kai Klaas schrieb:
> Jetzt habe ich dich verstanden.

Ja, sorry, das habe ich zugegebenermaßen etwas unglücklich beschrieben.

von Dennis (Gast)


Lesenswert?

Ich habe mir jetzt nochmal das Datenblatt komplett durchgelesen, aber es 
bleibt dabei! Es werden die Clock-Pulse zwischen zwei LATCH LOW->HIGH 
gezählt, wie LATCH zwischenzeitlich aussieht, ist egal.

WIE ZUR HÖLLE KANN MAN DANN NOCH EIN ANDERES DEVICE AN EINEN 
KOMMUNIKATIONSPORT HÄNGEN, OHNE DASS DER AD421 DIE DATEN MIT ÜBERNIMMT?!

as kann doch nicht sein, im Bild hängt doch auch noch ein AD-Wandler mit 
an MOSI und CLK.

von Kai Klaas (Gast)


Lesenswert?

>WIE ZUR HÖLLE KANN MAN DANN NOCH EIN ANDERES DEVICE AN EINEN
>KOMMUNIKATIONSPORT HÄNGEN, OHNE DASS DER AD421 DIE DATEN MIT ÜBERNIMMT?!

Am besten mal mit dem Hersteller reden. Ich hatte ein ähnliches Problem 
mit dem AD420, das sich auch nicht mit dem Datenblatt alleine lösen 
ließ. Da hat ein Telefonat mit dem Hersteller den Durchbruch gegeben. 
Allerdings hatte ich damals glaube ich mit Amerika direkt telefoniert, 
nicht mit dieser dämlichen Hotline, wo oft Schwachköpfe sitzen, die 
keine Ahnung haben. Die schauen dann genauso wie du ins Datenblatt und 
wenn es ihnen zu blöde wird, wimmeln sie dich einfach ab.

Eine Alternative wäre ja, für den AD421 eine separate Daten- und 
Clock-Leitung zu verwenden.

Kai Klaas

von Dennis (Gast)


Lesenswert?

Kai Klaas schrieb:
> Am besten mal mit dem Hersteller reden. Ich hatte ein ähnliches Problem
> mit dem AD420, das sich auch nicht mit dem Datenblatt alleine lösen
> ließ.

Ich habe heute mal den Supoort angeschrieben, ob die mir eine 
Kontaktadresse zusenden können, bis jetzt noch keine Antwort.

Weißt du denn noch, wie es mit dem AD420 war? Der ist ja quasi gleich, 
nur dass der 421 noch HART-kompatibel ist.

von Kai Klaas (Gast)


Lesenswert?

Da gibt es einen "Asynchronous Mode", wo du den Latch-Input mit einem 
Pull-up "hochbindest". Dort wird mit Start- und Stop-Bit gearbeitet. 
Nach Erreichen des Stop-Bits, wird automatisch das empfangene Datenwort 
in den DAC gelesen und der Ausgangsstrom aktualisiert.

Aber Achtung, der AD420 ist nicht für 4-20mA Stromquellen mit 
Fremdspeisung gedacht, wie der AD421.

Kai Klaas

von Dennis (Gast)


Lesenswert?

Kai Klaas schrieb:
> Da gibt es einen "Asynchronous Mode"

OK, den gibt es bei mir nicht.

Kai Klaas schrieb:
> Aber Achtung, der AD420 ist nicht für 4-20mA Stromquellen mit
> Fremdspeisung gedacht, wie der AD421.

Was meinst du damit? Der Unterschied ist doch, dass dein AD420 0-20mA 
kann, also durch eine extra Versorgung. Meiner kann das nicht. Oder wie 
meinst du das?

von Kai Klaas (Gast)


Lesenswert?

Der AD420 und AD421 handhaben den Masseanschluß des Lastwiderstands 
unterschiedlich! So ähnlich wie der XTR110 und XTR112:

http://focus.ti.com/lit/ds/symlink/xtr110.pdf

http://focus.ti.com/lit/ds/symlink/xtr112.pdf

Das ist inkompatibel!!

Kai Klaas

von Dennis (Gast)


Lesenswert?

Ja, das sind schon zwei unterschiedliche Dinge, klar. Der AD420 ist halt 
nur 2-wire und arbeitet nur als Senke. Nunja, trozdem halt kein 
UART-Protokoll. Muss ich wohl einen USCI komplett für den DAC opfern...

Vielleicht meldet sich ja noch wer von Analog Devices.

von Kai Klaas (Gast)


Lesenswert?

>Vielleicht meldet sich ja noch wer von Analog Devices.

Ja, warte noch ein paar Tage.

Kai Klaas

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.