Hilfe Leute ! ich bin am verzweifeln. Normalerweise löse ich meine Probs immer irgendwie selbst, aber diesmal weiß ich im Moment nicht so ganz weiter. Darum hoff ich auf ein paar Freakz unter euch. Und ich weiß da gibt's noch einige unter euch irgendwo da draußen die's drauf haben... Folgendes Problem: Hab einen Atmel 89C0251-Flash Controller mit meinem 80C535-System programmiert. Programmiergerät gebaut und auch eine Experimentierplatine für den Flash Controller. Mit Max232, 5 Volt SPannungsregler, und 24 Mhz Quarz für den ATmel. Programmieren etc. funzt einwandfrei. Und mein Controller führt seine Programme auf dem Experimentierboard auch aus. Aber meiner Meinung nach im falschen Takt. Ich hatte immer das Gefühl das er zu langsam läuft. Das machte bei den ersten Tests (LED an/ausschalten) auch keine Probleme. Dann aber wollte ich den Uart programmieren um mit dem PC über MAx232 zu kommunizieren. Obwohl ich meinen 80C535 in und auswendig programmiert habe und kenne, und daher ziemlich gut bescheid wußte was ich tue und der at89c51 ja ziemlich genau gleich aufgebaut ist, konnte ich einfach nix vernünftiges senden. Ich hab gedacht ich spinn, ich konnte einfach keine reload werte für den timer oder prescaler finden in denen ich irgendwas vernünftiges senden konnte. Wollte eigentlich nur mal den ascii-wert 'a' übertragen. aber heraus kam nur müll. Irgendwann hab ich es dann aufgegeben. das nächste komische war das eine zeitschleife die auf meinem 80c535 mit 12Mhz normalerweise 1 sekunde dauert, auf dem 24 Mhz atmel ca. 6 sekunden brauchte... ? Heute hab ich da ich selbst kein oszi hab, mein ganzen Kram zusammen gepackt und hab in einem radio u. fernsehgeschäft das oszi für ne stunde in beschlag genommen und mal ein paar frequenzen gecheckt. der Uart sollte eigentlich nach meiner programmierung (siehe unten) mit 9600 Bps senden brauchte aber statt etwa 100 mikrosekunden pro periode etwa 300 also das 3-fache. das signal auf dem max232 schien identisch zeitlich verzögert zu sein. also hab ich mir gedacht schaun wir nochmal die taktfrequenz an. auf dem quarz steht 24 Mhz 32pf. hab dann mit dem oszi (altes ding) so gut es ging auf dem eingang XTAL2 des atmel versucht die taktfrequenz zu erkennen. heraus bekommen hab ich eine periodendauer von etwa 0,12 mikrosekunden. das würde aber einer frequenz von etwa 8,3 Mhz entsprechen. Ich bin mir nicht sicher ob ich die frequenz richtig messen konnte, aber auch mit einem anderen quarz ging es nicht. Meine frage ist nun : Wie zur Hölle ist es nur möglich das der Controller einfach nicht im richtigen Takt läuft ? Ich kann dadurch nix sinnvolles mit dem Controller anfangen. Ich bin mit meinem Latein jedenfalls am Ende.... Und hoffe das mir hier vielleicht jemand Rat geben kann, damit ich wieder ruhig schlafen kann. so long c ya in the matrix or join me in death hier noch mein testcode. vielleicht hab ich ja doch was übersehen... ;*********************************************************************** **** ; Version : 1.0 ; Datei : scoware.a51/hex ; Bemerkung : only the sky is the limit ;********************************************** æcAT89C0251 ***************** org 00h ; Startadresse im FLASH mov sp,#30h ; Stack auf 30h hinter Registerbänke und Bit-Area setzen orl PCON,#80h ; Baudratenverdoppler setzen mov TMOD,#20h ; Timer 1 in 8-Bit Auto-Reload Modus aktivieren mov TH1,#243 ; Reload Wert setzen für 9600 bps mov TL1,#243 clr SM0 ; Uart-Mode ,8-Bit, variable Baudrate über Timer 1 setb SM1 setb REN ; Empfang Uart aktiviert setb TR1 ; Timer 1 aktivieren START: mov a,#'a' mov sbuf,a ; A in Senderegister jnb TI,$ ; warten bis Senden fertig clr TI ; Sendeflag löschen ;cpl P3.7 ; die Arbeit durchführen ; mov r7,#1 ; m3: mov r6,#8 ;-------------------- ; m2: mov r5,#250 ; m1: mov r4,#250 ; djnz r4,$ ; djnz r5,m1 ;verzögerung ca 1sec auf 12 Mhz 80C535 ; djnz r6,m2 ;-------------------- ; djnz r7,m3 ajmp start END
Hi! Das Probl.habe ich schonmal irgendwo gelesen, es liegt am Quarz und wie er betrieben werden muss, Serien oder Paralellresonanz. Der Untersch. ist glaube ich 1:3, passt zu deiner Aussage. Also hau den Quarz weg. Gruss Uwe
Hi Uwe danke, das hat mir schon mal ein bißchen weiter geholfen. das wissen anscheinend aber nicht sehr viele das man da auch noch aufpassen muß. Hut ab ! aber woher weiß ich nun, wie ich mein quarz betreiben muß. oder welchen quarz ich genau brauche. ich weiß nicht was ich da jetzt anders bestellen soll als 24 Mhz. kann man das irgendwie an einer bezeichnung erkennen. also alle anderen (die ich so gesehen hab) schalten den quarz doch einfach parallel zu den xtal eingängen und mit 2 kondensatoren auf masse. so hab ich das jetzt überall gesehen. ich wußte nicht das man da noch was falsch machen kann. trotzdem danke für deine antwort, das hört sich für mich jetzt irgendwie auch logisch an und ist eine bestätigung für das was ich schon irgendwie vermutet habe. ich werd mir irgendwoher ein anderen quarz besorgen. jetzt sollt ich halt nur noch wissen was für einen. best regards Michi
Hallo Michi, das sieht ganz so aus, als ob Du einen Quarz benutzt, der kein Grundwellenquarz ist. Er müßte dann auf der dritten Oberwelle betrieben werden um mit 24 MHz zu schwingen ( 8MHz * 3 = 24 MHz). Leider gibt es Bauteillieferanten, die das in Ihren Katalogen nicht ausdrücklich erwähnen. Du hast folgende Möglichkeiten: Entweder Induktivität hinzuschalten oder Grunwellenquarz kaufen. cu Tommy
Ist das der Reichelt-24MHz-Quarz? Mit dem soll es Probleme geben, such mal in Google Groups.
Hi, Thx Tommy und Andi. Jetzt kommen wir der Sache immer näher. Ja es ist tatsächlich der 24 Mhz Reichelt Quarz. Jetzt wird mir so einiges klar. Und hab nebenbei noch was über Quarze gelernt. Trotzdem bin ich noch sauer über die Zeit und Nerven die mich das wieder gekostet hat. Sowas dürfte Reichelt eingentlich nicht einfach so ungekennzeichnet lassen. Das kostet viele Leute einige Nerven so was rauszufinden wenn sie kein Meßlabor zu Hause haben. Abgesehen davon, wird kaum irgendwo im Internet erwähnt das man bei den Quarzen aufpassen muß wie man sie betreibt. Aber es ist halt immer, man kann sich heut auf nichts mehr wirklich verlassen :-) Werd mal mein 12Mhz quarz aus meinem 80535 auslöten und testen, und hier wieder berichten. Wenn der läuft bestell ich 12Mhz Quarze und hoffe das das dann Grundtonquarze sind. Oberwellenbetrieb ist mir ein bißchen zu aufwendig, hab jetzt keine Lust mehr mich mit den blöden Quarzen zu quälen. Danke an euch alle für eure Hilfe. Ich denk jetzt bekomm ich es in Griff. c ya Michi
So abschließendes Fazit... es war der Quarz ! mit meinem 12Mhz Quarz und 22pf Kondensatoren, klappte es auf Anhieb. Scheint also ein dfinitiv ein Grundtonquarz zu sein. Auf meinem 12 Mhz Quarz steht übrigens A12Mhz drauf. weiß jemand vielleicht was das genau A bedeuten könnte ? Also Leute in Zukunft immer auf die Quarze aufpassen. Das hab ich jetzt gelernt.. :-) Gruß an alle, die mir hier geholfen haben... Michi
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.