Hallo,
ich habe mich für mein Board für einen AT98C51ED2 entschieden
(Datasheet als Anhang).
In einem anderen Thread von mir habe ich mich über die beste Frequenz
des Quarzes erkundigt.
Wir sind auf den 11.0592 Mhz Quarz gekommen.
Jetzt meine Fragen:
Wie groß ist dabei ein Maschinenzyklus?
Ich möchte gerne einen runden Maschinenzyklus haben. Einen den man ohne
Kommawerte leicht hochrechnen kann. Z.B. 1µs oder 2µs, oder auch noch
kleiner.
Muss ich dazu einen anderen Quarz nehmen? Wäre kein Problem. Will aber
über UART programmieren und so wie ich das richtig mit bekommen habe,
gibt es da Probleme bei gewissen Frequenzen. Ich will die UART nur zum
Programmieren benutzen.
Ich bitte um eure Hilfe! :)
Mit freundlichen Grüßen,
Sebastian Barth
Bei einfachen MCS51-Varianten ist ein Maschinenzyklus zwölf Takte lang,
bei einem 12 MHZ-Takt also 1 µsec.
Mit Deinem Quarz kommt 'ne ungerade Zahl heraus, halt etwas mehr als 1
µsec.
Das ist ein catch-22, entweder Du erhältst saubere Baudraten oder Du
hast eine leicht berechenbare Maschinenzykluslänge ...
Hi,
Was genau bedeutet die Fehlerquote der UART?
10% heißt, dass jede 10. Information Müll wird?
Wird dann nicht die Nachricht nochmal gesendet / Merkt das der µC
nicht?
Es ist klar, dass die Fehlerqoute so klein wie möglich sein sollte.
Aber wie hoch darf sie sein?
Wieso ist das überhaupt so ein Problem?
Würde gerne einen Maschinenzyklus von 2µs haben, also 24Mhz Quarz
(Oder?). Wie hoch ist die Fehlerqoute? Vernachlässigbare Fehlerqoute?
Danke im Voraus .. Sebastian Barth
Habe das Forum und andere Seiten nocheinmal durchsucht.
Leider keine Lösung gefunden.
Ich bitte euch, .. lasst euch herab und macht mich ein wenig klüger :)
Jetzt überleg nochmal, wenn die Frequwnz höher ist was passiert dann nit
der Zeit (Maschinenzyklus) ?
Fehler Qute heit z.B. 1 Bit muss 1ms Lang sein ist aber nur 0,9ms Lang.
Um die Behandlung von falsch empfangenen Bytes muss du dich selber per
Software kümmern.
Damit ich möglichst präzise zählen kann. Zeitlich gebunden am
Sekunden-Takt.
Da ich die UART nur zum Programmieren des Controllers benutze, kann ich
keine eigene Fehlerkorrektur machen. Würde das bedeuten, dass das
Programm, welches ich vom PC in den Controller übertrage, bei einer
Fehlerqoute >0% fehlerhaft übertragen wird?
So ganz verstehe ich das nicht. :)
Wenn du den 11,05920M Quarz verwendest, dann wird dieser Takt erst durch
12 geteilt = 921600Hz dann per software est dur 1024 teil ergibt 900 und
dann durch 900 teilen und schon hast du 1 Hz.