www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Freuquenz teilen


Autor: Jürgen Schmidt (rifay)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Ich muss meine Taktfrequenz=50MHz mit einem Teiler auf 9600 teilen.
Der Teiler entspricht ca. 5208. Dafür würde ich folgende Teiler 
verwenden:

1x 13er
2x 10er
1x 4er

Wie kann ich das nun in VHDL realisieren?

Autor: Josef Huber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn ich 50.000.000 Hz durch 9600 teile, bringt mir mein Taschenrechner 
die Zahl 5.208,3333333 1/3. Anders gesagt, wenn ich 50.000.000 Hz durch 
13 teile bekomme ich 3.846.153,846. Diese Zahl durch 10 und das 
Ergebniss nochmal durch 10 teile, habe ich am Taschenrechner 
38.461.5385. Vorige Zahl durch 4, zeigt mein Rechner 9.615,3846. Oder 
soooooooooooooooooooo

Ich glaube ich weis was Sie als nächstes fragen.

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zähl doch einfach die Takte und wenn du 4800 Zähler hast toggelst du 
macht dann 9600Hz.

Autor: Jürgen Schmidt (rifay)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, die Berechnung habe ich genauso. Aber wie kann ich das in vhdl 
programmieren? Kann man das in einer schleife realisieren? wenn ja, kann 
ich die einzelnen Teiler weglassen und nur 50MHz/5208 rechnen?

War das die Frage?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Ali Alile (rifay)

>ja, die Berechnung habe ich genauso. Aber wie kann ich das in vhdl
>programmieren?

Mit einem Zähler.

>Kann man das in einer schleife realisieren?

Gar nicht. Das ist VHDL, kein C.

>wenn ja, kann ich die einzelnen Teiler weglassen und nur 50MHz/5208 >rechnen?

Rechnen nicht, aber zählen.
process(clk)
begin
  if rising_edge(clk) then
    cnt <= cnt +1;
    clk_9k6 <= '0';
    if cnt = 5207 then
      cnt <= 0;
      clk_9k6 <= '1';
    end if;
  end if;
end process;

Siehe auch Taktung FPGA/CPLD.

MfG
Falk

Autor: Jürgen Schmidt (rifay)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Falk:

danke, sieht meinen wünschen entsprechend aus. Nur, wie kann ich mir das 
vorstellen, wandelt der mir die 50MHz kontinuierlich auf 9600(clk_9k6) 
um?

gruß

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ali Alile schrieb:
> Nur, wie kann ich mir das
> vorstellen,

Da gibt es eine Lampe die blinkt vor sich hin.
Und es gibt einen Typen auf einem Berg, der die Lampe beobachtet. Er 
befolgt buchstabengetreu seine Vorgaben:

Jedesmal, wenn die Lampe von aus auf ein umschaltet (rising_edge)
zählt der in Gedanken zu einer Zahl die er sich merkt 1 dazu (cnt <= cnt 
+1). Ist er damit fertig, dann überprüft er noch schnell ob er zufällig 
schon bis 5207 gezählt hat.
Wenn er drauf kommt, dass er das hat, dann hält er eine Fahne in die 
Höhe und fängt wieder bei 0 zu zählen an (und senkt dann auch gleich 
wieder die Fahne).

Wenn nun die Lampe 50 Millionen mal in der Sekunde aufblitzt, und man 
den Typen vom Tal aus beobachtet, wie oft in der Sekunde hebt er dann 
die Fahne?

So kannst du dir das vorstellen.

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.