chào bạn kamejoko80. phần hướng dẫn của bạn về lập trình cho LCD rất hay.tuy nhiên trong quá trình đọc có mọt chỗ mình chưa hiểu đó là đoạn "Chọn nút radio address, trong mục size (kích thước vùng nhớ cho ngoại vi) trong drop list chọn 64K, sau đó chọn Generate Addresses, Xillin tự động tính toán các đường địa chỉ và remap lại cho toàn bộ ngoại vi" ở đây ta có thể chọn vùng nhớ cho ngoại vi LCD thấp hơn hay cao hơn được không?và vì sao bạn lại chọn như vậy. bạn hoặc ai đã hiểu có thể giải thích cho mình. thaks a lot!
Thông báo
Collapse
No announcement yet.
LCD kit spartan3E
Collapse
X
-
em đang làm đồ án nhwng rất ít có điều kiện online. Anh có thể send mail để em trao đổi không? Mail của em là nghia0205ktqs@gmail.com
Comment
-
Nếu bạn dùng EDK 9.1 thì vẫn hỗ trợ sử dụng OPB (On-Chip Peripheral Bus). GPIO
(General Purpose Input Output) là một IP core cho phép kết nối giữa giữa các bank địa chỉ (bank giống 8051 đó) với bus OPB. Chúng ta sẽ tạo một GPIO mới, đổi tên thành LCD_16x2 (tên này tùy mình chọn thôi), sau đó thiết lập độ rộng bit dữ liệu của LCD_16x2 là 7 bit (0:6) = (E,RS,RW,D7,D6,D5,D4). LCD 16x2 này sử dụng D4 đến D7 để truyền dữ liệu 8 bit, vậy là phải truyền 2 lần mới được một chuỗi data cho LCD. Các chân E,RS,RW là để điều khiển việc truyền dữ liệu đó. Công việc tiếp theo là vào file system.ucf để kết nối các chân trên với các chân của bank OPB bằng cách thêm các dòng khai báo đại loại như NET LCD_16x2<1> = EA12 ... NET LCD_16x2<2> = EF12 (cái này tuỳ board, tham khảo trên mạng). Đó là xong phần cứng, tiếp theo là đến phần mềm, các bạn cần có file lcd.h chứa các khai báo tên hàm, lcd.c chứa nội dung các hàm cho lcd như Home, ClearLCD, Write2Lines, WriteInteger, WriteFloat, ... các hàm này tìm trên mạng, nếu giỏi về đk lcd các bạn có thể viết thêm hàm tùy ý. Ứng dụng thì làm bên tab Application chắc ko phải chỉ. Làm một cái file gì đó dạng như top.c rồi include mấy cái file h vào, như xparameters.h, util.h, lcd.h, ... , rồi viết chương trình ở dưới. Có một điểm nữa là cần xác định ID DEVICE cho LCD, như đoạn này
Code:XGpio LCD_Instance; XGpio_Initialize (&LCD_Instance, LCD_DEVICE_ID); XGpio_SetDataDirection (&LCD_Instance, LCD_CHANNEL, 0);
Comment
-
Nếu bạn mới tìm hiểu về EDK thì nên thực hiện 6 bài lab của Xilnx trước , có thể down lab dành cho bản 9.2 (board Spartan3E Start Kit) tại đây : http://users.utcluj.ro/~baruch/ssce/labor/
Các lab này giới thiệu khá chi tiết, dễ hiểu và có trình tự. Bạn nên thực hiện tuần tự từng lab một. Tại lab 3 cũng có 1 bài hướng dẫn tạo IP cho LCD.
(bạn cũng có thể thực hiện các lab này ở các phiên bản EDK thấp hơn , sử dụng bus OPB , tất nhiên phải chỉnh sửa lại 1 vài thứ).
Comment
-
Hi chào các bạn, topic này đã lâu mà kame không vào, hì hì! về vấn đề delay bằng vòng for, mình chỉ ước chừng thôi, bời vì điều khiển LCD tương đối dzễ, delay bao nhiêu cũng được, miễn là dài hơn thời gian đáp ứng tối thiều của nó thôi.
Ở trên kame không cần tính toán chi cả, xung clock của CPU là 100Mhz, mình cứ định lượng chạy 1 vòng for là 1 chu kỳ (tất nhiên là lớn hơn 1 chu kỳ rồi), định lượng i x j x chu kỳ ta có được thời gian delay, đơn giản thế thôi.
Phần ví dụ trên, vì sao mình không dùng thẳng GPIO điều khiển LCD mà lại dùng custom IP làm gì ? Nếu dùng GPIO thì mình chỉ việc add vào đơn giản, viết code C là xong. Còn nếu dùng custom IP thì khó hơn, chủ ý của kame không nhằm điều khiển LCD, bởi vì thông qua cách này mình biết được qui trình tạo custom IP, và bạn có thể tạo ra các core IP FFT, IFFT... theo ý mình muốn.
Vì sao phải làm với microblaze mà không làm với picoblaze. Thực sự mà nói kame chưa làm picoblaze bao giờ, nhưng có lẽ ứng dụng của picoblaze là hạn chế, nên khi mới mua kit về kame nhảy thẳng vào tìm hiểu microblaze. CPU tính ra nó cũng gói gọn nhiêu ấy thôi, điều quan trọng là số lượng cách thành phần, IO (IP core) mà nó support, vì thế kame đã chọn Microblaze hoặc PowerPC 405.
Làm cái khó thì quá sức thường dẫn đến chán nản, nhưng mà nếu làm xong rồi thì mình cảm thấy mọi thứ dzễ dzàng hơn, chúc thành công nhé!Last edited by kamejoko80; 02-03-2009, 21:32.
Comment
-
Nguyên văn bởi xuantung Xem bài viếtchào bạn kamejoko80. phần hướng dẫn của bạn về lập trình cho LCD rất hay.tuy nhiên trong quá trình đọc có mọt chỗ mình chưa hiểu đó là đoạn "Chọn nút radio address, trong mục size (kích thước vùng nhớ cho ngoại vi) trong drop list chọn 64K, sau đó chọn Generate Addresses, Xillin tự động tính toán các đường địa chỉ và remap lại cho toàn bộ ngoại vi" ở đây ta có thể chọn vùng nhớ cho ngoại vi LCD thấp hơn hay cao hơn được không?và vì sao bạn lại chọn như vậy. bạn hoặc ai đã hiểu có thể giải thích cho mình. thaks a lot!
Comment
-
Bạn Kame ơi, bạn có thể nói cụ thể "những chú ý" trong các bước ở kit Spartan3e so với kít mà bạn sử dụng để làm Microblaze điều khiển LCD cho mọi người biết được không?Mình thử nghiệm trên Kit Spartan 3e các bước y hệt mà vẫn không được?Technical Institutes
Mobile: 0983278725
Email:
Comment
-
Như vầy! trước tiên bạn thử port của bạn vừa tạo chạy có đúng hay chưa bằng cách gán các chân ra (edit file .ucf) vào dzãy led có trên board, dùng phần mềm xuất ra port xem các led có sáng theo như ý muốn hay không.
Nếu test xong phần này bạn hãy gán vào các chân của LCD. Chú ý về thứ tự bit của port xuất có phù hợp với thứ tự chân LCD hay không, chúc thành công nhé!
Comment
-
Thanks bác kamejoko. Bài viết của bác giúp em rất nhiều trong việc tìm hiểu về MicroBlaze. Tuy nhiên, em không nạp thẳng vào bord như bác mà em phải dùng Modelsim mô phỏng trước, như thế mới test được hết các lỗi của mình. Hiện em đang thử load các core mình cần sử dụng vào Modelsim, sau đó nạp file .hex được biên dịch từ SDK vào BRAM. Em cũng đang gặp một số khó khăn. Có j mong bác chỉ giáo.
Comment
Bài viết mới nhất
Collapse
-
bởi ww88vipWW88, một trong những đơn vị tiên phong trong lĩnh vực cá cược trực tuyến, tự hào mang đến cho người chơi những trải nghiệm giải trí đỉnh cao với hệ sinh thái sản phẩm đa dạng. Từ cá cược thể thao đầy kịch tính đến casino trực...
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 12:46 -
-
bởi tungdqEm cần tìm sơ đồ mạch một số Main máy tính đời cao như Asrock B560M-HDV, các cao nhân chỉ giúp với. Thank!
-
Channel: Các mạch điện ứng dụng
hôm nay, 08:27 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677nhân tiện cho mình hỏi thêm về cái phần test hipot (cao áp),là để kiểm tra độ bền cách điện giưa các cuộn dây,mà thấy thông số test thường ở mức 4kvac,vậy nếu mấy con fail đó xài bình thường vẫn dduocj phải không ạ,vì điện mình làm gì lên tới mức đó
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:52 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677máy đo số vòng thì cty có ,mà nó to quá,tưởng có máy nào gọn gọn bỏ túi được thì tiện hơn,vì đi lại nhiều...
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:47 -
-
bởi tmcodonMình thấy diễn đàn có chuyên mục quảng cáo rồi mà. Bạn đóng góp để mở luồng riêng
-
Channel: Hướng dẫn sử dụng diễn đàn
09-11-2024, 13:36 -
-
bởi Nicole08Xin chào mọi người, tôi đã sử dụng Flashforge Inventor 2 được gần 5 năm và rất hài lòng với nó, nhưng tuần trước đã xảy ra sự cố. Có vẻ như động cơ bước đưa sợi in vào đầu nóng đã bị hỏng. Mọi thứ khác có vẻ ổn trên máy...
-
Channel: Điện tử dành cho người mới bắt đầu
09-11-2024, 12:55 -
Comment