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
>kennt jemand einen "schlauen" Trick um den Uart eines z.B. Atmega88 mit >invertierten Pegeln zu betreiben ... Am einfachsten ist es, die Versorgungsspannung umzupolen.
1. Nein. 2. Wozu das denn? 3. Wenn's denn unbedingt sein muß, wieso nicht einfach ein Inverter?
Entwickler schrieb: > Am einfachsten ist es, die Versorgungsspannung umzupolen. Laufen dann nicht alle Timer rückwärts?
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.
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.
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.
Mal bei Atmel fragen ob sie dieses Konstrukt nicht als at74hc04 anbieten wollen?
> 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
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
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.
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.
>Absoluter Fall von Humorlosigkeit.
Und das wird sich noch verschärfen, wenn jeder ESD-Funke einen
Prozessortausch erforderlich macht.
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.
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.
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.
Der XMega kann das mit allen I/O-Pins, den gibt es auch in handlich als XMega16A4.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.