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.
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?
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?
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 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.
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