-
USART/RS232 Fehlersuche
Ich hab mir laut dem Schaltplan von www.mikrocontroller.net einen Pegelwandler für die RS232 Schnittstelle gebaut und auch gleich mit dem Probeprogamm auf der gleichen Seite getestet - ohne Erfolg.
Da ich die Platine bereits kontrolliert habe, und das Programm funktionieren müsste, tue ich mir jetzt echt schwer mit der Fehlersuche. Wenn ich Hyperterminal öffne und laut Anleitung(mikrocontroller.net) einstelle, tut sich nichts, die Verbindung steht, die Zeit läuft, aber ich sehe nichts. Hin und wieder stockt der PC (und der Timer in Hyperterminal), aber Text erscheint keiner! Ich weiß nun nicht mehr, wie ich weiter machen soll bzw. wie ich welche Fehler ausschließen soll
Hoffe auf Hilfe!
Zilent
-
Schau dir mal das Hyperterm an, ob du es richtig eingestellt hast
https://www.roboternetz.de/wiki/pmwi...Main.TermHyper
-
Danke für den Hinweis - leider negativ - genau die selben Einstellungen!
-
Rx / Tx auf einer Seite mal vertauschen (auskreuzen) ?
Beim Max auf pin 2 u. 6 sollten ca +/- 8V zu messen sein ?
-
Hallo,
mit Hyperterminal hat's bei mir noch nie funktioniert!
Ich benutze immer AVRTerm! => http://www.rowalt.de/mc/avr/toolsd.htm
Gruß Michi
-
hallo
Kann möglicherweise an den Kondensatoren liegen.
Es gibt verschieden MAX232 Typen die sich nur am angehängten Buchstaben unterscheiden und unterschiedliche KJondensatoren verlangen. MAX232A benötigt nur 0,1uF Kondensatoren. Für dem MAX Ohne A sind im Datenblatt 1uF angegeben. Der arbeitet aber auch mit 10uF ordentlich. 22uF wie in der Schaltung erscheint mir etwas viel.
Besser ist es auch das AVRTerm zu benutzen (gibts kostenlos im Net) es lässt sich enfach besser Einstellen as das olle Windows Prog.
viel Erfolg
-
Das ging ja schnell!
Also das mit RX/TX auskreuzen hatte ich mir auch schon gedacht, aber wollte noch nicht die Platine "zerstören". Werde mal nachmessen und mir neue Kondensatoren besorgen - kann da leider erst Sonntag was neues sagen - falls es nichts gebracht hat, werd ich mich nochmal melden.
Habt Dank für eure schnelle Hilfe!
Zilent
PS: Müssen eigentlich Elko's verwendet werden, weil normale Kondensatoren hätte ich vorrätig!
-
hehe was sind "normale" kondensatoren?
Es ist so der theoretische IDEALE C ist kapazitäts konstant / hält ne hohe spannung aus und is REIN Kapazitiv (das gibts nich (leider)) deswegen gibts unterschiedliche ...
z.b.
Elko = + Sau hohe kapazitäten bei recht hohen Spannungen - induktiv und ändert die Kapazität, fast alle Gepolt (gibt ausnahmen aber sehr selten)
Tantal = naja ich sag ma ich mag se nich :P (erstens von früher weils se fast immer zerissen hat und nie eine Kapazitätstreue hatten ... (heut is das anders) Kennzeichnung ist + (zumindest fast immer es sei den die Hersteller verpennen es oder halten sich nich an normen (hat ich leider auch schon öffters) das Positive an den dingern die haben auch Recht hohe kapazitäten bei relativ hohen Spannungen und sind kaum Induktiv negativ eben die Polung wo man nich immer 100% sicher sein kann was wo is, und sie sind relativ Teuer
FoKo = + meist SEHR hohe Spannungen (100V aufwerts...) normal Ungepolt ,teils aber auch Induktiv
Keko = + recht Kapazitäts Stabiel (die neuen) und fast nur Kapazitiv sowie ungepolt dafür is da das minus eher kleine Kapazitäten mit kleineren Spannungsfestigkeiten.Zudem der hohe preis bei hohen kapazitäten.
hab hier z.b. kekos mit 10µF und 10V in 0603er bauform... joar mit ner toleranz von +20-10% kostet halt ein stück ca 0.50€ (gut ich hab hier ne 2000er Rolle ^^) aber ... genauso 1µF mit 50V 1206 ... gut sie werden billiger aber im mom.. schwer zu bekommen (für leute die nun nicht auf großhändler zugreifen können) bzw sehr teuer.
ich beforzuge für FAST alles kekos (hab hier tonnen rumliegen ^^) und Vermeide alles andere so gut es geht ...gibt immer ausnahemen und Grenzen .. aber ...
man muss wissen was die dinger für vor und nachteile ham und dann kannst se richtig Einsetzen. Für z.b. Block C's oder die Stütz C's von strom/spannungs - treibern oder pegelwandlern würd ich Kekos vorziehen sind schnell und ...ich mag se einfach gern ^^
ich hoff ich konnt dir da bissl helfen mit...
-
Nun die Vor- bzw. Nachteile der einzelnen Ausführungen hab ich schon intus - ich wollte nur fragen ob eben die Kondensatoren in diesem speziellen Fall unumgänglicher Weise Elkos sein müssen (aus welchem Grund auch immer) oder ob sie aus reinen Kosten/Kapazitäts-Gründen gewählt worden sind!
-
So dann mache ich hier mal weiter, denn ich habe auch Probleme.
Habe einen MAX202 von Reichelt auf meinem Steckbrett aufgebaut (da 232 auch nicht gut gelaufen ist) und habe Kerko 100N Kondensatoren verwendet. Steckerbelegung müßte auch stimmen. Wieviele Adern müssen denn vom Stecker an die Schaltung? 3 oder? TXD RXD und GND.
HTerm empfängt auch was, aber nur Müll. Ist auch richtig eingestellt Com1 9600 Baud.
Der Code ist von Mikrocontroller.net. gehe davon aus das er richtig ist. Stimmt die Formel zur UBRR Berechnung? Habe von 4MHz auf 8MHz gewechselt. In PonyProg sind ausser chksel 2 alle von 0 bis 3 angekreuzt ( entspricht 8MHz soweit ich weiss)
Code:
.include "m8def.inc"
.def temp = r16
.equ CLOCK = 8000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1
; Stackpointer initialisieren
ldi temp, LOW(RAMEND)
out SPL, temp
ldi temp, HIGH(RAMEND)
out SPH, temp
; Baudrate einstellen
ldi temp, LOW(UBRRVAL)
out UBRRL, temp
ldi temp, HIGH(UBRRVAL)
out UBRRH, temp
; Frame-Format: 8 Bit
ldi temp, (1<<URSEL)|(3<<UCSZ0)
out UCSRC, temp
sbi UCSRB,TXEN ; TX aktivieren
loop: ldi temp, 'T'
rcall serout ; Unterprogramm aufrufen
ldi temp, 'e'
rcall serout ; Unterprogramm aufrufen
ldi temp, 's'
rcall serout ; ...
ldi temp, 't'
rcall serout
ldi temp, '!'
rcall serout
ldi temp, 10
rcall serout
ldi temp, 13
rcall serout
rjmp loop
serout:
sbis UCSRA,UDRE ; Warten bis UDR für das nächste
; Byte bereit ist
rjmp serout
out UDR, temp
ret ; zurück zum Hauptprogramm
Woran könnte es liegen?