Guten Tag wüsche ich euch allen. Ich bin auf ein kleines Problem gestoßen. Zur Zeit erzeuge ich ein PWM-Signal mit Timer0 von ATmega16, und weiß einfach nicht, wie groß die Frequenz ist, die der Timer bekommt? Prescaler=1 Fast-PWM-Modus Im Datenblatt habe ich nichts, außer einen kleinen Text, der die clk_I/O-Frequenz beschreibt, gefunden. Ihr müsst doch bestimmt diese Frequenz kennen! Danke im Voraus.
Danke erstmal für die schnelle Antwort. Meinst du die Quarzfrequenz? Wenn ja, dann mache ich anscheinend irgendwas falsch. Ich rechne nähmlich: f_PWM = f_OSC / 256 f_PWM = 13.875.000 / 256 = 54.199 Hz Gemessen habe ich ca. 5.500 - 5.700 Hz Wäre toll, wenn du mir weiter helfen könntest.
Ich messe mit einem Oszi. Weiß du vielleicht, wie GROß ein voller CPU-Takt ist?
Valentin wrote:
> Ich messe mit einem Oszi.
Etwas konkreter müßte es schon sein: Wie sieht Dein Programm aus ?
Gruß
Andy
Valentin wrote:
> Weiß du vielleicht, wie GROß ein voller CPU-Takt ist?
Wenn es jemand weiß, dann du...
Lass mich mal raten: Der Controller hat zwar irgendwie einen Quarz dran, aber die Fuses sind noch im jungfräulichen Auslieferungszustand, er weiss also nichts davon und taktet brav mit unkalibrierten 1MHz des internen R/C-Oszillators.
Benedikt K. bitte keine rätzelhafte Antworten. Ist es die Quarz-Frequenz? Wenn ja, dann müsste doch meine Rechnung falsch sein?! An dem Programm kann es ja nicht liegen, weil das ja läuft, oder?
Andreas Kaiser die Quarz-Frequenz ist genau 13.875 kHz wie es oben in der Rechnung steht.
Valentin wrote: > die Quarz-Frequenz ist genau 13.875 kHz wie es oben in > der Rechnung steht. Glaube ich dir. Aber ist dies auch die Taktfrequenz des Controllers? Soll heissen: Wie sind die Fuses eingestellt?
Valentin wrote:
> Die Frage habe ich hier auch schon glaub zwei mal gestellt.
Schon, aber keine Chance gegeben, darauf ohne Glaskugel zu antworten.
Ich kenne auch Deine Programm nicht, mit dem Du die fuses setzt. CKSEL 3..0 muß sein: 1111 - 1010 (Schau mal in das Datenblatt) Gruß Andy
Andreas Kaiser, du hast vollkommen recht. Habe den High Fuse CKOPT0 geschrieben, und den µC neu programmiert. Leider ändert sich nichts an der Frequenz. Andreas B., ich habe alle 6 einstellungen von 1010 bis 1111 ausprobiert, trotzdem keine änderung.
Wie ist der Oszillator geschaltet? Kondensatoren? Abstand/Kabellänge Pins-Quarz-Kond? Anonsten bleibt nur noch übrig, die Anzahl Ziffern vom Quarz nochmal genau nachzuzählen, ob das nicht vielleicht doch 1,3xx MHz sind. ;-)
Also da stehen nur die Zahlen 13875, und unten drunter KSS1D. Der Quarz ist mit zwei 22pF-Kondensatoren zu einem Resonator verschaltet, und zwar direkt am µC.
Woher kommt der Quarz denn? So eine Frequenz kauft man sich ja nicht, es sei denn man muss. Also wohl irgendwo ausgebaut. Dann würde ich mal von einer kreativen Beschriftung und 1,3875MHz ausgehen. Denn dazu passt das Ergebnis.
Andreas B. wrote:
> Das Programm mit dem Du testest, vermisse ich noch.....
Ich nicht. Siehe Posting von 17:59.
Sag mal, wenn du schon ein Oszi hast, warum misst du dann nicht mal direkt am Quarz? Dann könnte man sich die ganze Rumraterei sparen.
Andreas Kaiser, es stimmt, den Quarz habe ich ausgebaut, aber seltsam ist auch, dass der USART auch bei 1,3875 MHz funktioniert. Werde jetzt alles nochmal nachrechnen, und mich nochmal melden.
OK, wie sieht den das Signal aus, ich messe irgentwie nur eine konstante Spannung von 2,5V.
Woher weisst du eigentlich, dass die UART korrekt funktioniert? Senden tust du in dem Programm nicht, und Empfang geht u.U. auch bei falscher Rate, nur halt mit falschen Daten. Und dein Oszi zeigt trotz CKOPT (full swing osc) konstante 2,5V??? Nimm mal etwas, was zweifelsfrei ein Quarz bekannter Frequenz ist.
Andreas Kaiser wrote: > Andreas B. wrote: > >> Das Programm mit dem Du testest, vermisse ich noch..... > > Ich nicht. Siehe Posting von 17:59. Oh, sorry, hab ich übersehen. Das sieht so weit auch gut aus (abgesehen von der merkwürdigen Art, das Bit COM01 zu setzen). > OK, wie sieht den das Signal aus, ich messe irgentwie nur eine > konstante Spannung von 2,5V. Mißt Du mit einem Tastkopf 1:10 ? Nicht daß das Oszi den Quartz zum verstummen bringt ;-) Gruß Andy
> OK, wie sieht den das Signal aus, ich messe irgentwie nur eine konstante
Spannung von 2,5V.
Das hab ich vermutet- und welche Schlüsse ziehst du draus, nachdem dir
jetzt genügend Hinweise vorliegen?
Kannst ja mal was anderes testen: Einen Strom von 0x55 per UART senden und mit dem Oszi anschauen. Kommt direkt die Bitrate dabei raus (genauer: die Bitrate ist die doppelte der angezeigten Frequenz).
Wie man im Programm sehen kann, arbeitet mein USART mit 115,2 kHz, und zwar fehlerfrei. Ich habe nämlich noch ein Testprogramm, mit dem ich ca. 2000 "I"-Zeichen in etwa 150 ms an das Terminal in BASCOM senden kann. Beim Empfangen ist mir auch noch nichts falsches rüber gekommen. Außerdem bin ich auf folgende Idee gekommen, wenn ich mit dem 13875 Quarz einen Wert von 128 vom Terminal übertrage, sehe ich ein Rechtecksignal mit einem Tastgrad von ca. 0,5, und bei einer Frequenz von etwa 5500 Hz. Und wenn ich jetzt einen 4 MHz Quarz anschließe, sehe ich das selbe Signal, nur eben mit einer Frequenz von etwa 1660 Hz. 5500/1660=3,3 13875/4000=3,46 Also schließe ich daraus, dass die 13875 Zahlen 13,875 MHz heißen sollen. Woran liegt es aber, dass die PWM-Frequenz um den Faktor zehn kleiner ist als sie sein muss? Ich hoffe nur, ihr habt noch zeit und lust mir weiter zuhelfen. Danke euch trotzdem schonmal an dieser Stelle.
Hallo liebe Forummitglieder. Ich muss bei euch allen um Verzeihung bitten, weil ich euch den halben Tag gestohlen habe. Es tut mir aufrichtig Leid. Der Fehler war an meinem Oszilloskop. Da war nämlich die "MAGN. x10"-Taste gedrückt. Ich bedanke mich bei allen, die mir so lange und geduldig geholfen haben. Mit freundlichen Grüßen Valentin
Oszi-Anzeige kontrolliert? Nicht dass wir hier stundenlang über die MAG10 Taste eines Analogscopes brüten.
Andreas Kaiser wrote: > Oszi-Anzeige kontrolliert? Nicht dass wir hier stundenlang über die > MAG10 Taste eines Analogscopes brüten. zu spät ;-)
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.