Bytter Posted April 20, 2013 Report Share Posted April 20, 2013 Hi, I've tried following your tutorial on getting the UART demo running on the Papilio, but it seems things are a little different with the 'Pro' version. Particularly, the Spartan 6 version of the Microblaze doesn't seem to have the VHDL top-level directory, and when importing the UART files it fails to synthesize. Any thoughts? Link to comment Share on other sites More sharing options...
Bytter Posted April 23, 2013 Author Report Share Posted April 23, 2013 Ok, the following was as far as I could go. I used the Xilinx's KCPSM6 for the uart_tx and rx, and configured the UCF for the Papilio Pro but I still don't receive any kind of echo in the COM port. Here's the code: library IEEE;use IEEE.STD_LOGIC_1164.ALL;library UNISIM;use UNISIM.VComponents.all;entity UARTExample is Port ( rx : in std_logic; tx : out std_logic;LED1 : out std_logic; extclk : in std_logic);end UARTExample;architecture Behavioral of UARTExample iscomponent uart_tx6 isport ( data_in : in std_logic_vector(7 downto 0); buffer_write : in std_logic; buffer_reset : in std_logic; en_16_x_baud : in std_logic;buffer_data_present : out std_logic;serial_out : out std_logic;buffer_full : out std_logic;buffer_half_full : out std_logic; clk : in std_logic);end component; component uart_rx6 is port ( serial_in : in std_logic; buffer_read : in std_logic; buffer_reset : in std_logic; en_16_x_baud : in std_logic; clk : in std_logic; data_out : out std_logic_vector(7 downto 0); buffer_data_present : out std_logic; buffer_half_full : out std_logic; buffer_full : out std_logic);end component; COMPONENT dcm32to96PORT(CLKIN_IN : IN std_logic; CLKFX_OUT : OUT std_logic;CLKIN_IBUFG_OUT : OUT std_logic;CLK0_OUT : OUT std_logic);END COMPONENT; signal dout : STD_LOGIC_VECTOR (7 downto 0);signal data_present, en_16_x_baud, clk : STD_LOGIC;signal baud_count : integer range 0 to 5 :=0;beginbaud_timer: process(clk)beginif clk'event and clk='1' thenif baud_count=1 thenbaud_count <= 0;en_16_x_baud <= '1';elsebaud_count <= baud_count + 1;en_16_x_baud <= '0';end if;end if;end process baud_timer;impl_uart_tx: uart_tx6port map ( data_in => dout, buffer_write => data_present, buffer_reset => '0', en_16_x_baud => en_16_x_baud, clk => clk, serial_out => tx,buffer_data_present => LED1,buffer_half_full => open, buffer_full => open);impl_uart_rx6 : uart_rx6port map ( serial_in => rx, buffer_read => '1', buffer_reset => '0', en_16_x_baud => en_16_x_baud, clk => clk, data_out => dout, buffer_data_present => data_present,buffer_half_full => open,buffer_full => open);Inst_dcm32to96: dcm32to96 PORT MAP(CLKIN_IN => extclk,CLKFX_OUT => clk,CLKIN_IBUFG_OUT => open,CLK0_OUT => open); end Behavioral; Link to comment Share on other sites More sharing options...
Bytter Posted April 23, 2013 Author Report Share Posted April 23, 2013 And the corresponding UCF: ## Prohibit the automatic placement of pins that are connected to VCC or GND for configuration.CONFIG PROHIBIT=P144;CONFIG PROHIBIT=P69;CONFIG PROHIBIT=P60;NET "extclk" LOC="P94" | IOSTANDARD=LVTTL | PERIOD=31.25ns; # CLKNET "rx" LOC="P101" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # RXNET "tx" LOC="P105" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # TX Link to comment Share on other sites More sharing options...
Bytter Posted April 24, 2013 Author Report Share Posted April 24, 2013 Actually... The above code works pretty well... The thing is that the configured baud rate is 3000000 (3Mbit/s!!!). I've pushed the papilio pro's migration to here: https://github.com/hugoferreira/uart-example-papilio-proI searched Gadget Factory's github for a repo to fork this code, but I couldn't found it. If there exists such a repo, please drop a note and I'll do a pull request. Link to comment Share on other sites More sharing options...
alvieboy Posted April 24, 2013 Report Share Posted April 24, 2013 ZPUino can handle 3Mbit easily. I use that with my audio WAV player. You might want to take a look at it... Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.