Forum: FPGA, VHDL & Co. Pulsgenerator für Baudrate


von udo (Gast)


Lesenswert?

Hallo habe da ein Problem und komme mit meiner Schnittstelle RS232 und 
nem Xilinx-Board nicht weiter.
Ich benötige für die Baudrate: 9600Hz eine Pulsfrequenz von 65
(10Mhz/(16 * 9600 Baud)) . Wie erzeuge ich mir die am einfachsten?
Danke schon im vorraus.

von Falk (Gast)


Lesenswert?

@udo

>Ich benötige für die Baudrate: 9600Hz eine Pulsfrequenz von 65
>(10Mhz/(16 * 9600 Baud)) . Wie erzeuge ich mir die am einfachsten?

Mit nem Zähler?

signal cnt : std_logic_vector(6 downto 0);
signal baud_pulse : std_logic;

process(clk)
begin
  if rising_edge(clk) then
    cnt <= cnt +1;
    if cnt=64 then
      cnt <= (others =>'0');
      baud_pulse <= '1';
    else
      baud_pulse <= '0';
    end if;
  end if;
end process;

MfG
Falk

von udo (Gast)


Lesenswert?

Danke Falk,
den Grundgedanken dahinter verstehe ich auch. Aber wie realisiere ich es 
am Besten in Schematik da ich leider wenig vhdl verstehe.

von Falk (Gast)


Lesenswert?

@udo

>den Grundgedanken dahinter verstehe ich auch. Aber wie realisiere ich es
>am Besten in Schematik da ich leider wenig vhdl verstehe.

Ganz genauso. Ein Zähler wird bei erreichen von 64 synchron 
zurückgesetzt.
Das Rücksetzsignal ist gleichzeitig dein Baudraten-Clock-Enable (najs, 
keine schönes Wort). Sinnvollerweise sollte das Baudraten-Clock-Enable 
noch über ein FlipFlop retimed werden.

Du brauchst also

- 1x 7 bit Zähler mit synchronem Reset
- 1x 7 bit Comparator
- 1x FlipFlop

MFG
Falk

von udo (Gast)


Lesenswert?

Danke Falk für deine schnellen Antworten.
Die Pulserzeugung klappt jetzt.
Jetzt kann ich mich weiter mit der Schnittstelle selber befassen.

Gruß Udo


von Rick Dangerus (Gast)


Lesenswert?

@udo:
Befasse Dich auch mit VHDL. Die Schaltplaneingabe wird sehr schnell 
unübersichtlich und unflexibel.

Rick

von udo (Gast)


Lesenswert?

Hi Rick,
du hast warscheinlich recht. Befasse mich mit FPLA erst seit letzter 
Woche und bis jetzt reicht die Schaltplaneingabe für mich aus. Außerdem 
ist es bei einfachen Sachen für mich übersichtlicher.

Udo

von udo (Gast)


Lesenswert?

Hallo ich schon wieder,

beim übersetzen des Programmes bekomme ich den Fehler das Spartan 3 
keine 16x9 bbfifo Buffer unterstützt?
Was jetzt machen Chip ändern oder???

von Falk (Gast)


Lesenswert?

@udo

>beim übersetzen des Programmes bekomme ich den Fehler das Spartan 3
>keine 16x9 bbfifo Buffer unterstützt?

Klingt nach Picoblaze und Xapp 233. Da fehlt wahrscheinlich die *.edn 
Datei im Projektverzeichnis. Oder der VHDL-Code (da gibt es verschiedene 
Versionen).

>Was jetzt machen Chip ändern oder???

Nein, die Dateien ins Projektverzeichnis kopieren.

MFG
Falk

von udo (Gast)


Lesenswert?

Nochmal danke habe lediglich vergessen die  VHDL - Dateien  alle 
hinzuzufügen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.