uart: stopbit fehlt?
authorBernhard Urban <lewurm@gmail.com>
Tue, 11 Jan 2011 11:38:38 +0000 (12:38 +0100)
committerBernhard Urban <lewurm@gmail.com>
Tue, 11 Jan 2011 11:38:38 +0000 (12:38 +0100)
cpu/src/extension_uart_pkg.vhd
cpu/src/rs232_tx_arc.vhd

index fdb7893d7185593df197b8a8e51a02f88ed71bae..a7f14d9442c611e0b4820308107ec3409b31afba 100644 (file)
@@ -22,8 +22,8 @@ subtype baud_rate_l is std_logic_vector(BAUD_RATE_WIDTH-1 downto 0);
 --constant CLK_FREQ_MHZ : real := 33.33;
 --constant BAUD_RATE : integer := 115200;
 --constant CLK_PER_BAUD : integer := integer((CLK_FREQ_MHZ * 1000000.0) / real(BAUD_RATE) - 0.5);
-constant CLK_PER_BAUD : integer := 434;
--- constant CLK_PER_BAUD : integer := 2083; -- @uni, bei 20MHz und 9600 Baud
+-- constant CLK_PER_BAUD : integer := 434;
+constant CLK_PER_BAUD : integer := 2083; -- @uni, bei 20MHz und 9600 Baud
 -- constant CLK_PER_BAUD : integer := 50; -- @modelsim
 
  component extension_uart is
index ec9f4c5d26510547c00d96ebf748d0111ade43a8..ac431d874b3cefc2fa4affc37aba6d513b10b9cc 100755 (executable)
@@ -83,12 +83,14 @@ begin
                        when IDLE =>
                                -- tx-Signale im idle Zustand halten
                                tx_rdy <= '1';
-                               cnt_nxt <= 0;
-                               baud_cnt_next <= to_integer(unsigned(bd_rate));
+                               cnt_next <= 0;
+                               -- TODO: wtf, typproblem
+                               -- baud_cnt_next <= to_integer(unsigned(bd_rate));
+                               baud_cnt_next <= CLK_PER_BAUD;
                        when SEND =>
                                -- Signalisiert dass gerade ein Byte versendet wird 
                                tx_rdy <= '0';
-                               if baud_cnt = unsigned(bd_rate) then 
+                               if baud_cnt = bd_rate then 
                                        -- wenn die Bitdauer erreicht ist, Counter reseten
                                        baud_cnt_next <= 0;
                                        -- Counter um die einzelen Bits zu versenden