Hallo, Hat jemand Erfahrung mit dem ATmega8515L und dessen USART ? Ich wollte eine eigentlich recht einfache Test-Routine schreiben, die ein wenig Text zum PC schickt. Dort habe ich ein Terminal-Programm laufen. Es kommt zwar was an, aber nur Datenmüll. Irgendwas scheint da nicht zu stimmen mit der Baud-Rate bzw. den sonstigen Parametern. Ich bekomme immer einen Framing-Error angezeigt (im PC Terminal Programm). 9600 BPS, 8 Datenbits, 1 Stopbit, keine Parität, so war das Terminal-Programm eingestellt und der ATmega8515 (siehe Anhang) auch. Trotzdem kommt nichts an. Ich finde den Fehler einfach nicht (mangelnde Erfahrung). Zwischen PC und ATmega8515L war selbstverständlich ein MAX232 Treiber geschaltet. Einen 4 MHz Quarz habe ich auch verwendet. Hätte also funktionieren müssen. Gruß, Joachim
Hi das hier void rs232_init(void) { UBRRL = 25; //Baudrate 19200 UCSRA|=2; //Doppelte Baudrate UCSRB=0x18; //RX und TX erlaubt } Initalisiert USART eines ATMega8515 auf 38400 8N1 bei 8MHz Takt. Alles andere was du in deiner Routine machst ist unnötig. Insbesondere das ändern von DDR und Port-Register würd ich lassen. Bist du dir auch sicher das der AVR mit 4MHz läuft? Ab Werk ist nämlich der interne RC-Oszi eingeschaltet und der läuft mit 1MHz. Du kannst deine Routine also auch mal mit 2400Baud testen. Wenns dann geht weist du an was es liegt. Matthias
Hallo Matthias, Besten Dank für den Tip mit dem internen RC-Oszillator. Ich habe mal die Baud Rate auf 2400 BPS runtergestellt, wie du vorgeschlagen hast - und siehe da, es hat sofort funktioniert. Nach dem Aktivieren des externen 4MHz Quarzes hat die Sache dann natürlich auch mit den gewünschten 9600 BPS funktioniert. Mir ist das bisher entgangen, dass sich da beim ATmega8515 im Vergleich zum AT90S8515 etwas geändert hat, was die Taktung anbelangt. Bisher gab es ja keinen internen Oszillator. Aber man lernt halt nie aus. Eine Kleinigkeit geht aber leider immer noch nicht. Aber das liegt eher am Compiler. Den printf Befehl kann ich leider nicht verwenden. An der FH ging das immer. Dort wird aber ein ganz anderer Prozessor Typ verwendet (80C166 von Siemens). Die hatten die Verwendung des printf Befehls offensichtlich vorgesehen. Aber das lässt sich ja leicht umgehen, indem man eine eigene Prozedur schreibt, die das gleiche erledigt. Nun bin ich mal gespannt ob der ATmega8515 mehr aushält als der AT90S8515. Von dem sind mir schon 2 Stück kaputtgegangen (vermutlich wegen ESD). Immer nach dem Umprogrammieren in der Schaltung war er futsch - sprich einzelne Port-Ausgänge haben einfach nicht mehr funktioniert. Mal sehen wie sich der ATmega8515 da aus der Affäre zieht. Bisher läuft er noch einwandfrei. Nochmals Dankeschön, Gruß, Joachim
>Immer nach dem Umprogrammieren in der Schaltung >war er futsch - sprich einzelne Port-Ausgänge haben einfach nicht >mehr funktioniert. Wie sieht deine ISP Schaltung aus ? Sind diese ISP-Pins normalerweise als Ausgang oder Eingang beschaltet ?
Hallo Peter, Die ISP Pins haben eigentlich sonst keine Funktion. Sie dienen nur dem Programmierzweck bei meiner Beschaltung. Ich hab die Beschaltung mal als GIF-File upgeloadet. Vielleicht ist ja doch irgendwo noch was falsch. Zu den Defekten kann ich nur sagen: Jedes mal, wenn ich den ISP Stecker aufgesteckt hab und den Controller umprogrammiert hab - was auch funktioniert hat, war der AT90S8515 danach kaputt. Allerdings hab ich wohl den Fehler gemacht, dass das Parallel-Kabel schon am PC angeschlossen war während dem Aufstecken des ISP-Connectors. Und der PC war natürlich schon eingeschaltet. Möglicherweise kommt es daher. Es kann aber auch sein, dass es ein ESD Problem ist. Beim Anschließen kann es schon passiert sein, dass ich den ein oder andern Pin mal berührt hab. Bin aber mal gespannt, was andere für Erfahrungen auf diesem Gebiet gemacht haben. Gruß, Joachim
Hi ist das ein Adapter ohne Treiber-IC? War deine Zielschaltung zum Zeitpunkt des Ansteckens schon an Spannung? Mit welcher Spannung läuft dein AVR? Matthias
Hallo Matthias, Ja das stimmt. Es handelt sich um einen Adapter ohne Treiber-IC. Die Zielschaltung hatte zum Zeitpunkt des Ansteckens auch bereits Spannung (PC ebenfalls). Der AVR läuft in meiner Zielschaltung mit 5V. Da die parallele Schnittstelle am PC ebenfalls 5V hat dürfte es eigentlich keine Probleme geben. Ist aber wohl doch so. Vermutlich kam es auch so zum Defekt. Allerdings ist mir der Grund nicht ganz klar. Hängt das mit dem Anschließen des Connectors zusammen (gibt es da evtl. kurzzeitige Spannungsspitzen ?) Gruß, Joachim
Hi vom Prinzip spricht eigentlich nichts dagegen. Ich (tm) bevorzuge aber trotzdem die Variante mit Treiber-IC und arbeite seit Jahren damit problemlos. Matthias
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.