www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

UART problem

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> FPGA in CPLD programabilna vezja
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
nakamichi
Član
Član



Pridružen-a: Pon 21 Avg 2006 18:51
Prispevkov: 845
Aktiv.: 3.94
Kraj: Nova Gorica

PrispevekObjavljeno: Pon Nov 02, 2009 4:29 pm    Naslov sporočila:  UART problem Odgovori s citatom

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:



UART_Manual.pdf
 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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9406
Aktiv.: 42.36
Kraj: Kranj - struževo

PrispevekObjavljeno: Pon Nov 02, 2009 5:53 pm    Naslov sporočila:   Odgovori s citatom

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 Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
nakamichi
Član
Član



Pridružen-a: Pon 21 Avg 2006 18:51
Prispevkov: 845
Aktiv.: 3.94
Kraj: Nova Gorica

PrispevekObjavljeno: Pon Nov 02, 2009 5:59 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
surla
Član
Član



Pridružen-a: Ned 14 Dec 2003 15:22
Prispevkov: 716
Aktiv.: 3.22
Kraj: Ljubljana

PrispevekObjavljeno: Pon Nov 02, 2009 6:01 pm    Naslov sporočila:   Odgovori s citatom

Kaj pa CTS pa RTS iz partnerjeve strani?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
nakamichi
Član
Član



Pridružen-a: Pon 21 Avg 2006 18:51
Prispevkov: 845
Aktiv.: 3.94
Kraj: Nova Gorica

PrispevekObjavljeno: Pon Nov 02, 2009 6:18 pm    Naslov sporočila:   Odgovori s citatom

Poglej datasheet Think
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9406
Aktiv.: 42.36
Kraj: Kranj - struževo

PrispevekObjavljeno: Pon Nov 02, 2009 7:24 pm    Naslov sporočila:   Odgovori s citatom

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 Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> FPGA in CPLD programabilna vezja Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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