реклама на сайте
подробности

 
 
> приём данных по протоколу UART
enzaime
сообщение Jan 9 2016, 18:24
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 22-08-14
Пользователь №: 82 609



Вопрос такой: у меня есть модуль вот такой: http://www.ebay.com/itm/FT232RL-3-3V-5-5V-...t-/141724029351 и ПЛИС вот такая: http://www.terasic.com.tw/cgi-bin/page/arc...lish&No=593 (cyclone iv)
Для uart модуля я установил на комп драйвер com порта http://www.ftdichip.com/Drivers/VCP.htm. Вроде бы всё работает ( при посылке данных светодиод на плате мигает ). Использую такую вот программку для передачи данных через com порт http://compt.ru/ru/index.php
Написал вот такой приёмник для ПЛИС:
Код
-------------------------------------------------------------------------------


library IEEE;
use IEEE.STD_LOGIC_1164.all;

entity reciver is
     port(
         clk : in STD_LOGIC;
         ftdi_txd : in STD_LOGIC;
         led : out STD_LOGIC_VECTOR(7 downto 0)
         );
end reciver;

--}} End of automatically maintained section

architecture arch of reciver is
signal state:natural:=0;  
signal bitcnt:natural:=0;
begin
    process(clk)
    begin        
        if(rising_edge(clk)) then
            
            if(state=0) then
                if(ftdi_txd='0') then
                    state<=1;  
                    bitcnt<=0;
                end if;
            end if;    
            
            if(state=1) then
                if(bitcnt<8) then
                    led(bitcnt)<=ftdi_txd;
                    bitcnt<=bitcnt+1;
                else
                    if(ftdi_txd='1') then
                        state<=0;
                    end if;        
                end if;
            end if;
            
        end if;
    end process;
     -- enter your statements here --

end arch;

приёмник писал из соображений таких: 1 старт бит ( низкий уровень ), 8 битов данных, 1 стоп бит ( высокий уровень )

частота clk 9600 гц ( получаю так: 50 Мгц делю на 5208 ). Получаю её вот так:
Код
library IEEE;
use IEEE.STD_LOGIC_1164.all;

entity freq is
    generic(n:natural:=5208);
     port(
         clk : in STD_LOGIC;
         clk1 : out STD_LOGIC
         );
end freq;

--}} End of automatically maintained section

architecture arch of freq is
signal a:natural:=0;
begin    
    process(clk)
    begin        
        if(rising_edge(clk)) then
            if(a>=0 and a<n/2) then
                clk1<='1';          
            else
                if(a>=n/2 and a<n-1) then
                    clk1<='0';
                end if;
            end if;
            if(a>=n-1) then
                a<=0;
            else
                a<=a+1;
            end if;
        end if;
    end process;
     -- enter your statements here --

end arch;


Но в результате получаю беспорядочное мигание светодиодами ( радует только одно: мигают только при передаче, т.е. что-то правильное уже есть)

Подключаю так:

контакт rx к ножке ПЛИС
Понимаю, что не имея перед глазами всех этих штук сложно найти ошибку, но может знает кто в чём может быть дело?
Перемычка в положении 3.3 вольта


Сообщение отредактировал enzaime - Jan 9 2016, 19:25
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th July 2025 - 22:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016