www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega Uart mit invertierten Pegeln


Autor: OlliW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

kennt jemand einen "schlauen" Trick um den Uart eines z.B. Atmega88 mit 
invertierten Pegeln zu betreiben (also eine HW Lösung = Transistor oder 
so sowie ein SW-Uart ist hier nicht gemeint)?

(ich habe das Datenblatt eigentlich gründlich durchgelesen und dort 
nichts zu gefunden, wenn ich nur zu blöd zum Lesen war bitte kurzen 
Hinweis und sorry)

Mir fällt bisher nur soetwas der Art ein:
Senden: PCint des Tx Pins auf Flanke aktivieren, in der PCint ISR dann 
einen Ausgang entsprechend setzen
Empfangen: Signal auf einen beliebigen PCint, diesen auf Flanke 
aktivieren, in der ISR dann einen anderen beliebigen Pin entsprechend 
setzen, wobei dieser Pin mit dem Rx-Pin elektrisch verbunden ist.

Aber offensichtlich, dass ist eine ... sagen wir... nicht so dolle 
Lösung...
1) 3 weitere Pins vergeudet
2) zwei Pins müssen el. verbunden werden (also doch HW Eingriff)

Kennt jemand etwas besseres? Idealerweise etwas bei dem man den Rx und 
Tx Pin weiterverwenden kann.

Thx,
Olli

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>kennt jemand einen "schlauen" Trick um den Uart eines z.B. Atmega88 mit
>invertierten Pegeln zu betreiben ...

Am einfachsten ist es, die Versorgungsspannung umzupolen.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. Nein.
2. Wozu das denn?
3. Wenn's denn unbedingt sein muß, wieso nicht
   einfach ein Inverter?

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entwickler schrieb:
> Am einfachsten ist es, die Versorgungsspannung umzupolen.

Laufen dann nicht alle Timer rückwärts?

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus Wachtler schrieb:
>> Am einfachsten ist es, die Versorgungsspannung umzupolen.
>
> Laufen dann nicht alle Timer rückwärts?

Und der Programmcounter zaehlt auch rueckwaerts. Also aufpassen beim 
Resetvector.

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Harware-UART das AVR kann es nicht.
Bleiben Software-UART, ext. Inverter oder anderer Prozessor.
Der M16C kann es, das weiss ich zufällig genau :-), andere sicher auch.

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Obwohl - es gäbe noch die Möglichkeit:
UART-Ausgang auf einen anderen Eingang, der PinChange-Interrupt tut 
nichts weiter, als einen anderen beliebigen Pin invertiert zu schalten. 
Beim Empfang geht es genauso. Benötigt dann eben 2 Pins mehr und etwas 
Prozessorzeit.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal bei Atmel fragen ob sie dieses Konstrukt nicht als at74hc04
anbieten wollen?

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Der M16C kann es, das weiss ich zufällig genau :-)

Und dann beschweren sich wieder alle der Prozessor ist so kompliziert 
weil man soviel einstellen muss. :-)

> Mal bei Atmel fragen ob sie dieses Konstrukt nicht als at74hc04
> anbieten wollen?

Oller Verschwender! Wenn schon dann TC7S04. Davon sollte man sowieso 
immer 20Stk in seiner Bastelkiste haben.

Olaf

Autor: OlliW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aha, da sind heute aber einige Schlaumeier unterwegs... schon mal 
überlegt dass es einen Grund für diese Frage geben könnte... aber ne, 
Hauptsache erstmal dumme Bemerkungen machen... da kann ich nur meinen 
Kopf schütteln.

@H.joachim:
danke für diese Überlegungen, ich denke die hatte ich so ähnlich oben 
angedeutet, beim Empfang komme ich allerdings darauf das es zwei 
zusätzliche (und nicht nur einen zusätzlichen) Pin braucht. Wie stellst 
du dir dass mit nur einem Pin vor?

@die-nicht-nur-blöd-daher-reden-wollen:
Zur Frage wozu das denn und warum nicht einfach Inverter:

Ich wie auch andere benutzen für Bastlerschaltungen im RC Bereich Hagens 
Bootlader, und das Einfachste (gerade für Nachbauwillige) ist es direkt 
über die serielle Schnittstelle zu gehen (den 1wire Adapter bekommt man 
noch leicht hin). Ziel ist es nicht nur neue SW aufspielen zu können, 
sondern v.a. auch eine Konfigurierbarkeit zu erreichen.

Jetzt will ich aber alternativ, um nicht immer nur den Compi zur 
Konfiguration etc benutzen zu müssen eine Programmierbox bauen, bzw., 
als Testschaltung gibt's das schon und funktioniert auch gut, so wie man 
das für z.B. BESCs, Gyros, Stabis etc kennt. Es geht jetzt allerdings 
darum eine möglichst einfache HW-Platform zu realisieren. Klar kann man 
sich da etwas zusammenlöten, aber das ist nicht Jedermans Sache, und das 
"coolste" wäre es etwas Kaufbares einfach umzuproggen, gibt dann ne 
kleine und robuste und preislich kaum schlagbare (wenn man 
Platinenherstellungskosten mitnimmt) Progbox. Beispiel: Progger-Box von 
Robbe, die gibt es für 16Eur, ist SEHR klein, hat 2x16 LCD, vier Tasten, 
hat nen ATmega, sowie die ISP-Pins an Pads herausgeführt... eigentlich 
ideal... oder eine der HK-Progboxen, leicht billiger dafür etwas 
grösser, etc...

Das wäre HW-mässig eine super Lösung, und wäre auch völlig problemlos 
wenn man Hagens Bootlader mit dem passenden Invert-Flag benutzt... 
allerdings... und das ist DER Pferdefuss... man wäre dann nicht mehr 
kompatibel zu der seriellen Schnittstellenlösung oben!

Ich bin da jetzt also auf der Suche nach der meiner Meinung nach besten 
Lösung... und jetzt gibt es ja nicht nur die obigen Idioten sondern auch 
die "Hacker" die immer für nen coolen Trick gut sind, und meine Hoffnung 
war dass es hierzu vielleicht auch einen "coolen" Umweg gibt... (nur 
weil ich ihn nicht sehe muss es ihn ja nicht geben, ne)

wie auch immer das hier weitergeht, man findet in jedem Fall bestätigt 
das es mehr Idioten als coole Hacker gibt.

Olli

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Höflichkeit gepachtet hast du ja nun auch nicht gerade.

Wenn du mit Kopfschütteln fertig bist, könntest du dir deine
Ergüsse vielleicht selbst nochmal durchlesen.

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Absoluter Fall von Humorlosigkeit.

Ausserdem hat man ihm schon mehrfach gesagt das es mit dem Prozessor so 
nicht geht. Die einzige Loesung ist ein Software Uart. Einen Inverter 
will er ja nicht. Die Pegel bei den meisten UARTs sind so gewaehlt das 
man direkt einen invertierenden  RS232/RS485 Treiber dort anschliessen 
kann.

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Absoluter Fall von Humorlosigkeit.

Und das wird sich noch verschärfen, wenn jeder ESD-Funke einen 
Prozessortausch erforderlich macht.

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entwickler schrieb:
> Und das wird sich noch verschärfen, wenn jeder ESD-Funke einen
> Prozessortausch erforderlich macht.

Ach watt.  Prozessorpins fuehrt man immer direkt auf den Stecker.
ESD ist was fuer Weicheier.

Mir laeuft immer eine kalte Schauer den Ruecken runter wenn ich sehe das 
man Prozessorpine ohne ESD Beschaltung einfach so nach aussen legt.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OlliW schrieb:
> aha, da sind heute aber einige Schlaumeier unterwegs... schon mal
> überlegt dass es einen Grund für diese Frage geben könnte...

Nein. Eigentlich nicht.
Also, es gibt keinen Grund da seine eigenen Pegel einzuführen.

Autor: Skua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entwickler schrieb:
> Am einfachsten ist es, die Versorgungsspannung umzupolen.

Wenn man nun VCC als GND nimmt sollte, sofern sonst galvanisch getrennt, 
das gewünschte herauskommen.

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

Bewertung
0 lesenswert
nicht lesenswert
Der XMega kann das mit allen I/O-Pins, den gibt es auch in handlich als 
XMega16A4.

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.