Forum: Mikrocontroller und Digitale Elektronik UART Verständnisproblem


von Tobias (Gast)


Lesenswert?

Hi!
Ich habe ne mehr oder weniger Anfängerfrage, aber leider keine Antowrt 
dazu im Web gefunden! Welche Pegel nutzt der Atmel UART für logisch "0" 
und logisch "1"? Soweit ich das bisher las, sollten es 5V für logisch 
"0" und 0V für logisch "1" sein, ist das so richtig?

Gruß

Tobias

von niglo (Gast)


Lesenswert?

Nein, das ist so nicht richtig.
5V --> 1 (high)
0V --> 0 (low)

Hast du das vielleicht mit RS232 verwechselt. Dort wir nämlich mit 
invertierter Logik gearbeitet +12V --> 0
-12V --> 1

MfG, Niglo.

von Tobias (Gast)


Lesenswert?

Möglicherweise habe ich das verwechselt! Ich bräuchte das ganze leider 
invertiert! Gibt es die Möglichkeit das Softwaremäßig zu machen oder 
muss das Hardwareseitig invertieren?

Tobias

von niglo (Gast)


Lesenswert?

Brauchst du das Stop und Startbit auch inv. oder nur das Datenbyte.
Also wenn alles inv. sein soll, kannst du es nur hardwaremäßig machen.
Wenn du aber nur das Byte inv. brauchst, dann inv. es einfach 
softwaremäßig.

MfG, niglo.

von Tobias (Gast)


Lesenswert?

Tja leider brauche ich es komplett invertiert, sonst hätte ich ja, wie 
du schriebst, vor Senden einfach das Byte invertiert! Ich muss damit auf 
einen 12V = "0" , 0V="1" Bus kommen! Also auch noch den Pegel irgendwie 
wandeln!

Bis dann

Tobias

von niglo (Gast)


Lesenswert?

Nicht schwer!
Einfach vom TxD deines µC ein Buffergatter mit OpenCollector-Ausgang 
dranhängen und den Opencollectorwiderstand auf 12V.

Erklärung von Opencollector-Ausgängen hier:
http://www.acroname.com/robotics/info/concepts/opn_clct.html

Im ersten Bild siehst du ein Gatter (aber ein NAND) an dessen Ausgang 
ein Widerstand ist, der auf 5V hängt.
Du nimmst einfach ein Buffergatter (mit OpCo) und tauscht die 5V auf 12V 
(am Wiederstand)

von Tobias (Gast)


Lesenswert?

Vielen Dank erstmal!
Ich schreibe mal eben worum es mir geht! Also ich will in einem auf 
einem sogenannten IBus senden und empfangen! Der Bus ist auf 12 V 
hochgezogen und hat nur eine Leitung, somit muss ich die TXD und RXD des 
µC mit der einen Busleitung verdrahten, den Pegel wandeln und das Signal 
jeweils invertieren! Es gibt dafür fertige Interface-Chips, die sind 
aber nur in Stückzahlen ab 100 zu bekommen, daher der ganze Aufwand! 
Vielleicht hat jemand ne idee, wie man das insgesamt am einfachsten 
realisieren kann, da ich, was das angeht, nicht soviel Ahnung habe!

von Niglo (Gast)


Lesenswert?

Hi.

Man müsste wissen ob dieser IBus auch wie zB beim I2C-Bus am Ausgang mit 
OpenColl. arbeitet. Falls ja, dann mach genau das was ich vorher 
geopsted habe. Und für RxD: einfach direkt von der Busleitung in den 
Eingang eines Puffergatters (mit OpColl.) und den Ausgang auf RxD (µC). 
Um den Pegel auf 5V zu bekommen: einfach den OpColl. auf 5V.

MfG, niglo.

von Tobias (Gast)


Lesenswert?

Mein Problem ist schon anderweitig gelöst worden! Ich habe einen 
Converter-Chip von Motorola gefunden, den ich direkt an den UART klemmen 
kann. Hinten kommt dann mein fertiges Signal raus (schon invertiert und 
gewandelt!) Trotzdem vielen Dank für die Tips!
Btw: Der IBUS wird von BMW unter anderem zur Wechsleransteuerung benutzt 
und ich baue dafür einen Adapter, um einen Sony-Wechsler benutzen zu 
können!

von Niglo (Gast)


Lesenswert?

Viel Erfolg.

MfG, niglo

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.