Minh dang thu truyen du lieu qua cong RS 232 xuong KIT DE2.Sau do luu du lieu vao RAM.Da ai lam chua??? xin chi giao ho.
Thông báo
Collapse
No announcement yet.
Nhận dự liệu từ cổng nối tiếp RS232 trên board FPGA
Collapse
X
-
Em cũng đang làm cái truyền file qua RS232 từ PC, thực hiện trên EDK làm uP nhúng chứ ko làm cứng bằng HDL. Gửi nhận 1 character thì đc rồi nhưng file thì vẫn chưa đc. Tại em cug mới lần đầu làm trên EDK nên chưa hỉu lắm. Em làm quá trình nhận như đã làm thành công PC-to-PC, tức là vất hàm nhận XUartLite_Recv() vào trong hàm xử lý ngắt nhận nhưng debug thì chỉ toàn thấy save được byte đầu tiên của mỗi lần đọc vào SRAM.
Bác nào quan tâm hoặc làm rồi thì cùng trao đổi nhéLast edited by NEO3F; 27-04-2008, 00:34.
Comment
-
Uhm, mình cũng đang làm tiếp vấn đề này...Ban đầu mình test nhận data từ PC và xuất trực tiếp ra các LED. Hiện tại cũng đang tìm hiểu SRAM trên board để lưu data...Có ji trao đổi thêm qua email: tienbkit@gmail.com nhaNguyên văn bởi duchut Xem bài viếtMinh dang thu truyen du lieu qua cong RS 232 xuong KIT DE2.Sau do luu du lieu vao RAM.Da ai lam chua??? xin chi giao ho.
Nếu chỉ xuất ra LCD thì bạn có thể làm trực tiếp luôn, ko cần thiết phải dùng thiết bị lưu trữ như SRAM hay SDRAM....Việc xuất ra LCD thì mình chưa thử làm...hihi,bạn làm làm rùi thì chia sẻ cho mọi người cùng tham khảo với nhé!!!Nguyên văn bởi thaohoa Xem bài viếtCho minh hoi sau khi DEII nhan data tu RS232 thi viec xu li thuc hien o dau va data muon truyen ra LCD thi lam the nao?Ban nao giup minh.
Comment
-
Bạn có thể giải thích một chút về từng đoạn mã trên được không,mình đọc mãi mà vẫn không hiểu,nhất là đoạn bit_spacing_proc và đoạn rxd_counter_inverted,mình biết nhiều người mới tìm hiểu FPGA chắc cũng chưa thể hiểu được!Nguyên văn bởi duchut Xem bài viếtchu de RS232 soi noi that.Minh da lam thu tren KIT DE2 cua Artera thi thay no chay dung.Thuc ra thi moi Kit cua moi hang khac nhau thi cung co cung mot nguyen tac.Minh post code RS_receive viet bang VHDL len anh em gop y nhe.Code nay minh lay tren trang http://www.fpga4fun.com/ExternalContributions/.Phan receiver minh co chinh sua mot ty thi no chay duoc tren KIT DE2 cua Artera.
--
-- UART: receiver
--
-- Copyrighted by Wincent Balin
-- Idea by Jean P. Nicolle
--
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
entity UARTReceiver is
generic
(
frequency : integer:=50000000;
baud : integer:=9600;
oversampling : integer:=8
);
port
(
clk : in std_logic;
rxd : in std_logic;
rxd_data : out std_logic_vector(7 downto 0);
rxd_data_ready : out std_logic
);
end entity UARTReceiver;
architecture UARTReceiverArch of UARTReceiver is
-- defining constants
constant BIT_SPACE : integer := 10; -- 8 to 11 are common
constant DIVISOR : integer := 1600;
constant FREQ_INC : integer := (oversampling + 0) * baud / DIVISOR;
constant FREQ_DIV : integer := frequency / DIVISOR;
constant FREQ_MAX : integer := FREQ_DIV + FREQ_INC - 1;
-- defining types
type state_type is (idle, bit0, bit1, bit2, bit3, bit4, bit5, bit6, bit7, stop);
-- defining signals
signal state : state_type := idle; -- receiver's state
signal rxd_sync_inv : std_logic_vector(1 downto 0);
signal rxd_cnt_inv : std_logic_vector(1 downto 0);
signal rxd_bit_inv : std_logic;
signal baud_divider : integer range 0 to FREQ_MAX := 0;
signal data : std_logic_vector(7 downto 0);
signal baudover_tick : std_logic := '0';
signal bit_spacing : integer range 0 to 15;
signal next_bit : std_logic := '0';
begin
-- assignments
next_bit <= '1' when bit_spacing = BIT_SPACE else '0';
-- processes
baud_gen : process(clk)--dung de bam xung, tao ra xung co tan so lon hon toc do baud
begin
if clk'event and clk = '1' then
baud_divider <= baud_divider + FREQ_INC;
if baud_divider >= FREQ_DIV then
baud_divider <= 0;
baudover_tick <= '1';
else
baudover_tick <= '0';
end if;
end if;
end process baud_gen;
--
rxd_sync_inverted : process(clk) -- inverted to suppress phantom character
begin
if clk'event and clk = '1' then
if baudover_tick = '1' then
rxd_sync_inv <= rxd_sync_inv(0) & not rxd;
end if;
end if;
end process rxd_sync_inverted;
--
rxd_counter_inverted : process(clk)
begin
if clk'event and clk = '1' then
if baudover_tick = '1' then
if rxd_sync_inv(1) = '1' and rxd_cnt_inv /= "11" then
rxd_cnt_inv <= unsigned(rxd_cnt_inv) + 1;
elsif rxd_sync_inv(1) = '0' and rxd_cnt_inv /= "00" then
rxd_cnt_inv <= unsigned(rxd_cnt_inv) - 1;
end if;
if rxd_cnt_inv = "00" then
rxd_bit_inv <= '0';
elsif rxd_cnt_inv = "11" then
rxd_bit_inv <= '1';
end if;
end if;
end if;
end process rxd_counter_inverted;
--
state_proc : process(clk)
begin
if clk'event and clk = '1' then
if baudover_tick = '1' then
case state is
when idle =>
if rxd_bit_inv = '1' then
state <= bit0;
end if;
when bit0 =>
if next_bit = '1' then
state <= bit1;
end if;
when bit1 =>
if next_bit = '1' then
state <= bit2;
end if;
when bit2 =>
if next_bit = '1' then
state <= bit3;
end if;
when bit3 =>
if next_bit = '1' then
state <= bit4;
end if;
when bit4 =>
if next_bit = '1' then
state <= bit5;
end if;
when bit5 =>
if next_bit = '1' then
state <= bit6;
end if;
when bit6 =>
if next_bit = '1' then
state <= bit7;
end if;
when bit7 =>
if next_bit = '1' then
state <= stop;
end if;
when stop =>
if next_bit = '1' then
state <= idle;
end if;
end case;
end if;
end if;
end process state_proc;
--
bit_spacing_proc : process(clk)
begin
if clk'event and clk = '1' then
if state = idle then
bit_spacing <= 0;
elsif baudover_tick = '1' then
if bit_spacing < 15 then
bit_spacing <= bit_spacing + 1;
else
bit_spacing <= 8;
end if;
end if;
end if;
end process bit_spacing_proc;
--
shift_data_proc : process(clk)
begin
if clk'event and clk = '1' then
if baudover_tick = '1' and next_bit = '1' and
state /= idle and state /= stop then
data <= not rxd_bit_inv & data(7 downto 1);
end if;
end if;
end process shift_data_proc;
--
output_data_proc : process(clk)
begin
if clk'event and clk = '1' then
if baudover_tick = '1' and next_bit = '1' and
state = stop and rxd_bit_inv = '0' then
rxd_data <= data;
rxd_data_ready <= '1';
else
rxd_data_ready <= '0';
end if;
end if;
end process output_data_proc;
end UARTReceiverArch;Technical Institutes
Mobile: 0983278725
Email:
Comment
-
chao cac ban! minh dang lam do an thu phat du lieu tu may tinh qua kit Spartan 3E voi phuong thuc truyen dung song RF, hien tai minh khong biet cach nhan du lieu tren kit nhu the nao, ban nao co phuong an giup do minh voi chan thanh cam on va xin hau ta
Comment
Bài viết mới nhất
Collapse
-
bởi IemanjaTôi có một câu hỏi kỹ thuật muốn hỏi.
Động cơ bước vòng kín của tôi được sử dụng trong một cơ cấu dao động đảo chiều thường xuyên. Sau khi hoạt động vài ngày, vị trí điểm 0 của bộ mã hóa được thiết lập ban đầu bị trôi dần, và...-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 14:12 -
-
bởi theidiotcatGiải pháp cấu hình tối ưu chi phí và hiệu năng cho phòng net hiện đại với AMD Ryzen 7 5700G, 5700X và Radeon RX 6500XT, 7600 8GB
Giải pháp toàn diện cho bài toán đầu tư phòng net
Mô hình phòng net hiện đại ngày nay đòi hỏi...-
Channel: Đánh giá sản phẩm DTVN
hôm nay, 13:55 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnE nhớ bác Vivanpham làm bên điện tử y sinh, có lần đó cái sơ đồ máy chụp x quang sao có mấy con thryristor làm gì mà ko ai trả lới đúng cả
...
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 09:17 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnBác kiểm tra lại đường mạch, mối hàn xem có bị hở hoặc dẫn không tốt không?
Thay cầu diode lớn hơn càng tốt không vấn đề gì cả....-
Channel: Điện thanh
hôm nay, 09:12 -
-
bởi LantheChào bạn.
Trục đầu ra của hộp số hành tinh xoắn ốc được kết nối với mặt bích của khách hàng thông qua một trục răng trong. Sau chưa đầy sáu tháng hoạt động, nó phát ra tiếng kêu lách cách và độ rơ lớn đáng báo động.
Việc...-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 13:05 -
-
bởi ittcChào các anh em nhé, mình dự định sắp tới sẽ đi học lái xe Ôtô, thi lấy bằng lái. Cụ thể mình sẽ học và thi lấy giấy phép lái xe hạng B. Thật sự mình là người chưa có kiến thức hiểu biết gì về Ôtô cả ? tất nhiên mình sẽ phải...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 06:22 -
-
Trả lời cho Amply bị rò DC 22 voltbởi trung30000Theo sự hướng dẫn của bác, sau khi em kiểm tra tầng Vi sai sử dụng cặp c1815, tiếp đến là 1 con a1013, và cặp thúc sử dụng mje304g và mje305g, em đã tiến hành thay cặp Vi sai c1815 sau đó mở máy lên đo ngõ công suất DC 0,2V hai giây sau máy đo...
-
Channel: Điện thanh
05-08-2026, 20:09 -
-
bởi theidiotcatBộ máy đa năng toàn diện cho học tập và làm việc hàng ngày
Đối với học sinh, sinh viên và người làm việc văn phòng, việc sở hữu một bộ PC cân bằng giữa học tập, công việc và giải trí là nhu cầu vô cùng thực tế. Combo Ryzen...-
Channel: Đánh giá sản phẩm DTVN
05-08-2026, 10:28 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi mèomướpDạ cháu đọc 1 số bài viết của bác vi... thì nhớ đc bác là 1 cụ già gần 80 tuổi, sức khỏe yếu. Đam mê và làm vc về kỹ thuật điện. Thích thơ ca. Có nhìu bài chia sẻ quý báu cho thế hệ sau. Tuy nhiên già rồi nên khái tính, bảo thủ, nhưng vẫn đáng kính ạ... còn lão nhathung... thì kiểu bố đời
-
Channel: Tâm tình dân kỹ thuật
31-07-2026, 12:52 -
-
bởi lvhnHãng nào tùy thích thôi bác! bây giờ các hãng đều hỗ trợ xem qua máy tính hay điện thoại đều được. Gắn Trước tiên mua về cắm nguồn set ip hết xong hãy lắp lên, cam poe chỉ cần 4 lõi là hoạt động bình thường nên 1 dây kéo cho 2 cam vẫn ok
-
Channel: Tâm tình dân kỹ thuật
30-07-2026, 15:49 -

Comment