Hallo! Ich verwende den Atmega8 und habe alle Schaltungen wir im Tutorial gezeigt aufgebaut. Bis auc das UART funktioniert auch alles wunderbar. Beim UART kommen keine Signale im PC an. Auf einer anderen HP habe ich folgendes gefunden: "Die nötigen Pegel auf der RS232 werden wie gewohnt durch einen MAX232 bereitgestellt. Bitte achten Sie darauf, einen MAX232-Sub-Typ zu kaufen, der wie angegeben, mit 100nF-Kondensatoren arbeitet. Beim MAX232ACPE ist das zum Beispiel der Fall. Der "krumme" Quarz ist ein billiger Massentyp. Frequenzen wie 3,6864 MHz, 7,3728 MHz und 9,216 MHz erlauben eine fehlerfreie Generierung von Standard-Baudraten wie 9600, 19200, 38400 und 115200. Sie sparen sich viel Ärger, wenn sie eine dieser Frequenzen nehmen. Die Beispielprogramme von mir basieren auf 3,6864 MHz. " 1. Kann es am Quarz liegen? Im Tutorial werden doch auch 4 MHz genommen... 2. Vielleicht habe ich so einen Sub-Typ nicht?! Im Conrad hat er gesagt, dass er den nicht da hat aber mit einen Ersatz gibt. Beschriftung: 1. Zeile "3CD29RM" - 2. Zeile "MAX232N" Links ist noch ein Logo, das aber so klein ist, dass ich es nicht erkennen kann. Danke für Eure Hilfe. Gruß Andreas
dazu werfe man einen Blick auf die Seite www.maxim-ic.com, und suche dort nach einem MAX232N. Und für das Logo kaufe man sich eine Lupe oder eine Logo-Lese-Brille...
Dann mach das mal: MAX232N bringt keine Treffer, MAX232 wiederum so viele, dass ich mich nicht mehr auskenne. Gibt es noch andere Hersteller von einem MAX232N?
Hi, leider kenne ich den ATmega8 nicht, bis jetzt experimentiere ich mit dem Atmega161 oder ATmega162. Bei mir hat sich gezeigt, das der Hersteller des Max232 nicht ausschlag geben war. Jedoch ein stabile Tabtfrequenz. Ich betreibe beide MCU's mit einem 8MHz Quarz, der mir 2 mal 22pF Kondensatoren nach Masse geschaltet ist. In dieser Konstellation und mit der Richtigen Einstellung der Fuse-Bit's habe ich eine stabile UART aufbauen können.
und sonst passt alles bei der schaltung bzw. beim Programm (USART richtig eingestellt?) hast du auch darauf geachtet dass die Verbindung zum PC richtig ist (wegen Tx und Rx -> gekreuzt, net gekreuzt?) gruß, semo
Auf der Webseite von TI steht: Operates From a Single 5-V Power Supply With 1.0-µF Charge-Pump Capacitors Wenn du jetzt nur 0.1µF = 1000nF Kondensatoren benutzt hast, könnte das ein Problem werden. Wenn du nochmal aufs Logo des Chips guckst, solltest du die Form des Staates Texas mit einem i darauf erkennen ;) Ausserdem werden beim 4MHz-Quarz nur bestimmte baudraten einigermaßen korrekt generiert. Siehe dazu Seite 157 des ATmega8 Datenblattes. Alles was über 1% Fehler macht, wird nicht empfohlen!
Hallo! Danke für Eure Antworten. @Ralph: Soll ich das bei meinem 4 MHz-Quarzt auch einfach mal versuchen? Schaden kanns ja nicht oder? @semo: Ja, die Schaltung ist garantiert richtig, hab sie x-mal überprüft. Mein Serielles Kabel ist auch 1:1 beschaltet und nicht gekreuzt. @Christof: Ich hab mich bei den Kondensatoren auf das Tutorial verlassen. Da werden 22µF genommen. Das Logo hab ich aber immer noch nicht wirklich erkannt ;) Gruß Andreas
Wenn du einen falschen Quarz und damit eine falsche Baudrate hast, dann wirst du auf deinem Terminalprogramm immer noch etwas sehen. Allerdings nur irgendwelche wirren Zeichen. Wenn du nun garnichts siehst dann liegt es wirklich daran das du 1uF Kondensatoren fuer deinen MAX232 brauchst. Das kannst du uebrigens ganz einfach sehen indem du dir mal ein beliebiges Datenblatt eines MAX232 nimmst und mal die Spannung an den Kondensatoren misst. Du musst da irgendwo +10V und an anderer Stelle -10V messen koennen. Olaf
hi, die gute alte rs232 entsprach dem v24 standard, als die erde noch 'ne scheibe war. der uartbaustein im pc ist locker in der lage auch niedrigere pegel zu lesen, wenn's keine ewig lange störverseuchte leitung ist, reicht 1 transistor, um das tx-signal des avr zu invertieren, bis jetzt hat jeder pc (bei mir) auch den ttl-pegel 1a interpretiert. die kondenstoren am max232 sind nur für die ladungspumpe um den v24 pegel (+12v/-12v) zu erreichen, also eher unkritisch, wenn's keine elend lange strippe wird. gruss, harry
Hi, bezogen auf deine Aussage "Auf einer anderen HP habe ich folgendes gefunden:" kommt wohl von der Rowalt Seite, oder? Dort steht aber auch: MAX232A: Unbedingt A-Typ, andere Untertypen können nicht mit 100nF-Kapazitäten arbeiten. Guter Ausweichtyp: ST232CN. MAX232-Typen für Elko-Betrieb gehen aus Platzgründen nicht. und Quarz: Das LowProfile-Gehäuse (-LP-Typen) ist vorteilhaft, aber nicht unbedingt erforderlich. Keine „ähnliche“ Frequenz wie z.B. 4 MHz nehmen, sonst stimmen die Baudraten nicht. Gruß Frank
sorry, soll heißen Quarz: Das LowProfile-Gehäuse (-LP-Typen) ist vorteilhaft, aber nicht unbedingt erforderlich. Keine "ähnliche" Frequenz wie z.B. 4 MHz nehmen, sonst stimmen die Baudraten nicht.
@Frank: Ja, diese Seite hab ich gemeint. Aber hier im Tutorial werden doch 4 MHz eingesetzt. Und es hat doch bestimmt bei vielen mit 4 MHz funktioniert, sonst hätte er doch sein Tutorial geändert. @Olaf Du meinst also, dass mein MAX232 ein anderer ist als im Tutorial und ich deshalb andere Kondensatoren brauche? 1 µF Elkos? Aber sonst geschaltet wie im Tutorial angegeben? Hab jetzt mal gemessen: Elko an 1 und 3: 4,5V Elko an 4 und 5: 9,0V Elko an 2 und 16: 4,0V Elko an 6: 8,6V Elko an 15/16/GND/VCC: 4,9V
Es war bei mir noch nicht notwendig ein Tutorial zum AVR zu lesen, da mir bisher immer das Datenblatt gereicht hat. Daher kann ich da nichts vergleichen. .-) Selbst wenn du also noch gerne Tutorials liesst solltest du vielleicht doch mal langsam auch das Datenblatt deines AVRs lesen. Dann kannst du dir selber ausrechnen welche Baudraten damit moeglich sind und vor allem auch welche Abweichungen es mit deinem Quarz gibt. Es wird naemlich auf jedenfalls so sein das ein 4Mhz Quarz nur einige wenige Baudraten einigermassen genau hinbekommt. Mit anderen Worten es haengt auch davon ab welche Baudrate du nun gewaehlt hast. Fuer die 1uF Kondensatoren kannst du ganz normale Elkos nehmen oder auch Tantalkondensatoren. Auch da empfiehlt sich das lesen des Datenblattes um zu sehen wierum man die anschliesst. Ansonsten stimme ich auch darin ueberein das man einen MAX232 eigentlich garnicht braucht. Ich setze den zwar auch beruflich bei Dingen ein die fuer teuer Geld verkauft werden und im industriellen Umfeld mit groesseren Leitungslaengen verkauft werden, privat wuerde ich das aber niemals machen. Es reicht in der Tat den Ausgang eines Controllers zu invertieren. (BC547, 4.7k, 10k) oder wenn man ganz faul ist nimmt man irgendeinen HC-MOS als Inverter. Auch das Eingangsignal muss man nur mit einer Z-Diode (4.7V) und einem Widerstand (4.7k) begrenzen und dann nochmal invertieren. Olaf
Ich habe zum ersten Mal mit µC zu tun - ich war froh dass ich ein Tutorial gefunden habe ;) Hast du zufällig einen Schaltplan für eine Schaltung ohne MAX232? Und eventuell eine Teileliste? Aus der obigen Beschreibung könnte ich keine Schaltung bauen - was aber an mir liegt ;)
"Serielles Kabel ist auch 1:1 beschaltet und nicht gekreuzt." ähm.. täusch ich mich oder ist das der Fehler? Das Kabel zu einem PC o.ä. ,muss doch unbedingt gekreutzt sein, oder? TX vom Atmel in RX des PC und RX vom Atmel in TX des PC... bei zusammengeschalteten Sende- und beide Empfangsleitungen können die sich doch nicht unterhalten... greetz Danny
Ich glaube das wird schon in der Schaltung erledigt dass sich TX und RX jeweils treffen. Oder? http://www.mikrocontroller.net/tutorial/uart.htm Steht ja auch extra drin, dass man KEIN Nullmodemkabel nehmen soll - und nur Nullmodemkabel sind gekreuzt...dachte ich mal
Welche Hardwareversion hast du gebaut? Bei der von Rowalt musst du ein Nullmodemkabel nehmen! Hier im Tut nicht. Schau die mal die Belegung des 9pol D-Sub an. Bei Rowalt geht RxD auf 2 und TxD auf 3. Hier im Tut genau umgekehrt! Ich habe das Board von Rowalt nachgebaut, mit dem ATMega8 (aus dem neuen Buch). Bei mir funzt die UART, aber mit einem krummen Quarz! werde es am WE mal mit einem 8Mhz versuchen.
@Andreas: naja ich bin von meiner Betrachtung von der Strecke zwischen MAX232 und PC ausgegangen und die sind ja irgendwo gekreuztz... Taktprobleme vom Quarz her denk ich sinds hier nicht, denn ich hab mal in Bascom geguckt (da ist ein Rechner wo man Baudrate und Quarz einstellen kann und er errechnet den %ualen Fehler. Liegt bei Baudraten bis 19200 bei 0,16%, ich glaub des ist gering genug. Erst bei 28800Baud ghet der Fehler auf über 7%) womit programmierst du? Versuch doch sonst mal Bascom, da gibst einfach Quarzfrequenz und Baudrate ein und er berechnet auch das serielle Protokoll. Vielleicht hast ja nur einen Zeitfehler beim Programmieren eingebaut. kannst du nicht mal eine LED mit Vorwiderstand an TX vom Atmel anklemmen und gucken ob er überhaupt etwas sendet? Müsste dann ja fröhlich blinkern... greetz Danny
Hallo, bunutzt du zum ersten mal nen Mega für die UART? Ich habe mir an diesem problem nämlich auch die Zähne ausgebissen. Du mußt mei den Mega's den Quarz mit den Fuses bits erst konfigurieren, ansonsten läuft der nur mit dem internen 1MHz tackt. Näheres findest du dazu im Datenblatt. Mit PonyProg kanst du die fuses über das Schloß-Symbol aufrufen und auch ändern. Bei mir hat's daran gelegen.
Hallo! Ja, ich mach das alles zum ersten mal. Du meinst bestimmt den Absatz in http://www.mikrocontroller.net/tutorial/io-basics.htm Das habe ich alles so eingestellt, daran kanns eigentlich nicht liegen - außer man muss noch mehr machen... Vielleicht probier ich jetzt erstmal die Version ohne MAX232. Kann ich an PD0(RXD) und PD1(TXD) direkt den SubD-Stecker ranmachen? Da kommen doch sicher schon die Impulse raus, die dann halt nicht auf +/-12V geändert werden sondern als 5V-Impulse in den PC gehen...soll ja auch reichen, habe ich erfahren.
Könnte sein, dass der PC deine Signale versteht, aber ich glaube kaum, dass dein AVR gerne -12/12V um die Ohren haben möchte!
Der Arme...ok, das will ich ihm natürlich nicht zumuten. Hat jemand eine Schaltung für UART ohne MAX232?
In der Tat sorgen die verschiedenen 232 für ne Menge Verwirrung. Deshalb wurde irgendwann die 202 Numerierung eingeführt, d.h. alle 202 laufen durchgängig mit 100nF-Kondensatoren, egal ob MAX202, HIN202 usw. Ich schreibe also in meine Schaltpläne immer 202, das ist dann eindeutig. Peter
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.