Hallo, ich möchte von folgender UART-Ausgabe ein Signal vom heruntergeteilten UART-Takt ausgeben, mit dem gesendet wird. Der heruntergeteilte Takt muss ein symmetrisches Rechteck sein, das ich weiterverarbeiten möchte. Was wäre der richtige Ansatz? Gruß
Hans Hirsch schrieb: > Der heruntergeteilte Takt muss ein symmetrisches Rechteck sein, das ich > weiterverarbeiten möchte. Ein Rechteck ist immer symetrisch ;) Meinst du ein Tastverhältnis von 1:1? Wieso bauchst du das den wenn du das Sognal danach weiterverarbeitest?
> Meinst du ein Tastverhältnis von 1:1? Ja! > Wieso bauchst du das den wenn du das Sognal danach weiterverarbeitest? Ich brauche den Takt von der UART-Ausgabe um mit ihm einen weiteren Process ansteuern zu können.
>> Der heruntergeteilte Takt muss ein symmetrisches Rechteck sein, das ich >> weiterverarbeiten möchte. Was wäre der richtige Ansatz? > Ich brauche den Takt von der UART-Ausgabe um mit ihm einen weiteren > Process ansteuern zu können. Der richtige Ansatz wäre, es nicht so zu machen... Der richtige Ansatz ist, nur 1 Takt im ganzen Design zu haben. Alles Andere wird über Clock-Enable-Signale gesteuert, die jeweils nur 1 Taktzyklus lang aktiv sind. Aber trotzdem:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
Aber Achtung: der Takt ist nur während der Übertragung aktiv...
Wäre so eine Teilung des Taktes sinnvoller?
..
clk_1x <= clk_div(3);
-- Herunterteilen des Boardtaktes
process (CLK, clk_div)
begin
--if rst = '1' then
--clk_div = '0000';
if (CLK'event and CLK = '1') then
clk_div <= clk_div + "0001";
end if;
end process;
> Wäre so eine Teilung des Taktes sinnvoller?
Für Anfänger muss gelten: Es gibt nur 1 Takt im ganzen Design.
Es gibt also nur1 | |
und nicht auch noch
1 | |
2 | |
3 | |
Wenn du etwas mit 1/16 der Taktfrequenz machen willst, dann sieht das so aus:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
Diese Version ist wesentlich überschaubarer. Nur weiß ich jetzt nicht
genau, wie es diese Teilung auf mein Problem("Test.vhd") anwende. Wie
mache ich die Ausgabe der UART über diesen Taktungsprozess?
> Wie mache ich die Ausgabe der UART über diesen Taktungsprozess?
Ja nun, dazu brauchst du einen anderen Sender, denn in dem oben
geposteten wird dieses Enable-Signal über den Zähler txcnt erzeugt.
Gut, ich habe jetzt ein enable-Signal. Aber wenn ich aus dem enablesignal einen Rechteck erzeugen will???
Gast
#1447635
@Hans Hirsch:
> ...wenn ich aus dem enablesignal einen Rechteck erzeugen will???
Dann togglest Du damit ein Bit-Register und gibst den Wert aus...
Duke
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.