mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Dynamisch eine Frequenz erzeugen?


Autor: Marius Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kann ich einen µC dynamisch takten? Ich habe hier ein gerät das ich
über einen schalter oder so einen einstellbaren takt geben möchte (zB:
langsam (2 Mhz), normal (4 Mhz), schnell (6 Mhz) und sehr schnell (6
Mhz)). Womit mache ich sowas? Sollte auch möglichst klein sein, im
Gehäuse ist nicht mehr sehr viel Platz.

Danke für eure Hilfe!
Marius

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur AVR-Controller: Wenn´s nicht allzu genau sein muß mit der Taktung,
geht das mit dem internen Oszillator, den man über das OSCCAL-Register
per Software tunen kann (+-200%). Ansonsten ein  Teilerschaltkreis
(oder mehrere), der die Frequenz von einem 8MHz Oszillator n/2; n/4
teilt (z.B.74hc74). Beim Umschalten der Frequenz aber dem Prozessor ein
genügend langes Reset gönnen, da sonst das Programm abschmiert, wenn man
bei laufendem Betrieb einfach umschaltet.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
z.b 16Mhz quarz.. danach mit einem netten zähler einen teiler baun..

dann hast 16,8,4,2,... Mhz über einen lustigen mehrstufigen schalter
kannst dann umschalten... die frage ist nur ob es für deine anwendung
nicht besser wäre eine kleine pll dafür zu verwenden... da gibts wenn
ich mich richtig erinnere eine von cypress... die kannst per i2c vom
controller steuern lassen...

73

Autor: Marius Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
eigentlich wäre das ganz nett wenn man das während des betriebes
umschalten könnte. Wie funktioniert denn der 74hc74? Ich hab mir das
datasheet angesehen aber ich verstehe davon halt nix.

An einen AVR habe ich auch schon gedacht (ATtiny zB.) aber da hätte ich
auch keine ahnung wie das gehen soll :(

Autor: Johannes Raschke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim MSP430 gehört sowas zum Standardrepertoir; man kann den Takt für
den Core und die Peripherie jederzeit vom Programm aus ändern. Ist halt
ein ultra low power controller, und wenn man erst mal die
Initialisierung geschafft hat, ein wirklich schöner.

Johannes

Autor: Nobody (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du deinen controller mit einem RC glied taktest geht das über das
Poti wärend dem betrieb stufenlos ohne probleme. Controller schmiert
auch nicht ab. Bei billigen controllergesteuerten Lauflichtern aus
Taiwan und china wird das so praktiziert.

Autor: Marius Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nobody: super, und was für ein RC glied brauche ich da? stufenlos wäre
ja super...

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man muß schon ein bisschen aufpassen, wenn man den Takt ändert.Aus dem
Datenblatt des tiny13:

"When applying an external clock, it is required to avoid sudden
changes in the applied clock frequency to ensure stable operation of
the MCU. A variation in frequency of more than 2% from one clock cycle
to the next can lead to unpredictable behavior. It is
required to ensure that the MCU is kept in Reset during such changes in
the clock frequency."

Aber bei dem ist das eh kein Problem, da er bei internem Takt auch
softwaremäßig umgestellt werden. Der Oszillator kann mit 9,6Mhz oder
4,8Mhz laufen, und der Controller kann in Zweierpotenzen von vollem
Takt bis 1/256 davon runtergetaktet werden, un das softwaremäßig und
ohne Stabilitätsprobleme. Genauer kann man es dann noch mit dem OSCCAL
machen, wie hier schon erwähnt wurde.
Was brauch ich da noch irgendwelche externen Geschichten?

Autor: Marius Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich möchte aber einen controller takten den ich nicht selber
programmieren kann. das mit diesen RC glied hört sich gut an, ich hab
nur kA was das sein soll :)

Autor: ..,- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fuses so einstellen, daß als Takt ein externes RC-Glied verwendet wird
(setzte jetzt mal AVR als µC voraus). Dieses schließt du statt des
Quarzes an, allerdings nur an XTAL1 (oder XTAL2?). Das R ersetzt du
durch ein Poti und schon kannst du stufenlos die Taktfrequenz
variieren. Über die Dimensionierung des RC-Gliedes dürfte das
Datenblatt des Controllers auskunft geben.

Autor: olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man darf den Takt nicht zu schnell veraendern! Es ist z.B gefaehrlich
einfach mit einem Schalter, oder auch einem Gatter, nur zwischen zwei
Takten umzuschalten weil es dann passieren koennte das der Takt fuer
einen kurzen Augenblick sehr kurz wird. Dadurch wird stuerzt dann der
Controller ab.
Es gibt aber natuerlich Schaltungen die dieses Problem umgehen. Ich
glaub so vor 20 Jahren stand mal eine in einer C´t. :-)

Einfach ein externes RC Glied anszuschliessen und dort das R durch
einen Poti zu ersetzen ist natuerlich auch Unsinn. Einfach deshalb weil
es beim verdrehen des Potis immer mal zu kurzen Spruengen im
WIderstandswert kommt.

Klappen koennte vielleicht ein externe VCO (74HC4046) und dort das Poti
anschliessen und die VCO Spannung ueber einen Kondensator schoen langsam
machen.

Olaf

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dieses problem umgehst du einfach indem du einen frequenzteiler mit
einem T-FF reintust... dann hast du wieder 50% duty-cycle und der
controller sollte wieder zu frieden sein... im schlimmsten fall sollte
aber ein monoflop dir die sache bereinigen... oder eine kombination...
ich müsst mir das jetzt genauer überlegen was von beiden sicherer ist
und ob die kombination überhaupt sinn hat.. aber ich werd mich jetzt
mal von der firma heim begeben und beim fahren über diese problematik
meditieren g

zur avr-methode:
ich bin gerade soo froh, dass ich mich 0 in avr-asm auskenne (sofern es
clock-cycles/operation betrifft ;)... sonnst würde ich dir vorschlagen
einen pin per software zu toggeln... aber ich bezweifle,dass man damit
in die gegend von 8Mhz kommt.. eher 1-2 aber nicht 8...

73

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mist, ich wert alt, es waren nur 16 Jahre. :-)

Titel       : Entstört
Untertitel  : Spike-sichere Taktumschaltung für alle Zwecke
Autor(en)   : Johannes Assenbaum
Redakteur   : be
Zeitschrift : c't 10/89, S. 66
Schlagwörter: Praxistip

Dort wird ein 74xx153, zwei 74379, 74379, 7432 und 7408. Relativ
aufwendig.

Olaf

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Mist, ich wert alt, es waren nur 16 Jahre. :-)

Na dann bist du doch 4 Jahre jünger als befürchtet ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.