www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS232 RxD Signal ATmega 128 per SW invertieren


Autor: Fourstroker B. (fourstroker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine GPS Antenne an der zweiten RS232 Schnittstelle des 
ATmega128 angeschlossen. Da die Antenne ihr TxD Signal genau 
Phasenverdreht schickt (0=1 und 1=0), invertiere ich das Signal im 
Moment mit nem Transistor und gehe dann auf den RxD1 (Pin 27) des ATmega 
128.

Da mich der Wandler im Kabel stört würde ich das Invertieren gerne per 
Software lösen. Ist das möglich? Hat das schon jemand ausprobiert?

Ich hoffe ihr könnt mir helfen,

Fourstroker

Autor: gaston (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Da die Antenne ihr TxD Signal genau
> Phasenverdreht schickt (0=1 und 1=0), invertiere ich das Signal im
> Moment mit nem Transistor und gehe dann auf den RxD1 (
> Pin 27) des ATmega  128.

da ist das signal des GPS, sicherlich kein TTL-Pegel ?

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kannst ja nach empfang des Datenbytes dieses einfach bitweise 
invertieren.

in c mit ~
in assembler mit neg

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nene, das geht nicht.
Einige MC können das (M16C z.B.), der AVR nicht.
Einziger Ausweg: Software-Uart reinbasteln.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du das Signal im GPS Empfänger nicht vor der Wandlung auf RS232 
Pegel abfangen?

Autor: Nick Müller (muellernick)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> nene, das geht nicht.
> Einige MC können das (M16C z.B.), der AVR nicht.


Der hat kein XOR?


Gruß,
Nick

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nick Müller schrieb:
>> nene, das geht nicht.
>> Einige MC können das (M16C z.B.), der AVR nicht.
>
>
> Der hat kein XOR?

Kein Hardware XOR am Pin vor dem Hardware UART. Der xmega kann das 
übrigens auch.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> kannst ja nach empfang des Datenbytes dieses einfach bitweise invertieren.
Das hast du nicht ganz zu Ende gedacht:
Denn leider wird der Empfang nicht klappen, weil vor dem ersten Datenbit 
das Strartbit kommt, und das die falsche Polarität hat...

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde es beim Transistor belassen. Oder auch den XMega nehmen.

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man von einem RS232-Treiber (z.B. Max232) noch
einen Rin-Rout freihat kann man diesen als Inverter verwenden.

avr

Autor: Fourstroker B. (fourstroker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,

Bitweise invertieren kann nicht funktionieren, weil ja wenn 1 und 0 
Level vertauscht sind für den ATmega nur Datenmüll ankommt.

Am GPS Modul kann man dies leider auch nicht umschalten, wäre mir auch 
neu wenn das irgendeines könnte.

Wenn es also nicht per SW am Mega geht, dann werd ich bei der 
Transistorlösung bleiben müssen da meine Schaltung ja bereits für andere 
Zwecke aufgebaut ist und läuft.

Schade eigentlich :-(

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimmst Du Bascom.

SW UART dort kann das standardmäßig.

Autor: Fourstroker B. (fourstroker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich benutze WinAVR.
Angeschlossen ist der Empfänger an der zweiten UART Schnittstelle des 
MEGA 128. Soviel ich weiß handelt es sich dabei um eine SW UART. Daher 
dachte ich eigentlich auch, dass man das irgendwo umschreiben kann.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ich habe eine GPS Antenne an der zweiten RS232 Schnittstelle des ATmega128 > 
angeschlossen.
...
> Soviel ich weiß handelt es sich dabei um eine SW UART.

Du widersprichst Dir selbst.

Der ATM128 hat 2 HW UARTs, also ist eine Nutzung des zweiten HW UART 
recht wahrscheinlich. Da aber kein Code gezeigt wird, kann man nur 
raten.

Ein SW UART könnte auf invertierend programmiert werden.

Autor: Fourstroker B. (fourstroker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich benutze tatsächlich die zweite HW UART. Hab aber mal gehört, dass 
die zweite HW UART sich von der ersten unterscheidet und intern wie ne 
SW UART behandelt wird.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Hab aber mal gehört, dass die zweite HW UART sich von
> der ersten unterscheidet und intern wie ne
> SW UART behandelt wird.

Wird sie nicht. Wie sollte das auch gehen?

Eine gute dem Hörensagen gegenüber zu bevorzugende Informationsquelle 
sind übrigens Datenblätter.

Autor: Fourstroker B. (fourstroker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Scho recht ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.