Hallo, ich fange grad mit VHDL an und wuerde gerne wissen wie man intelligent eine folge von Bits über eine serielle Datenleitung schicken kann. Beispiel: Ich möchte die Sequenz "101000100010" schicken. Ich weiss nur wie das mit einen counter und einer state maschine machen kann. architecture Beispiel of test is Signal Bit_folge: std_logic_vector(11 downto 0) := "101000100010"; Signal Counter: unsigned(4 downto 0); process(clk, senden) begin if senden = '0' then counter <= (others => '0'); elsif rising_edge(clk) then if counter = 12 then senden = '0'; else DatenLeitung <= Bit_folge(to_integer(counter)); counter <= counter + 1; end if; end if; end process; end Beispiel; Das muss doch besser gehen. Vielen Dank fuer eure Hilfe...
Kalle schrieb: > wie man intelligent > eine folge von Bits über eine serielle Datenleitung schicken kann. Nimm ein Schieberegister. So wie hier beim SPI z.B.: http://www.lothar-miller.de/s9y/categories/45-SPI-Master Und der ganze Trick spielt sich hier ab:
1 | ---- Sendeschieberegister -------
|
2 | process begin |
3 | wait until rising_edge(CLK); |
4 | :
|
5 | tx_reg <= tx_reg(tx_reg'left-1 downto 0) & tx_reg(0); -- Schieberegister |
6 | :
|
7 | end process; |
8 | |
9 | MOSI <= tx_reg(tx_reg'left); -- Ausgang, linkes Bit MSB voran |
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.