Übles Busklingeln

Feb 05, 2012 30 Replies

Die Pegel des orginal Oszibild sprechen für einen 5V Bus.

Ich denk eher nicht dass da etwas Busbedingt schwingt. Eher eine Rückwirkung von Ausgang auf einen Eingang. Eventuell durch Störungen auf der Masse oder Eingangspegel die etwas knapp sind. Mit Eingangspegel mein ich auf Steuerseite des Treibers Daten und Steuersignale.

MFG Gernot

Hallo Roland,

Roland Ertelt schrieb:

Ok, dann hat Roco ein anderes XPressNet implementiert als Lenz. Da kenne ich mich dann nicht aus. ;-)

Aber Du hast insofern recht, daß Lenz in der Zentrale einen Abschlußwiderstand verbaut. Das hatte ich verdrängt.

Gruß Martin

Bitte nicht an der E-Mail-Adresse fummeln, die paßt so.

Und so sprach horst-d.winzler:

Ich denke inzwischen, mein Transceiver ist für den 2-Draht-Einsatz nicht geeignet. Die Treiber (da nicht deaktivierbar) schließen den Bus kurz...

Da muss ich wohl doch morgen mal in die blaue Apotheke...

Roland

Und so sprach Roland Ertelt:

Sooo... Ich hatte tatsächlich noch einen sn75hvd08 in der Bastelkiste.

formatting link

Fast unverschämt gut. Sogar ohne Biasing und lokalem Terminator gemessen. Der Terminator kommt wieder rein...

Wenn ich den Transmitter "aus versehen" auf senden schalte, siehts fast noch sauberer aus. Die Zentrale hat offenbar mehr Bums auf dem Sender :-D

formatting link

Danke an alle fürs Augen öffnen.

Roland

Am 06.02.2012 01:56, schrieb Roland Ertelt:

Sieht doch gut aus. Gratuliere. Übrigens den 120_Ohm Widerstand kannst du bei der Basisstation auch von außen messen. Ohm-Meter genügt ;-)

mfg hdw

Und so sprach Horst-D.Winzler:

Die Lokmaus2 hat schonmal keinen...

Aber etwas sehr interessantes habe ich jetzt bei meinem MSP430F249 herausgefunden: Ich habe eine 9-Bit Kommunikation auf der UART_A1. Im Register UCA1STAT soll das Bit UCADDR gesetzt werden, wenn das

9.Bit=1 ist.

Jetzt habe ich gemerkt, dass dieses Bit erst korrekt steht, wenn ich UCA1RXBUF abgeholt habe?

Also:

uiZiel= UCA1RXBUF; if (UCA1STAT&UCADDR) { ..blah } liefert ein plausibles Ergebnis.

if (UCA1STAT&UCADDR) { uiZiel= UCA1RXBUF; ..blah } ist immer true.

Kann das jemand verifizieren?

Roland

Am 06.02.2012 22:12, schrieb Roland Ertelt:

Hm, im Manual liest sich das eher umgekehrt:

formatting link
Seite 443: "The receive-data buffer is user accessible and contains the last received character from the receive shift register. Reading UCAxRXBUF resets the receive-error bits, the UCADDR or UCIDLE bit, and UCAxRXIFG."

Hat das noch was mit dem UCDORM - Bit zu tun (Seite 425)?

Grüße, Stefan

Roland Ertelt :

// Hier fehlt noch ein UCA1STAT &= ~UCADDR;

Nur durch das Lesen wird das UCADDR ja nicht gelöscht.

Auf was Du auch achten musst: Du musst auf jeden Fall in der Interruptroutine das RXBUF lesen, damit das Interruptflag gelöscht wird. Sonst läuft der immer wieder in die Interruptroutine rein (ohne auch nur einen einzigen Befehl des Hauptprogramms abzuarbeiten). D.h. es müsste mindestens so aussehen:

if (UCA1STAT&UCADDR) { uiZiel= UCA1RXBUF; } else { uiData= UCA1RXBUF; } UCA1STAT &= ~UCADDR;

M.

Vorneweg: Ich habe meinen Denkfehler gefunden. Dass der Controller immer eine 9-Bit-Übertragung erkennt, wenn ich sie erlaube, muss wohl im Multiprozessorbetrieb so sein...

Und so sprach Matthias Weingart:

Offenbar doch, denn wenn ich das Bit abfrage, bevor ich den Empänger auslese, ist es immer gesetzt. Danach ist es (oft) weg. Die Kommunikation auf der RS485 ist aber langsam genug, so dass ich ausschließen kann, dass bereits ein neues Zeichen beginnt, bevor ich das Bit abfrage.

Oder wenn es nix zu lesen gibt (wg. Errorframe), das IFG selber löschen ;-).

ROland

Roland Ertelt :

Geht das denn beim Uart? Beim ADC12 geht das nämlich nicht. Da muss explizit das Register gelesen werden.

M.

Und so sprach Matthias Weingart:

Ich habe beim Uart keine Einschränkung dazu gefunden. Es funktioniert halt. Ist ein privates Projekt, da kann man schon mal blauäugig arbeiten ;-)

Ausserdem wäre es beim Uart Quatsch: Wenn ich den IRQ auf für Errorframes an habe (weil ich den Errortyp wissen will), was will ich dann mit dem Inhalt von RX?

Roland

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required