Archiv verlassen und diese Seite im Standarddesign anzeigen : probleme mit usart atmega 8-16PU
hanspeter44
27.02.2009, 10:24
hi
So zuerst zur verwendeten HArdware: Atmega 8-16, HIN232CP, 5*1µFCondensatoren(für HIN232CP)
schaltplan des boards und code sind angehängt.
Ich habe follgendes Problem:
Wenn ich mein Programm auf mein eigenen µC Board teste und mit einem Pc über Hyperterminal verbinde kommen keine Zeichen an.
Mit dem STK 500 Board funktioniert alles einwandfrei. Auch die Spannungen am HIN232CP sind richtig. ich messe am TX die richtige spannung. Auch die Kondensatoren sind richtig gepolt.
Die einstellungen am Hyperterminal sind gleich wie wenn ich es mit dem STK 500 Board teste aber es funktioniert einfach nicht.
Fällt irgendjemanden villeicht ein was möglicherweise noch falsch sein könnte?
Mfg hanspeter44
linux_80
27.02.2009, 10:30
Hi,
RX-TX richtigherum (gekreuzt) verkabelt ?
Also mal von der eigentümlichen Pinbelegung deines Pegelwandlers abgesehen sollte die Hardware so richtig verschaltet sein. 1 ist Pin 8, 3 ist Pin7, 2 ist Pin 9 und so weiter. Sieht aus wie ein MAX232 von der Pinbelegung.
Hast du einen Oszi um die Signale an TX und RX zu messen?
Vielleicht stimmen ja bloß die Fuses nicht in deinem neuen mega8. Oder die Baudrate ist falsch weil du von einem falschen Prozessortakt aus gehst.
So das war genug ins Blaue geschossen.
Hoffe es hilft dir
Ach so ja du hast doch hoffentlich kein Crossover Kabel
sast
hanspeter44
27.02.2009, 19:48
zuerst danke für die schnellen antworten
@sast
ist ein hin232cp
fuses und baudrate müssen passen da es ja am stk 500 board funktioniert!
der fehler muss irgendwo zwischen µC und serieller schnittstelle liegen
-->beim hin232cp wahrscheinlich
was ist so schlimm an einem crossover kabel? beim stk 500 board funktioniert es auch mit dem crossover kabel
oder muss ich die nicht benutzten pins der seriellen schnittstelle
unbedingt auf masse legen? kann ich sie nicht einfach offen lassen?
mfg ralph
Hubert.G
27.02.2009, 20:59
Ist die Pinbelegung deines hin232 wirklich so wie du das im SV1 gezeichnet hast? Denn dann kann es sicher nicht funktionieren.
Die 232 haben alle eine einheitliche Pin-Belegung.
Hubert.G
27.02.2009, 21:07
Du solltest das richtige Schaltbild einfügen für den 232. Ob es ein hin oder ein max ist, ist vollkommen egal, aber man wird nicht in die Irre geführt.
Wenn du den Mega8 gesockelt hast, was ich doch annehme, dann nimm ihn aus der Fassung, mach eine Brücke zwischen Pin2 und 3. Wenn du a Terminal was eingibst, solltest du ein Echo bekommen. Echo im Terminal natürlich ausschalten.
Hubert.G
27.02.2009, 21:14
Hast du auf deinem Schaltbild den Quarz vergessen?
Wie soll es dann funktionieren.
hanspeter44
27.02.2009, 22:24
@hubert
1tens ja die pinbelegung passt
3tens ich verwenden den internen oszilator des atmega 8-16PU
so das mit dem echo hab ich getestet es funktioniert ich bekomme ein echo zurück!!! aber trozdem was bringt mir das jetz wo liegt der fehler???
das programm im µC müsste funktionieren -->es geht ja wenn ich den atmega8-16 ins stk 500 board stecke!!!!
die unbenutzten pins der seriellen schnittstelle hab ich jetz so verbunden wie am stk 500 board hat aber auch nichts geholfen
so hätt noch eine frage: welche spannungen müssen eigentlich an Tx und Rx sein? Weil ich messe ~ -9V an Tx stimmt das oder muss da nicht +9V sein????
das µC-board macht mich fertig ma liebsten würde ich es gegen eine wand werfen ](*,) . Das ich einfach nicht auf den Fehler komme!!!!
MFG hanspeter
beim Crossover Kabel sind zb rx und tx vertauscht im Vergleich zu einer normalen RS232 Verlängerung
Dann würde aber auch bei der Brückenvariante nichts zurückkommen. Sollte also soweit stimmen.
Kenne leider das STK nicht. Könnte mir aber vorstellen das da ein Quarz drauf ist.
Wenn das Programm gleich ist, sollte es eigentlich außer den Fuses nichts mehr geben was im Wege steht, es sei denn dein Kontroller warten auf irgend einen Eingangspegel der am STK zwar immer da ist aber bei deinem eigenen Board fehlt oder so was in der Richtung.
Steckst du den Mega8 vom STK auf dein Board oder ist das ein anderer.
Poste doch mal die Fuses Einstellungen
sast
Hubert.G
28.02.2009, 09:34
Das mit der Pinbelegung habe ich schon gesehen, ist etwas eigenwillig und irreführend bei dir im Schaltplan.
Wie du den internen Oszillator auf 16MHz genau bringst, musst du mir erklären. Am STK ist auch der interne Oszillator aktiv? Fuseeinstellung?
Ohne Quarz wirst du nur mit viel Glück etwas vernünftiges zusammenbringen. Am besten verwendest du einen Baudratenquarz.
Wenn das Echo wie beschrieben funktioniert, dann weisst du das der Fehler im µC liegen muss. Der 232, Stecker und Kabel funktionieren, nichts vertauscht.
hanspeter44
28.02.2009, 20:37
so danke für alle antworten
hab das problem mitlerweile selbst gelöst!
Es war ja nur der µC Sockel schlecht angelötet sodass Rx,Tx nicht verbunden waren - genau nur die zwei pins
ist der quarz wirklich so wichtig?
genügt nicht der interne oszillator? stimmt schon das man den internen oszilator nur bis 8Mhz betreiben kann aber ich glaube das genügt
Mfg hanspeter
Hubert.G
28.02.2009, 21:27
Wenn du im Betrieb dann mal wirre Zeichen am Monitor hast oder der µC nicht tut was du willst, wirst du nach einigem suchen auf die Idee kommen doch einen Quarz einzuöten.
BlueNature
28.02.2009, 21:34
Servus,
den internen RC-Oszillator mit 8MHz kannnst du schon benutzen, aber er ist nicht so timingtreu wie ein richtiger externer Quarz. Wenn du aber Daten über die serielle Schnittstelle senden willst, ist es sicherer einen Quarz (z.B. 7,3728MHz+2x22pF) zu spendieren. Zudem ist bei 8MHz ein Problem mit der richtigen Baudrate (Baudratenfehler als Abweichung in %). Das hast du mit o.g. Quarz nicht.
Abweichung bei 8MHz bei 19200 Baud = 0,16% ideal, der RC-Oszillator tickt aber auch noch einiges daneben. Ist also höherer Fehler.
Abweichung bei 7,3728MHz bei 19200 Baud = 0,00% mit Quarz eben ein paar millionstel (ppm) Abweichung.
Grüße Wolfgang
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.