|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
nakamichi Član
Pridružen-a: Pon 21 Avg 2006 18:51 Prispevkov: 845 Aktiv.: 3.94 Kraj: Nova Gorica
|
Objavljeno: Pon Nov 02, 2009 4:29 pm Naslov sporočila: UART problem |
|
|
Upadam se z implementacijo UARTa v Xilinxa. Uporabil sem uart module, ki pridejo z KCPSM procesorjem.
Moja koda:
Koda: |
entity uart_test is
Port ( clk_50MHz : in STD_LOGIC;
TxD : out STD_LOGIC;
tipka : in STD_LOGIC);
end uart_test;
architecture uart of uart_test is
COMPONENT uart_tx
PORT(
data_in : IN std_logic_vector(7 downto 0);
write_buffer : IN std_logic;
reset_buffer : IN std_logic;
en_16_x_baud : IN std_logic;
clk : IN std_logic;
serial_out : OUT std_logic;
buffer_full : OUT std_logic;
buffer_half_full : OUT std_logic
);
END COMPONENT;
signal data : std_logic_vector(7 downto 0);
signal wb : std_logic;
signal rb : std_logic;
signal Tx_int : std_logic;
signal baud : std_logic;
signal buff_full : std_logic;
signal buff_hfull : std_logic;
signal divider : integer range 0 to 2;
signal q1 : std_logic;
signal q2 : std_logic;
begin
Inst_uart_tx: uart_tx PORT MAP(
data_in => data,
write_buffer => wb,
reset_buffer => rb,
en_16_x_baud => baud,
serial_out => Tx_int,
buffer_full => buff_full,
buffer_half_full => buff_hfull,
clk => clk_50Mhz
);
TxD <= Tx_int;
data <= "10101010";
rb <= '0';
--baud <= '1';
baud_gen:
process(clk_50Mhz, divider)
begin
if rising_edge(clk_50MHz) then
if divider = 2 then
divider <= 0;
baud <= '1';
else
divider <= divider + 1;
baud <= '0';
end if;
end if;
end process;
tipka_imp:
process(tipka, clk_50MHz)
begin
if falling_edge(clk_50MHz) then
q1 <= tipka;
q2 <= q1;
wb <= q1 xor q2;
end if;
end process;
end uart; |
Zadeva se lepo kompajla, problem je ker Tx noče in noče delat, ne glede na to kam dam en_16_x_baud. Vse seveda teče v simulatorji.
Prilagam še navodila:
Opis: |
|
Download |
Ime datoteke: |
UART_Manual.pdf |
Velikost datoteke: |
110.76 KB |
Downloadano: |
3 krat |
Nazadnje urejal/a nakamichi Pon Nov 02, 2009 5:57 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
aly Član
Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9406 Aktiv.: 42.36 Kraj: Kranj - struževo
|
Objavljeno: Pon Nov 02, 2009 5:53 pm Naslov sporočila: |
|
|
Na signalu en_16_x_baud mora bit 16x višja frekvenca kot je dejanski baudrate.
Za test spelji še ta signal ven na en pin in ga pomeri z osciloskopom.
Enako še za WB signal.
Lokacije pinov na čipu imaš sigurno pravilno definirane?
Preglej še kompleten compile report, pri Warningih včasih kaj zanimivega piše (in se kljub temu lepo prevede).
_________________ I'm going to stand outside, so if anyone asks, I'm outstanding |
|
Nazaj na vrh |
|
|
nakamichi Član
Pridružen-a: Pon 21 Avg 2006 18:51 Prispevkov: 845 Aktiv.: 3.94 Kraj: Nova Gorica
|
Objavljeno: Pon Nov 02, 2009 5:59 pm Naslov sporočila: |
|
|
Dejansko stvar za zdej teče v simulatorju kjer vse deluje kot more...samo TX pin je mrzel...nekaj časa H...in po določenem času postane X..v simulatorju. Kar sem gledal zadeve noče spravit v FIFO register kljub impulzu na WB.
L.P.,
Miha
|
|
Nazaj na vrh |
|
|
surla Član
Pridružen-a: Ned 14 Dec 2003 15:22 Prispevkov: 716 Aktiv.: 3.22 Kraj: Ljubljana
|
Objavljeno: Pon Nov 02, 2009 6:01 pm Naslov sporočila: |
|
|
Kaj pa CTS pa RTS iz partnerjeve strani?
|
|
Nazaj na vrh |
|
|
nakamichi Član
Pridružen-a: Pon 21 Avg 2006 18:51 Prispevkov: 845 Aktiv.: 3.94 Kraj: Nova Gorica
|
Objavljeno: Pon Nov 02, 2009 6:18 pm Naslov sporočila: |
|
|
Poglej datasheet
|
|
Nazaj na vrh |
|
|
aly Član
Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9406 Aktiv.: 42.36 Kraj: Kranj - struževo
|
Objavljeno: Pon Nov 02, 2009 7:24 pm Naslov sporočila: |
|
|
Timingi so ustrezni?
Printscreen iz simulatorja?
Sicer pa - napiši svojega. Par ur dela. Fifo-ta ponavadi sploh ne rabiš. Če pa že, pa ga vzameš iz CoreGeneratorja.
_________________ I'm going to stand outside, so if anyone asks, I'm outstanding |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 48 dni
Powered by phpBB © 2001, 2005 phpBB Group
|