www.mikrocontroller.net

Forum: FPGA, VHDL & Co. 12,3 Mhz Frequenz


Autor: Edgard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Wie erzeuge ich mit VHDL ein Frequenz von 12,3 MHz mit ein Ozcillator 
von  50 MHz . 12,5 MHz geht schon aber 12,3 MHz ist für mich schwierig.

Danke im voraus

MFG

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Edgard (Gast)

>Wie erzeuge ich mit VHDL ein Frequenz von 12,3 MHz mit ein Ozcillator
>von  50 MHz . 12,5 MHz geht schon aber 12,3 MHz ist für mich schwierig.

In VHDL eigentlich gar nicht. Ausserdem ist das Problem kniffeliger als 
du denkst. Einen Teilfaktor von 50/12,3=4,06504 macht man mal nicht so 
nebenbei. Kauf dir einen DDS IC dafür. Oder gleich den richtigen 
Oszillator.

MfG
Falk

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was in den meisten Xilinx FPGAs mit DCM noch machbar waere, ist
50/49*12 = 12.244.
Also die 50MHz erst mit Logik durch 49 teilen und dann mit DCM wieder um 
den Faktor 12 hoch. Noch genauer wird schwierig, da die DCM nur in 
bestimmten Grenzen arbeiten.

Achja: Phasenlage etc zwischen beiden Frequenzen ist damit natuerlich 
voellig undefiniert.

Autor: Edgard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen dank an ihre Beide,

Ich kaufe mich ein 24.57 MHz Oscillator, so kann ich einfach durch zwei 
teilen.

MFG

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Edgard (Gast)

>Vielen dank an ihre Beide,
                ^^^^
>Ich kaufe mich ein 24.57 MHz Oscillator, so kann ich einfach durch zwei
>teilen.

Und einen Duden gleich dazu . . . :-0

MfG
Falk

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein 36,9 MHz-Quarz auf der Grundfrequenz 12,3MHz wäre noch möglich, oder 
ein 27,675 MHz-Quarz auf der Grundfrequenz 9,225 vervierfacht und 
wieder gedrittelt - wenn es so genau sein muß.

Autor: joergwolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das geht mit DDS und ein paar kleinen Modifikationen:

50/12,3 = 500/123

Dazu braucht man ein 10 Bit breites Register. Wenn Bit 9=0, dann werden 
beim nächsten Takt 123 addiert, wenn bit 9=1, dann werden 647 addiert. 
Die Ausgangsfrequenz von 12,3 MHz liegt dann an Bit 8 an, allerdings mit 
ziemlichem Jitter.

Gruß Jörg

Autor: Joerg Wolfram (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vom Speed her würde ein XC9536 mit 15ns reichen (52,6MHz nach 
timing-report, alle Zellen im STD-Modus). Ob es auch wie gewünscht 
funktioniert, habe ich aber nicht getestet.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity divtest is
-------------------------------------------------------------------------------
--- io
-------------------------------------------------------------------------------
port (
  inclk:          in std_logic;      
  outclk:         out std_logic);
  
end entity divtest;

architecture main of divtest is
-------------------------------------------------------------------------
--- internal signals
-------------------------------------------------------------------------
signal  counter:  std_logic_vector(9 downto 0);

begin
-------------------------------------------------------------------------
--- divider  
-------------------------------------------------------------------------
process (inclk) is
begin
  if (rising_edge(inclk)) then
      if counter(9)='1' then
    counter <= counter + 647;
      else
    counter <= counter + 123;
      end if;    
  end if;
end process;

outclk <= counter(8);
-------------------------------------------------------------------------
--- minimal configuration
-------------------------------------------------------------------------
end architecture main;

configuration main of mctest is
    for main
    end for;
end configuration main;

Gruß Jörg

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]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.