Mikrocontroller mit Rs232 Schnittstelle

(Firma: privat) #6288010
Lesenswert?

Hallo Leute,
habe nach längerer Pause wieder Gefallen an meinen Mikrocontrollern 
TN13, TN2313 und Mega8 gefunden.
Meine Platinen sind leider alle für RS232 Schnittstellen ausgelegt. 
Rechner mit RS232 habe ich leider keine mehr. Programmieren über 
ISP-Programer mit AVR Studio 4.19 geht, aber leider keine Kommunikation 
über USB zum Notebook.
Mittels RS232/USB Adapter und Hterm bringe ich keine Verbindung 
zustande.
Für eine Lösung wäre ich sehr dankbar,
Gruß reglermax.
Gast #6288033
Lesenswert?

Rolf G. schrieb:

> Mittels RS232/USB Adapter und Hterm bringe ich keine Verbindung
> zustande.

Drei Problemzonen:

1) Treiber für die RS232-Adapter. Test ist einfach: "local loopback". 
Sprich: du läßt den µC erstmal weg und verbindest nur RXD und TXD des 
Adapters. Wenn du dann was sendest, musst du das Gesendete auch sofort 
wieder empfangen. Geht das nicht, ist entweder der Adapter defekt oder 
der Treiber passt nicht zum Adapter.

2) Pegel. Es gibt typisch drei Sorten von diesen Adaptern. 
(Näherungsweise) RS232-Level, 5V und 3,3V. Wenn du eine alte Platine 
verwenden willst, die ursprünglich mal für RS232 designed war (und 
deswegen einen MAX232 o.ä. enthält), dann brauchst du die 
RS232-Variante. Für Neuentwicklungen kannst du halt den MAX232 weglassen 
und statt dessen direkt zu einem 5V- bzw. 3,3V-Adapter verbinden (je 
nach Versorgung deines µC).

3) Takt. Wenn der Takt des µC falsch konfiguriert ist, kommt Gurkensalat 
raus. Es kann aber auch Gurkensalat rauskommen, wenn der Takt "im 
Prinzip" richtig konfiguriert ist. Wenn nämlich der interne 
RC-Oszillator verwendet wird. Der ist nicht genau genug. Kann klappen, 
muss aber nicht klappen.
Gast #6288040
Lesenswert?

Timo N. schrieb:
> Der UART vom Atmega verwendet Logic-Level-Signnalpegel (0 bis 5V).

Das wäre dann allerdings nicht die von Rolf genannte 
RS232-Schnittstelle.
Neben den Pegel unterscheidet die sich auch in der Polarität.

Erste Maßnahme wäre, den Ruhepegel der TX-Leitung von Mikrocontroller 
und PC zumindest mit einem Multimeter zu messen. Einfacher wäre 
natürlich der Einsatz eines Oszis.
Gast #6288098
Lesenswert?

Wolfgang schrieb:
> Das wäre dann allerdings nicht die von Rolf genannte
> RS232-Schnittstelle.

Stimmt. Der c-hater weiss aber, dass seht viele Adapter im Handel RS232 
oder TTL genannt werden, obwohl was anderes drin steckt.

> Erste Maßnahme wäre, den Ruhepegel der TX-Leitung von
> Mikrocontroller und PC zumindest mit einem Multimeter zu messen.

Guter Vorschlag, dann erfahren wir zumindest, was es denn wirklich ist.
#6288110
Lesenswert?

Rolf G. schrieb:
> ISP-Programer mit AVR Studio 4.19 geht, aber leider keine Kommunikation
> über USB zum Notebook.

aber ein ATmega8 sendet doch normalerweise auf UART oder USART Rx&Tx 
aber nicht über ISP wo er programmiert wird!

Ausnahmen sind Arduinos oder AVR mit Bootloader die per ISP programmiert 
werden entweder durch einen eigenen Chip USB/ser on board oder welche 
mit USB Schnittstelle wie der mega32u4 (oder war das u2?)

Du müsstes also schon einen TTL Uart USB Adapter anklemmen
sowas in der Art an Tx und Rx vom ATmega8 wenn du am PC Hterm o.ä. 
machen willst
https://www.ebay.de/i/172228517190

oder nimm gleich einen Arduino Nano328p, den kannst du auch 
programmieren wie gewohnt als puren ATmega8, musst dich halt um alles 
selber kümmern Ausgaben an Rx/Tx selber anklemmen Pegelwandlung machen 
und zu +-12V zum PC wandeln.

Ich finde nano praktischer, auc hindert dich keiner den ohne die IDE zu 
programmieren, notfalls mit einem 2ten nano der als ISP Brücke dient.
Gast #6288267
Lesenswert?

Das ist zwar die Sparversion (nur Inverter, ohne negatives TX) sollte 
aber zuverlässig funktionieren. Muss es halt nur nicht. einfach testen, 
ob der Loop Back auch mit Dioden von gnd nach RX/TX geht.
#6288324
Lesenswert?

Timo N. schrieb:
> Boar dann sind es halt -12/+12V. Auf jeden Fall weit weg von 0/5V.
> Spielt doch echt keine Rolle.

das größere "Problem" ist doch die Polarität was bei TTL Ruhepegel high 
ist ist auf der RS232 eben low also bei 0V und das TTL high wird als 
logisch aktiv 1 erkannt.

Wenn es mit den "Sparschaltungen" 0V/5V funktioniert dann nur nach 
Invertierung. Am Pegel muss es nicht zwingend liegen aber an der 
Erkennung high low! eben 1/0 oder umgekehrt je nach "Guckrichtung".

Sparschaltung
https://www.mikrocontroller.net/attachment/77864/circuit.png
Gast #6288452
Lesenswert?

m.n. schrieb:
> Timo N. schrieb:
>> Boar dann sind es halt -12/+12V.
>
> Auch die gab es nie. Wenn ich so etwas lese, ist sofort klar, daß der
> Urheber  nur die Backen aufpustet. Praktische Erfahrung sieht anders
> aus.

naja früher wurden die Treiber mit den +12/-12V Ausgängen der Netzteile 
versorgt, vielleicht kommt daher die Meinung es sind +-12V

Wiki:
Für die Datenleitungen (TxD und RxD) wird eine negative Logik verwendet, 
wobei eine Spannung zwischen −3 V und −15 V (ANSI/EIA/TIA-232-F-1997) 
eine logische Eins und eine Spannung zwischen +3 V und +15 V eine 
logische Null darstellt. Signalpegel zwischen −3 V und +3 V gelten als 
undefiniert.
Gast #6288664
Lesenswert?

georg schrieb:
> Auf jeden Fall mit mehr Berechtigung als du, da du offensichtlich
> niemals irgendwelche Normen über serielle Schnittstellen gelesen hast.

Das wissen aus Normen lag ja nicht vor. 5.5V ist nicht weit weg von 5, 
und 3V schon gar nicht.

Und dann ist es nur die Norm. In der Praxis hat jeder kaufbare Adapter 
(ok, vielleicht nicht jeder, aber > 99%) seine umschaltschwelle bei >> 
0V, funktioniert also mit TTL-Pegeln wunderbar. Damit ist die Schaltung 
des TO zwar nicht normgerecht, aber völlig ausreichend.

Der Empfänger sowieso. Den kriegt man auch mit TTL normgerecht hin.
#6288788
Lesenswert?

A. S. schrieb:
> Und dann ist es nur die Norm.

Hi, und zu allem Übel dann noch
RS232 versus V24:
https://de.wikipedia.org/wiki/V.24
Ziat:
"...Diese Empfehlung wurde mehrfach den technischen Gegebenheiten 
angepasst. Von ursprünglich über 50 beschriebenen Funktionen sind seit 
dem Jahr 2000 noch 37 vorhanden..."
/Zitat
Ich sag lieber V24. Denn da ist IMHO auch die Pegeldefinition drin 
(gewesen).
Obwohl Wiki sagt, es wäre nur die Zuordnung zu den Funktionen.

Ein Bild sagt mehr als tausend Worte.

ciao
gustav
Angehängte Dateien:
#6289144
Lesenswert?

Karl B. schrieb:
> Ein Bild sagt mehr als tausend Worte.

Hi,
der Doppel-Genderchanger dient nur dazu, Abstand zu kriegen. Sonst muss 
man die Muttern da am STK500 DB9 female Konnektor evtl. abschrauben.
Klappt 100 pro.

Atmel ICs die U(S)ART haben, kann man direkt verbinden nur eben auch
Korrespondierende kreuzen. Meistens ohne Händeschütteln mit GND RXD TXD.
Dann am anderen Target GND TXD RXD. (Und PD0 an RXD(Spare) und PD1 an 
TXD(Spare) jumpern. Hab ich doch glatt vergessen;-)
Viel Spaß!
ciao
gustav
Angehängte Dateien:
Gast #6289434
Lesenswert?

Zu den +-5V, die der Sender nach Norm mindestens liefern muss, eine 
kleine Anekdote:

Vor mehr als 20 Jahren, noch vor dem Internet am Arbeitsplatz, als wir 
junge Ingenieure erstmals 3.3V hatten und dafür einen MAX232 suchten. 
Uns war klar, die verdoppeln und invertieren auch nur, können also nur 
knapp über 5V hinkriegen. Wir hatten auch 12V oder so im Kopf, als mein 
Kollege am Telefon den Distri fragte: "funktioniert das denn?". 
Natürlich war uns im Augenblick der Frage klar, ja es muss 
funktionieren, wenn Maxim die verkauft. War uns (ihm) peinlich, aber war 
passiert.

Heute könnte man einfach in ein Datenblatt schauen. Aber lassen wir das.
Gast #6289786
Lesenswert?

Angsthase schrieb:
> wobei eine Spannung zwischen −3 V und −15 V (ANSI/EIA/TIA-232-F-1997)
> eine logische Eins und eine Spannung zwischen +3 V und +15 V eine
> logische Null darstellt.

Wobei das die Spannung an einem Eingang beschreibt. Zusammen mit der an 
anderer Stelle beschriebenen Strombegrenzung (Kurzschlußfestigkeit) und 
dem Spannungsabfall im Kabel sind am Sender sehr wohl höhere Spannungen 
als 3V notwendig, um die Norm einzuhalten.

MfG Klaus
#6290086
Lesenswert?

Hi,
hier wird's schwierig(er).
C* 979767 8-kanaliges 10-Bit-Datenerfassungssystem
mit LTC1090.
Basic konnte "direkt" auf Schnittstellen zugreifen.
...
110 OUT&H3FC,(&HFE AND INP(&H3FC))
...
was immer das zu bedeuten hatte.
Knoble gerade daran, das GWBasic Proggi auf ATMEL AVR ASM umzumodeln.
Der große Geistesblitz ist mir dabei noch nicht gekommen.
"...Der Datentransfer spielt sich zwar über die serielle Schnittstelle
ab (COM1), läuft dort aber nicht wie üblich über die normalen 
Datenleitungen  Rx und Tx, sondern nur über die Statusleitungen DTR, RTS 
und CTS..."

ciao
gustav
Gast #6290123
Lesenswert?

Rolf G. schrieb:
> Das hat am PC-damals wunderbar funktioniert!
> http://www.rolf-grauer.de/Mega8.html

Da kommt einem ja das Grauen.

Ja, es gab RS232 Schnittstellen (Empfänger), die ihre Schaltschwelle bei 
ca. 1.4V hatten, passend zu TTL Signalen, und ein LS-Schaltkreis geht 
auch nicht glich kaputt, wenn er üer 10k eine höhere Spannnug sieht.

Aber Standard war, daß man zumindest -3V braucht, damit MARK zuverlässig 
erkannt wird.

Dein Gebastel ist einfach nur grausamer Schrott.
Einzig tauglich als schlechtes Beispiel wie man es nicht macht.
Gast #6290321
Lesenswert?

MaWin schrieb:
> Aber Standard war, daß man zumindest -3V braucht, damit MARK zuverlässig
> erkannt wird.
>
> Dein Gebastel ist einfach nur grausamer Schrott.
> Einzig tauglich als schlechtes Beispiel wie man es nicht macht.

Wenn Du keinerlei Erfahrung mi9t seriellen Schnittstellen hast, oder 
Dich nur hinter Normen versteckst, dann lerne doch von den Erfahrungen 
anderer. Oder zeig mir eine kaufbare Hardware (link reicht), die Deine 
Ansicht irgendwie stützt.

(der echte MaWin hat da eigentlich mehr Ahnung)
Gast #6290384
Lesenswert?

Für den schnellen Aufbau habe ich meist 1 x MC1489 als Inverter 
genommen, wobei die Hälfte ungenutzt bleibt. Rx-seitig werden alle 
Signale "normgerecht" verarbeitet; Tx-seitig werden zwar nur ca. 5 Vss 
ausgegeben, was aber in der Regel bis 115 kBd reicht.
Die MAX232 o.ä., die mit Vcc 3-5 V arbeiten, haben ihre Schaltschwelle 
so um die 1,5 V und können 5 V Pegel bestens verarbeiten.

Negative Signalpegel brauchen nur noch ältere Empfänger, bei denen die 
Hysterese 'künstlich' nach unten auf 0 V verschoben wurde. Das macht man 
heutzutage nicht mehr.
Gast #6290402
Lesenswert?

m.n. schrieb:
> Negative Signalpegel brauchen nur noch ältere Empfänger, bei denen die
> Hysterese 'künstlich' nach unten auf 0 V verschoben wurde. Das macht man
> heutzutage nicht mehr.

In den letzten 20 Jahren habe ich das nicht mehr gesehen. Nur irgend so 
ne Kiste von Siemens mal vorher. Bei manchen ICs konnte man früher wohl 
die Schwelle per Pin auf 0 oder drunter ziehen, aber der war nie aktiv.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren