Hallo, ich habe die Schaltung aus dem Tutorial 1:1 nachgebaut und den quellcode abgetippt und auf mein myavr board geladen. Leider tut sich weder in hyper terminal noch in HTERM irgendwas. Wo könnte da der Fehler liegen? Schaltung habe ich schon mehrfach kontrolliert. Danke.
Muss ich für die verwendung des externen quarzes noch ein fusebit umsetzen? (täte mich dann aber wundern, wenn ihr es nicht erwähnt hättet)
Toll. Das bringt mich ja unglaublich weiter. Ich schätze mal, das mit dem Beispielcode aus dem tutorial keine fusebits gesetzt werden. Mit meinem My AVR Prog Tool, gibt es die möglichkeit das zu tun, ich habe aber keine Ahnung, was ich dafür einstellen muss. Weiß das jemand? Bei EXT: soll noch ein zweistelliger HEX wert eingetragen werden.
Oliver D. wrote: > Muss ich für die verwendung des externen quarzes noch ein fusebit > umsetzen? Selbstverständlich. > ich habe die Schaltung aus dem Tutorial 1:1 nachgebaut und den quellcode > abgetippt und auf mein myavr board geladen. Verstehe ich nicht. Wie kannst du die Schaltung nachgebaut haben, wenn du das myavr Board verwendest? > Ich schätze mal, das mit dem Beispielcode aus dem tutorial keine > fusebits gesetzt werden. Korrekt. Per Code kann man keine Fuses (Fusebits) setzen. Das Setzen von AVR Fuses macht man in der Software des AVR ISP Programmers. In deinem Fall wäre das wohl das "My AVR Prog Tool". Wie das zu bedienen ist, sollte im Handbuch stehen. Empfehlungen zur Einstellerei der Fuses ("Gib mal einen HEX-Wert!") sind die "zweitliebsten" Antworten hier im Forum. Sie sind nämlich sehr dankbare Antworten, weil man weit ausholen darf, um jemanden was zu erklären, was dieser nicht schafft, im Datenblatt oder Tutorials nachzulesen. Und weil man mit hoher Misserfolgsrate bei nicht peinlich genauer Befolgung und Unklarheiten einen fremden AVR schrottet und dies anschliessend im Forum unter die Nase gerieben bekommt.
Welche? Diese http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Der_Mikrocontroller Mit dem "AT90S4433" oder mit dem "Atmega8"? Und mit dem "Quarz statt Quarzoszillator" oder mit dem "Keramikschwinger/Resonator- statt Quarz/Oszillator"? Wieviele MHz?
Also ich habe folgendes Schaltung nachgebaut: http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART Direkt oben ist ne Schaltung mit dem RS232 aufgebaut. Diese habe ich nachgebaut. Angeshclossen ist das ganze auf einem MY avr Board V 1.52. Leider steht auf dem Quarz keine Frequenz, ich denke aber das es ca. 4mhz sind.
Übrigens, mein "schul" board, funktioniert einwandfrei. Da haben wir einen AT89S52 sowie eine selbstgebaute Platine fürs UART. Die funktioniert prima, allerdings habe ich nur gelernt das ganze in C zu programmieren... So langsam wollte ich aber mal mit assembler anfangen und habe mich daher für das myavr und den atmega8 entschieden.
Erstmal ein Hinweis zur Quarzfrequenz: für UART nur Baudratenquarze benutzen, sonst gehen nur wenige unschöne Baudraten (hab bei meinem aktuellen Projekt auch nen 16MHz wieder runtermachen müssen ;-) : 1,8432 MHz 3,6864 MHz 7,3728 MHz 11,0592 MHz 14,7456 MHz 18,4320 MHz (Bezugsquellen wären CSD für "normale Größen" oder Farnell/RS [z.B. Rakon, Fox] für kleine flache SMDs) Fuses ändern mit dem myAVR geht mit dem Workpad: kleines Copy/Paste aus dem Bootloaderartikel http://www.mikrocontroller.net/articles/AVR_Bootloader_FastBoot_von_Peter_Dannegger Der myAVR Dongle unterstützt leider keine Fuses mit AVRDude. Abhilfe liefert hier jedoch das myAVR Worpad Plus. Die Demo-Version (reicht hierfür) kann unter http://www.myavr.de/download/myAVR_WorkpadPLUS_Demo.exe - myAVR Workpad Plus Demoversion heruntergeladen werden. Nach dem Installieren und starten im Menü Extras – Fuse- und Lock-Bits wählen. Das Programm ermittelt automatisch den aktuellen Status. Je nach Controller steht der Bootloader Support unter High oder Extended Fuses. Du musst auf externen Quarz umstellen. Hab das myAVR Board gerade nicht hier, deshalb mal die Bezeichnung ausm AVR Studio, sollte aber ähnlich sein: Ext. Crystal/ Resonator Low|Medium|High Freq Low|Medium|High hängt von der Frequenz ab. Da steht ne Tabelle im Datenblatt. Bei höhren Freuqnzen kannst noch die CKOPT fuse aktivieren. Ciao Karsten
Ob ASM oder C ist eh immer ne Diskussion für sich. Hat beides Berechtigung. Ich benutze für den UART die Lib von Peter Flury http://jump.to/fleury Ist in C geschrieben und liegen auch schöne Beispiele dabei. Auch wie man Daten direkt ausm Flash sendet um RAM zu sparen. Karsten
Jo, interessant währe für mich mal, wie man Z.B. mit dem SP12 von KEN Huntington die Fusebits setzen kann. Wo man halt was einstellen muss.... Gut währe auch, wenn man das mal im AVR Tutorial eintragen würde. Ich kann mir nicht vorstellen, das man da als Anfänger alleine drauf kommt, das soetwas gemacht werden muss und vor allem wie. Die frage sollte daher also schon mehr als 1 mal aufgetaucht sein, warum das programm nicht funktioniert.
ALso ich habe jetzt mit MYAVR Workpa Demo die Fusebits gelesen (Danke für den Tipp mit der software!) Es stand auf 1MHZ internal irgendwas. Jetzt habe ich auf EXT. Crystal/resonator MED FREQ, start_up time: 16CK+4ms gestellt. Es gibt da mehrere einstellungen, auch mit 1k CK +0ms. Ich probiers erstmal so.
Oliver D. wrote: > Gut währe auch, wenn man das mal im AVR Tutorial eintragen würde. > Ich kann mir nicht vorstellen, das man da als Anfänger alleine drauf > kommt, das soetwas gemacht werden muss und vor allem wie. Hmm, grundsätzlich sollte jemand, der dem AVR Tutorial von Anfang an gefolgt ist, an dieser Stelle keine Probleme mehr haben. Die ganze Notwendigkeit der Einstellerei der Taktquelle, wird in der ersten Lektion bzw. der Einführung in den Mikrocontroller erklärt. Mit Hilfe der Verweise auf den Artikel AVR Fuses und das Datenblatt des AVRs müsste eine Einstellung der Fuses gelingen. Kritisch ist die Angabe mitten drin als eine Art Kochrezept ("Trage HEX xy als Fuses ein"). Dazu gibt es technisch gesehen eine zu grosse Anzahl von Programmer/Program Tools Kombinationen und möglichen Testboards/AVRs. Und in Folge würden sich IMHO bestimmt mehr Leute melden, dass ihr Testboard so nicht funktioniert bzw. dass es jetzt gar nicht mehr funktioniert, als andersrum Leute, die nicht wissen, was sie eintragen sollen und denen man ihre Hardware/Software "aus der Nase ziehen kann". Bei einem kommerziell vertriebenen Board würde ich erwarten, dass in dessen Anleitung drin steht, mit was man die Fuses auf dem Board programmiert und welche Werte grundsätzlich in Betracht kommen (Art der Taktquelle). Dennoch - die aktuellen Werte für den konkreten AVR, den der User eingesetzt hat, muss der User selbst aus dem Datenblatt des AVR herausfinden oder der Hersteller macht eine Tabelle o.ä. für alle auf seinem Board einsetzbaren AVRs.
Hmm, ich habe mir das irgendwie ein bischen einfacher vorgestellt :( Ich habe mal ein oszilloskop am ausgang des uC an TXD angeschlossen. Es kommt also ein konstantes signal heraus. Kann der Fehler nun nurnoch an meiner MAX232 schaltung liegen? (neben dem falsch eingestellten quarz takt?) Achja, dem tutorial bin ich übrigens von anfang an gefolgt!
Oliver D. wrote: > Hmm, > > ich habe mir das irgendwie ein bischen einfacher vorgestellt :( > > Ich habe mal ein oszilloskop am ausgang des uC an TXD angeschlossen. > Es kommt also ein konstantes signal heraus. > > Kann der Fehler nun nurnoch an meiner MAX232 schaltung liegen? > (neben dem falsch eingestellten quarz takt?) Dann mess doch mal, was hinten am MAX232 rauskommt. Und dann nochmal die andere Richtung. Was ich bei anderen schon öfter gesehen habe ist, dass am MAX232 die Kondensatoren falsch angeschlossen oder verpolt waren.
Hmm erstmal habe ich gerade das problem, das der uC nicht mehr reagiert. Laut dem AVR Fuses tutorial, habe ich auf 0000, also external clock gestellt. Nun habe ich keine verbindung mehr zum chip, trotzdem ein quarz drauf ist :( bissl komisch ne?
So habe nen neuen chip drinne. So jetzt mal das oszilloskop am ausgang des Max. Ausgangspegel ca. 8V (sollte das nicht mehr sein?) Netzteil auf exakt 5V. Das signal sieht ähnlich dem des Txd am uC.
Also der Pegel ist wohl in Ordnung. An meinem anderen 8051er Board habe ich denselben ausgangspegel und es funktioniert gut.
Wie sieht es in der anderen Richtung aus? Was für Pegel liegen am MAX232 am Eingang an (also das Signal vom PC) und was liefert der MAX232 an den uC? Was hast du für ein Kabel verwendet? Nullmodem oder 1:1? Hast du GND vom Kabel/RS232-Buchse verbunden?
Soo, die schaltung aus dem tutorial ist der übeltäter. Entweder ist mein bread board kaputt oder ich spinne ;) Mein 8051er funktioniert an der schaltung ebenfalls nicht. Mit dem AVR an meiner gehts nun endlich! Zwar kommt momentan nur Mist heraus, aber lieber grob unkorrekt als komplett daneben ;) Ich denke es liegt nun nurnoch am quarz, denn ich bekomme momentan eine konstante zeichenfolge geschickt. HHÈÈhhHHHHHHhHHHHHHHHHHHHHHHHHHHHHHÈ hhhHHHHHhhHHHHHHhHHHHHHH6hhhHHHHHHHH hhhHHHH hhhHHHHHhhHHHHHHhHHHHHHH6HHHHHHÈÈhhhHHHHHHHHHÈÈÈ hhhHHHHH So siehts aus ;)
Die Schaltung ist schon ok so. Da kann man ja auch kaum was falsch machen. Probleme könnte das Vertauschen von TX und RX geben. Oder Du hast die Anschlüsse vertauscht. Man kann ja bei vielen RS232 ICs mehrere Leitungen transferieren. Hast du 100nF Keramisch am 5V Pin? Karsten
Hi, Leitungen nicht vertauscht und 100nF Keramisch an 5V. Ich habe nun mit my AVR Quickprog die möglichkeit gefunden, den externen Takt zu verwenden. Da kann ich per mausklick den externen quarz aktivieren. Mit dem Programm HTERM bekomme ich dann auch datengewusel angezeigt. Bei 9600Baud. Mit Hyper terminal klappts nicht, da hängt sich hyper terminal bzw. der pc auf. (bei 9600) Bei 1200 bekomme ich datengewusel angezeigt! Woran könnte das denn liegen? Und wie kann ich testen ob der uC nun mit dem externen takt arbeitet?
aaaaaaaaaaaaah, endlich. Es funktioniert. Bei 9600 Baud klappts nicht richtig. Ich habe im quellcode mal auf 1200 gestellt. Klappt nicht so gut. Von 4Mhz bin ich dann mal auf 3,8Mhz gegangen und es klappt einwandfrei! Das 200khz so einen Unterschied machen ;) Danke für die Tipps. Ich werde nun noch versuchen die Schaltung aus dem Tutorial hinzubekommen.
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.