Nhà Sản phẩmMô-đun hiển thị LED

SparkFun hoặc Adafruit 32x32 RGB LED Panel Driver Hướng dẫn 16 tín hiệu dữ liệu kết nối + 5VDC làm mới để hiển thị một hình ảnh

SparkFun hoặc Adafruit 32x32 RGB LED Panel Driver Hướng dẫn 16 tín hiệu dữ liệu kết nối + 5VDC làm mới để hiển thị một hình ảnh

    • SparkFun or Adafruit 32x32 RGB LED Panel Driver Tutorial 16 data signals connect + 5VDC refreshed to display an image
    • SparkFun or Adafruit 32x32 RGB LED Panel Driver Tutorial 16 data signals connect + 5VDC refreshed to display an image
    • SparkFun or Adafruit 32x32 RGB LED Panel Driver Tutorial 16 data signals connect + 5VDC refreshed to display an image
    • SparkFun or Adafruit 32x32 RGB LED Panel Driver Tutorial 16 data signals connect + 5VDC refreshed to display an image
    • SparkFun or Adafruit 32x32 RGB LED Panel Driver Tutorial 16 data signals connect + 5VDC refreshed to display an image
    • SparkFun or Adafruit 32x32 RGB LED Panel Driver Tutorial 16 data signals connect + 5VDC refreshed to display an image
  • SparkFun or Adafruit 32x32 RGB LED Panel Driver Tutorial 16 data signals connect + 5VDC refreshed to display an image

    Thông tin chi tiết sản phẩm:

    Nguồn gốc: Trung Quốc
    Hàng hiệu: Leeman
    Chứng nhận: UL CE ROHS ISO2000 ETL SGS SAA Fcc EMC
    Số mô hình: Bảng điều khiển LED PH5 RGB

    Thanh toán:

    Số lượng đặt hàng tối thiểu: 1 đơn vị hoặc 1 chiếc
    Giá bán: Negotiation (Good price)
    chi tiết đóng gói: Hộp Carton hoặc trường hợp Bằng Gỗ
    Thời gian giao hàng: 1-3 ngày làm việc
    Điều khoản thanh toán: L / C, T / T, Công Đoàn phương tây, Paypal, Thẻ tín dụng, MoneyGram, VISA, MasterCard, Tiền Mặt
    Khả năng cung cấp: 50.000 đơn vị mỗi tháng
    Liên hệ với bây giờ
    Chi tiết sản phẩm
    Kích thước mô-đun: 160x160 hoặc 320x160 hoặc 256x256 hoặc 192x192 hoặc 256x128 Độ phân giải: 32x32 pixel 64x32 pixel
    độ sáng: Hơn 2500nits Điện áp đầu vào: DC5V
    Loại quét: 1/2 hoặc 1/4 hoặc 1/8 hoặc 1/16 hoặc 1 / 32Scan Tỷ lệ tươi: ≥ 2400Hz
    Loại LED: SMD2121 SMD3528 SMD3535 SMD2727 SMD5050 MTTF: > 100.000 giờ

    SparkFun hoặc Adafruit 32x32 RGB LED Panel Driver Hướng dẫn 16 tín hiệu dữ liệu kết nối + 5VDC làm mới để hiển thị một hình ảnh

    Giới thiệu

    Trong dự án này, chúng tôi giao diện bảng điều khiển LED SparkFun hoặc Adafruit 32x32 RGB cho bảng màu BeagleBone Black sử dụng Xilinx Spartan 6 LX9 FPGA trên bo mạch LogiBone FPGA. Phần cứng cho dự án này tương đối dễ xây dựng — chỉ 16 tín hiệu dữ liệu kết nối bảng LED với bo mạch LogiBone FPGA. Sự phức tạp của dự án này chủ yếu nằm trong RTL và phần mềm.

    Hình 1. Bảng điều khiển LED RGB với một mẫu lấp lánh ngẫu nhiên được kết nối với bo mạch LogiBone FPGA và một số hình ảnh bảng mẫu khác.

    Phần cứng cần thiết

    Các mục phần cứng sau đây được yêu cầu:

    • Bảng điều khiển LED 32x32 RGB của SparkFun hoặc Adafruit
      Bảng điều khiển này chứa 1024 RGB LED được sắp xếp theo ma trận 32x32. Các cột được điều khiển bằng cách sử dụng nhiều bộ thanh ghi thay đổi và các hàng được điều khiển, hai hàng tại một thời điểm, sử dụng bộ giải mã địa chỉ 4 bit. Bảng điều khiển được định hướng ở chu kỳ nhiệm vụ thứ 1/16 và phải được làm mới liên tục để hiển thị hình ảnh.

    • Bảng mạch CPU BeagleBone Black w / USB hoặc nguồn điện 5VDC
      Bạn sẽ cần một bo mạch chủ BeagleBone Black CPU và nguồn điện + 5VDC cho nó. Bạn có thể sử dụng cáp USB để cấp nguồn cho bo mạch từ máy tính hoặc bộ điều hợp nguồn USB hoặc sử dụng ID + 5VDC, 2.1mm riêng biệt, bộ chuyển đổi AC trung tâm dương.

    • Ban FPGA LogiBone
      Ban FPGA chứa Xilinx Spartan 6 LX9 FPGA. FPGA chứa 32 khối RAM 18kbit. Chúng tôi sẽ sử dụng hai bộ nhớ RAM khối làm bộ đệm khung để giữ các giá trị pixel RGB được hiển thị trên bảng điều khiển. Hai đầu nối tương thích PMOD Digilent sẽ được sử dụng để kết nối với bảng LED.

    • Dây nhảy hoặc bo mạch bộ điều hợp PMOD-to-display để kết nối FPGA với màn hình
      Ban đầu, tôi sử dụng dây nhảy nam-nữ để kết nối bảng điều khiển. Điều này cho phép tôi kết nối trực tiếp bảng mạch LogiBone FPGA với bảng điều khiển màn hình LED mà không cần sử dụng cáp ribbon kèm theo màn hình. Nếu bạn chỉ có dây nhảy nam-to-nam, bạn sẽ cần phải sử dụng cáp ribbon 16 vị trí đi kèm với màn hình làm bộ điều hợp để kết nối với các chân nam ở đầu màn hình của dây nhảy.
      Một giải pháp sạch hơn, lâu dài hơn là sử dụng bảng này và cáp ribbon 16 vị trí đi kèm với bảng điều khiển LED để tạo kết nối từ bo mạch LogiBone FPGA tới đầu nối đầu vào của màn hình. Tôi cũng đã sử dụng dây và vỏ đầu cuối được đặt trước để kết nối FPGA và bảng điều khiển với nhau. Tôi không thích giải pháp này bởi vì các dây đầu cuối được đặt trước, khi được lắp đặt trong đầu nối nhà ở 2x8, cần quá nhiều lực để chèn vào và tháo ra khỏi đầu nối dữ liệu của màn hình.

    • + Cung cấp điện 3.3V, 2.0A danh định, 4.0A đỉnh
      Trong hoạt động bình thường, màn hình sẽ thu được nhiều nhất khoảng 2A dòng điện. Nếu bạn “ngừng” phần làm mới với mẫu trắng toàn bộ được hiển thị, hai hàng được thắp sáng sẽ vẽ khoảng 3.8A. Một nguồn cung cấp năng lượng cho máy tính để bàn 3.3V, 3.0A nhỏ như thế này từ Mouser sẽ đủ trong khi hoạt động bình thường. Bạn sẽ cần cung cấp dây nguồn IEC60320 C13 của riêng bạn để sử dụng với bộ chuyển đổi này.
      Những tấm này cũng có thể chạy từ + 5V thay vì 3.3V. Bạn sẽ nhận được màu xanh sáng hơn, xanh sáng hơn và màu trắng ít hơn nếu được điều khiển từ + 5V thay vì + 3.3V. Bạn cũng sẽ kéo thêm khoảng 15% hiện tại và sử dụng thêm 65% công suất ở + 5V thay vì + 3.3V. Nếu bạn sử dụng nguồn cung cấp 5V, hãy cẩn thận không để kết nối vô tình bảng mạch LogiBone FPGA với đầu nối đầu ra của màn hình.

    • Bộ điều hợp jack thùng DC nữ (tùy chọn)
      Một bộ chuyển đổi jack thùng DC nữ sẽ làm cho bảng điều khiển kết nối với nguồn điện dễ dàng hơn nhiều. Nếu bạn không có bộ điều hợp, bạn luôn có thể cắt, nối, hàn và làm nóng các kết nối giữa nguồn điện và bảng điều khiển led.

    Phần mềm bắt buộc

    • Stock ValentFX LogiBone Xây dựng Ubuntu với mô đun hạt nhân Logione logibone_ <revision> _dm.ko và logi_loader
      Tải xuống và làm theo hướng dẫn tại đây để cài đặt hình ảnh mặc định của LogiBone Ubuntu trên thẻ SD.
    • Phần mềm Webpack Xilinx ISE
      Nếu bạn muốn tự mình xây dựng tập tin bit FPGA hoặc tùy chỉnh Verilog để điều khiển nhiều bảng hơn hoặc thêm các chức năng tùy chỉnh khác (như bộ xử lý để giúp tính toán các mẫu pixel khó), bạn sẽ cần phải tải xuống và cài đặt phần mềm Xilinx ISE WebPack. Hướng dẫn có tại đây . Nếu bạn chỉ muốn sử dụng tệp bit FPGA mặc định, bạn có thể bỏ qua cài đặt phần mềm Xilinx ISE WebPack.
    • Kho lưu trữ GIT của bảng điều khiển LED của Glen
      Cuối cùng, bạn cần phải sao chép kho lưu trữ GIT của tôi tại http://github.com/bikerglen/beagle vào BeagleBone Black của bạn. Kho lưu trữ này chứa mã nguồn Verilog cho FPGA, một tệp bit dựng sẵn và mã nguồn C ++ để hiển thị một số mẫu trình diễn trên bảng điều khiển. Hướng dẫn tải xuống hoặc nhân bản và sử dụng kho lưu trữ được trình bày sau.

    Nguyên lý hoạt động

    Hệ thống này có ba thành phần chính: bảng LED, mã FPGA và mã C ++. Hãy xem xét từng chi tiết trong ba thành phần chính này.

    Bảng LED

    Bảng điều khiển LED

    Bảng điều khiển LED chứa 1024 RGB LED được sắp xếp trong ma trận 32 hàng và 32 cột. Mỗi đèn LED RGB chứa các chip LED màu đỏ, xanh lục và xanh lam riêng biệt được lắp ráp cùng nhau trong một gói duy nhất. Màn hình được chia nhỏ theo chiều ngang thành hai nửa. Nửa trên bao gồm 32 cột và 16 hàng. Nửa dưới cũng bao gồm 32 cột và 16 hàng.

    Các cột của màn hình được điều khiển bởi một bộ trình điều khiển và các hàng của màn hình được điều khiển bởi một bộ trình điều khiển khác. Để chiếu sáng đèn LED, các trình điều khiển cho cả cột và hàng cho đèn LED đó phải được bật. Để thay đổi màu của đèn LED, các chip màu đỏ, xanh lục và xanh lam trong mỗi gói LED được điều khiển riêng và có trình điều khiển cột riêng. Hình 2 bên dưới là biểu diễn sơ đồ của tổ chức trình điều khiển hàng và cột của màn hình.

    Hình 2. Cột bảng điều khiển LED RGB và tổ chức điều khiển hàng.

    Bảng điều khiển chứa sáu bộ trình điều khiển cột; ba cho nửa trên của màn hình và ba cho phía dưới. Mỗi trình điều khiển có 32 kết quả đầu ra. Ba trình điều khiển cho phía trên cùng của màn hình hiển thị ổ đĩa màu đỏ, xanh lá cây và xanh dương trong mỗi 32 cột đèn LED trong các hàng từ 0 đến 15 của bảng điều khiển. Ba trình điều khiển cho dưới cùng của màn hình hiển thị ổ đĩa màu đỏ, xanh lá cây, và màu xanh chip trong mỗi 32 cột đèn LED trong hàng 16 đến 31 của bảng điều khiển.

    Mỗi trình điều khiển có đầu vào dữ liệu nối tiếp, đầu vào trống, thanh ghi thay đổi và thanh ghi đầu ra song song như hình 3. Dữ liệu có trên đầu vào dữ liệu nối tiếp được chuyển vào thanh ghi thay đổi bằng tín hiệu SCLK. Sau khi toàn bộ hàng dữ liệu đã được chuyển vào thanh ghi thay đổi, tín hiệu LATCH được sử dụng để chuyển hàng dữ liệu pixel từ thanh ghi thay đổi vào thanh ghi đầu ra song song. Nếu một bit trong thanh ghi đầu ra là '1' và đầu vào trống được xác nhận lại, trình điều khiển cho cột đó sẽ được bật; nếu không, trình điều khiển sẽ bị tắt. Dữ liệu được dịch chuyển từ cạnh phải của màn hình sang cạnh trái của màn hình. Nói cách khác, bit đầu tiên được dịch chuyển sẽ được hiển thị ở cạnh trái của màn hình và bit cuối cùng được dịch chuyển sẽ được hiển thị bên phải.

    Hình 3. Hoạt động của trình điều khiển cột cho đầu vào dữ liệu R0 và các đầu ra cột đỏ nửa đầu. Có thêm hai thanh ghi thay đổi ở phía trên cùng của màn hình hiển thị cho các cột màu xanh lá cây và xanh lục nửa đầu và ba cột khác ở dưới cùng cho các cột màu đỏ, xanh lá cây và xanh dương nửa dưới.

    Các trình điều khiển cột màu đỏ, xanh lá cây và xanh dương cho nửa trên của màn hình được gắn tương ứng với các đầu vào dữ liệu R0, G0 và B0. Trình điều khiển cột màu đỏ, xanh lá cây và xanh dương cho nửa dưới của màn hình được gắn tương ứng với đầu vào dữ liệu R1, G1 và B1. Tất cả sáu trình điều khiển 32 bit đều có chung tín hiệu SCLK, LATCH và BLANK.

    Các hàng được điều khiển bằng cách sử dụng bốn bit địa chỉ và một bộ giải mã địa chỉ. Đầu vào địa chỉ bốn bit cho các trình điều khiển hàng được giải mã và hai trình điều khiển hàng tương ứng với địa chỉ đó sẽ được bật. Khi A [3: 0] bằng 0, các hàng 0 và 16 của màn hình được bật. Khi A [3: 0] là 1, hàng 1 và 17 của màn hình được bật. Mẫu này tiếp tục cho đến khi A [3: 0] là 15 và các hàng 15 và 31 được bật.

    Ngoài logic và hàng của trình điều khiển và hàng, màn hình hiển thị có một đầu vào trống. Đầu vào này rất có thể được kết nối với các trình điều khiển cột. Khi tín hiệu xóa được xác nhận, tất cả các điểm ảnh sẽ bị tắt và màn hình sẽ có màu đen. Khi tín hiệu xóa được xác nhận lại, các hàng và cột được chỉ định sẽ được định hướng và các pixel tương ứng được chiếu sáng. Để hiển thị hình ảnh mà không nhấp nháy và bóng mờ, tất cả các tín hiệu này phải được sử dụng và được sắp xếp đúng trình tự khi lái xe bảng điều khiển.

    Lái xe bảng điều khiển

    Màn hình được ghép kênh và có chu kỳ nhiệm vụ thứ 1/16. Điều này có nghĩa rằng không có nhiều hơn một hàng trong số 16 ở nửa trên cùng của màn hình và một hàng trong số 16 ở nửa dưới của màn hình được chiếu sáng cùng một lúc. Hơn nữa, đèn LED chỉ có thể bật hoặc tắt. Nếu cả hàng và cột cho đèn LED được bật, đèn LED sẽ được chiếu sáng; nếu không, đèn LED sẽ tắt.

    Để hiển thị hình ảnh, toàn bộ bảng LED phải được quét đủ nhanh để hiển thị hình ảnh liên tục mà không bị nhấp nháy. Để hiển thị các màu khác nhau và các mức độ sáng khác nhau, độ sáng của các chip LED màu đỏ, xanh lục và xanh dương trong mỗi gói LED phải được điều chỉnh bằng cách thay đổi khoảng thời gian mà mỗi chip LED bật hoặc tắt trong một chu kỳ làm mới.

    Quá trình cơ bản được sử dụng để làm mới màn hình khi sử dụng ba bit trên mỗi pixel (một bit cho màu đỏ; một bit cho màu xanh lá cây; và một bit cho màu xanh) là như sau:

    1. Chuyển dữ liệu pixel cho hàng 0 vào trình điều khiển cột trên cùng và dữ liệu pixel cho hàng 16 vào trình điều khiển cột dưới cùng bằng cách sử dụng dữ liệu đầu vào R0, G0, B0, R1, G1 và B1 và ​​tín hiệu đồng hồ thay đổi SCLK.
    2. Xác nhận tín hiệu xóa để trống màn hình.
    3. Đặt đầu vào địa chỉ là 0.
    4. Chốt nội dung của sự thay đổi của trình điều khiển cột đăng ký vào thanh ghi đầu ra của trình điều khiển cột bằng cách sử dụng tín hiệu LATCH.
    5. Xác nhận lại tín hiệu xóa để hiển thị các hàng 0 và 16.
    6. Đợi chút thời gian cố định.
    7. Lặp lại quá trình cho từng cặp hàng trong màn hình.
    8. Lặp lại toàn bộ quá trình ít nhất 100 đến 200 lần mỗi giây để tránh nhấp nháy.

    Quá trình trên sử dụng một bit cho mỗi màu LED. Điều này sẽ cung cấp cho bạn tám màu sắc có thể có: màu đen; các màu cơ bản đỏ, lục và lam; các màu phụ cyan, đỏ tươi và vàng; và màu trắng.

    Để hiển thị nhiều màu sắc và mức độ sáng hơn, kỹ thuật trên được sửa đổi để sử dụng điều chế mã hóa nhị phân . Trong điều chế mã hóa nhị phân, mỗi pixel được điều khiển bằng cách sử dụng nhiều hơn một bit cho mỗi màu trên mỗi pixel. Lượng thời gian mỗi chip LED màu đỏ, xanh lá cây và xanh dương được bật sau đó thay đổi tương ứng với các giá trị màu đỏ, xanh lục và xanh lam của pixel.

    Trong điều chế mã hóa nhị phân, quá trình sau được thực hiện để làm mới màn hình:

    1. Chuyển bit bằng không của các giá trị màu đỏ, xanh lá cây và xanh lam của mỗi pixel cho các hàng 0 và 16 vào các trình điều khiển cột.
    2. Xác nhận tín hiệu xóa để trống màn hình.
    3. Đặt đầu vào địa chỉ là 0.
    4. Chốt nội dung của sự thay đổi của trình điều khiển cột đăng ký vào thanh ghi đầu ra của trình điều khiển cột bằng cách sử dụng tín hiệu LATCH.
    5. Xác nhận lại tín hiệu xóa để hiển thị các hàng 0 và 16.
    6. Đợi chút thời gian, N.
    7. Lặp lại quá trình trên cho bit thứ tự cao hơn của dữ liệu màu trong cùng một hàng. Trong bước 6, hãy chờ hai lần thời gian trễ trước đó. Lặp lại quá trình này cho từng bit dữ liệu màu, tăng gấp đôi thời gian trễ sau khi hiển thị từng bit liên tiếp.
    8. Lặp lại quá trình trên cho từng cặp hàng trong màn hình.
    9. Lặp lại toàn bộ quá trình ít nhất 100 đến 200 lần mỗi giây để tránh nhấp nháy.

    Lưu ý rằng trong triển khai thực tế, quá trình chuyển dữ liệu pixel vào thanh ghi thay đổi trong Bước 1 thường được thực hiện trong thời gian chờ ở Bước 6.

    Có thể thực hiện mờ hiển thị toàn cục bằng cách thay đổi khoảng thời gian tín hiệu làm trống được khẳng định hoặc được xác nhận lại trong khoảng thời gian chờ, ví dụ, khẳng định tín hiệu xóa 25% sớm sẽ dẫn đến màn hình có độ sáng 75% thay vì 100%. Lưu ý rằng trong thời gian mờ toàn cục, thời gian chờ chính nó không được rút ngắn hoặc kéo dài; chỉ có tín hiệu trống được sửa đổi để được khẳng định sớm hơn bình thường.

    FPGA

    FPGA giao diện phần mềm tạo mẫu C ++ chạy trên CPU BeagleBone Black tới bảng LED. Các FPGA hiện nâng nặng cần thiết để làm mới toàn bộ bảng LED khoảng 200 lần mỗi giây. Điều này khiến cho CPU BeagleBone Black miễn phí để tạo ra các mẫu và thực hiện các tác vụ khác.

    Hình 4 . Sơ đồ khối của hệ thống bao gồm sơ đồ khối của các khối chức năng chính của FPGA.

    Như trong Hình 4 ở trên, phần mềm chạy trên BeagleBone Black tạo ra các mẫu. Các mẫu này được nạp vào FPGA trên bo mạch LogiBone bằng bus GPMC của TI SOC. Các mẫu này được ghi vào bộ nhớ hai cổng, hoạt động như một bộ đệm hiển thị. Cuối cùng một bộ điều khiển hiển thị đọc các mẫu ra khỏi bộ nhớ cổng kép, chuyển dữ liệu vào màn hình và cho phép các trình điều khiển hàng cần thiết để hiển thị hình ảnh. Toàn bộ quá trình được lặp lại khoảng 200 lần mỗi giây và tạo ra hình ảnh 32 x 32 RGB với màu 12 bit mà không có bất kỳ tương tác nào từ CPU của BeagleBone Blacks.

    Giao diện GPMC

    TI SOC có một giao diện bộ nhớ có thể lập trình được gọi là bộ điều khiển bộ nhớ đa năng (GPMC). Giao diện này cực kỳ linh hoạt. Nó có thể hoạt động ở cả hai chế độ đồng bộ và không đồng bộ và thời gian bus có thể lập trình được với tốc độ 10ns. Bus GPMC sẽ được sử dụng để chuyển dữ liệu pixel từ phần mềm trên BeagleBone Black sang FPGA trên bo mạch LogiBone.

    Trong hệ thống của chúng tôi, GPMC được cấu hình để hoạt động ở chế độ địa chỉ / dữ liệu ghép kênh không đồng bộ. Trong chế độ này, cả hai địa chỉ và bus dữ liệu đều rộng 16 bit. Điều này cho phép toàn bộ 12-bit pixel được chuyển từ CPU trên BBB sang FPGA trên bảng LogiBone trong một thao tác ghi đơn. Để biết thêm thông tin về chế độ hoạt động không đồng bộ, ghép kênh của GPMC, xem phần 7.1.3.3.10.1.1 của Tài liệu tham khảo kỹ thuật vi xử lý AM335x ARM® Cortex ™ -A8 .

    Tôi đang sử dụng một mạch hơi khác nhau trong FPGA để giao tiếp với xe buýt GPMC hơn dự án LogiBone cổ phiếu. Đó là một chút chậm hơn so với mạch VHDL chứng khoán, nhưng đảm bảo rằng mỗi ghi từ CPU trên xe buýt GPMC tạo ra chính xác một xung nhấp nháy ghi vào giao diện đăng ký bên trong FPGA. Bởi vì nó hơi chậm hơn so với các mạch chứng khoán, nó đòi hỏi thời gian xe buýt sửa đổi và do đó một tập tin thiết lập cây tùy chỉnh thiết bị. Hình 5 dưới đây cho thấy thời gian bus sử dụng giao diện GPMC đã sửa đổi để thực hiện ghi vào FPGA. Hình 6 dưới đây cho thấy thời gian bus sử dụng giao diện GPMC đã sửa đổi để thực hiện đọc từ FPGA.

    Hình 5. Mô phỏng ghi vào đích GPMC bằng cách sử dụng các thời gian bus đã sửa đổi.

    Hình 6. Mô phỏng một đọc từ đích GPMC bằng cách sử dụng các thời gian bus đã sửa đổi.

    Địa chỉ đọc hoặc ghi được chốt vào một thanh ghi giữ tạm thời trên cạnh tăng của tín hiệu GPMC_ADVN và dữ liệu ghi được luồn vào thanh ghi giữ tạm thời của nó trên cạnh rơi xuống của tín hiệu GPMC_WEN. Điều này yêu cầu sử dụng GPMC_ADVN và một phiên bản ngược của tín hiệu dữ liệu GPMC_WEN làm đồng hồ. Về mặt kỹ thuật, sử dụng tín hiệu dữ liệu như đồng hồ là tổng. Nó thực sự rất thô, các công cụ Xilinx sẽ tạo ra một lỗi cho tình trạng này. Nhưng bạn có thể đặt ngoại lệ trong tệp UCF cho các mạng bị ảnh hưởng và tổng hợp lực để tiếp tục. Sẽ tốt hơn nếu sử dụng GPMC ở chế độ đồng bộ, nhưng kỹ thuật này đủ tốt cho FPGA cho đến khi tôi có thời gian để xây dựng một phiên bản đồng bộ của giao diện, một mô hình bus GPMC đồng bộ để mô phỏng và học cách sửa đổi cây thiết bị xa hơn.

    Ngoài việc chốt địa chỉ và ghi các giá trị dữ liệu vào các thanh ghi giữ, các tín hiệu điều khiển GPMC_CSN, GPMC_WEN và GPMC_OEN được đăng ký và đưa vào miền đồng hồ 100MHz của FPGA. Một khi trong miền đồng hồ của FPGA, các tín hiệu WEN và OEN được gated với tín hiệu CSN và cạnh được phát hiện để phát hiện ghi vào đích GPCM và đọc từ đích GPMC. Khi phát hiện đọc hoặc ghi, nội dung của thanh ghi địa chỉ và ghi dữ liệu được ghi vào sổ đăng ký trong miền đồng hồ 100MHz của FPGA.

    Lý do chính để làm chậm bus GPMC so với tập tin thiết lập cây cổ phiếu là kéo dài thời gian mà mỗi tín hiệu điều khiển thấp hoặc cao đến ít nhất 30ns để đảm bảo rằng các cạnh của tín hiệu có thể được phát hiện trong 100MHz của FPGA miền đồng hồ. Điều này cũng đảm bảo rằng địa chỉ và dữ liệu sẽ ổn định trong các thanh ghi giữ riêng của chúng trước khi di chuyển nội dung của các thanh ghi đó vào thanh ghi địa chỉ và dữ liệu được đặt trong miền đồng hồ 100MHz của FPGA.

    Các đầu ra của đích GPMC là một bus mà tôi gọi là bus chậm. Bus chậm kết nối GPMC target với giao diện đăng ký của FPGA. Hình 7 cho thấy một ví dụ hoạt động ghi bus chậm. Hình 8 cho thấy một ví dụ hoạt động đọc bus chậm.

    Hình 7. Mô phỏng một ghi bus chậm.

    sb_addr, sb_wr và sb_wr_data sẽ có giá trị chính xác cho xung xung nhịp 100MHz mỗi lần ghi xảy ra trên bus GPMC. Khi giao diện đăng ký thấy sb_wr được xác nhận, nó ghi sb_wr_data vào thanh ghi tại sb_addr.

    Hình 8. Mô phỏng của một bus chậm đọc.

    sb_addr và sb_rd sẽ hợp lệ cho chính xác xung xung nhịp 100MHz mỗi lần đọc xảy ra trên bus GPMC. Giao diện đăng ký thấy sb_rd được xác nhận sau đó phải trả về giá trị của thanh ghi tại địa chỉ sb_addr trên bus sb_rd_data trên chu kỳ đồng hồ rất kế tiếp.

    Đăng ký giao diện

    Giao diện đăng ký được thực hiện ở cấp cao nhất của FPGA Verilog. Giao diện đăng ký xác định xem phần mềm có của FPGA. Bảng 1 dưới đây liệt kê các thanh ghi trong FPGA.

    Địa chỉ FPGA Địa chỉ BBB SOC Tên Sự miêu tả
    0x0000 0x0000 R / W kiểm tra Reg 1 Đọc / ghi kiểm tra đăng ký. Viết bất kỳ giá trị nào cho thanh ghi này. Các giá trị đọc trả về giá trị đã viết trước đây.
    0x0001 0x0002 R / W kiểm tra Reg 2 Đọc / ghi kiểm tra đăng ký. Viết bất kỳ giá trị nào cho thanh ghi này. Các giá trị đọc trả về giá trị đã viết trước đây.
    0x0002 0x0004 Kiểm tra R / W Reg 3 Đọc / ghi kiểm tra đăng ký. Viết bất kỳ giá trị nào cho thanh ghi này. Các giá trị đọc trả về giá trị đã viết trước đây.
    0x0003 0x0006 Kiểm tra R / W Reg 4 Đọc / ghi kiểm tra đăng ký. Viết bất kỳ giá trị nào cho thanh ghi này. Các giá trị đọc trả về giá trị đã viết trước đây.
    0x0004 0x0008 Đọc chỉ kiểm tra Reg 1 Đăng ký kiểm tra chỉ đọc. Các lần đọc trả về các giá trị được mã hóa cứng. Xem RTL cho các giá trị trả về.
    0x0005 0x000a Đọc chỉ kiểm tra Reg 2 Đăng ký kiểm tra chỉ đọc. Các lần đọc trả về các giá trị được mã hóa cứng. Xem RTL cho các giá trị trả về.
    0x0006 0x000c Bài kiểm tra chỉ đọc Reg 3 Đăng ký kiểm tra chỉ đọc. Các lần đọc trả về các giá trị được mã hóa cứng. Xem RTL cho các giá trị trả về.
    0x0007 0x000e Read-Only Test Reg 4 Đăng ký kiểm tra chỉ đọc. Các lần đọc trả về các giá trị được mã hóa cứng. Xem RTL cho các giá trị trả về.
    0x0008 0x0010 Hiển thị địa chỉ bộ đệm Ghi vào thanh ghi này đặt con trỏ địa chỉ bộ đệm hiển thị. Con trỏ địa chỉ bộ đệm hiển thị trỏ đến vị trí trong bộ nhớ đệm hiển thị sẽ được sửa đổi khi một giá trị pixel được ghi vào thanh ghi dữ liệu bộ đệm hiển thị. Xem phần bộ đệm hiển thị của tài liệu này để sắp xếp các pixel trong bộ nhớ.
    0x0009 0x0012 Hiển thị dữ liệu bộ đệm Viết giá trị pixel vào thanh ghi này ghi giá trị pixel vào bộ đệm hiển thị tại địa chỉ được trỏ tới bởi con trỏ địa chỉ bộ đệm hiển thị. Sau mỗi lần ghi, con trỏ địa chỉ bộ đệm hiển thị được tăng thêm một điểm tại điểm ảnh tiếp theo trong bộ đệm hiển thị.
    0x000a 0x0014 Bộ đệm hiển thị Chọn Đăng ký 0 chọn bộ đệm 0 để hiển thị; 1 chọn bộ đệm 1 để hiển thị; Đọc trả về bộ đệm hiện đang được hiển thị.

    Bảng 1. Đăng ký FPGA.

    Bộ đệm hiển thị

    Các bộ đệm hiển thị được thực hiện usinx Xilinx Block RAM được cấu hình như các bộ nhớ hai cổng với các cổng đọc và ghi không đồng bộ. RAM đầu tiên chứa bộ đệm hiển thị 0 và 1 cho nửa trên của màn hình. RAM thứ hai chứa bộ đệm hiển thị 0 và 1 cho nửa dưới của màn hình. Cấu trúc các ký ức chứa một nửa hiển thị cho phép các điểm ảnh trong hàng 0 đến 15 được đọc từ bộ nhớ trên cùng một đồng hồ chính xác mà các điểm ảnh trong các hàng từ 16 đến 31 được đọc từ bộ nhớ.

    Bộ đệm hiển thị 0 được đặt tại địa chỉ 0x0000. Bộ đệm hiển thị 1 được đặt tại địa chỉ 0x0400. Mỗi bộ đệm hiển thị chứa 1024 giá trị RGB 12 bit được sắp xếp thành 32 hàng của 32 cột. Trong mỗi bộ đệm hiển thị, pixel trên cùng bên trái được lưu trữ ở độ lệch 0, điểm ảnh dưới cùng bên phải được lưu trữ ở độ lệch 0x3ff. Các bit 4 đến 0 của điểm ảnh pixel là 0x00 đối với pixel ở cột ngoài cùng bên trái trên màn hình; bit 4 đến 0 của điểm ảnh pixel là 0x1F cho pixel ở cột ngoài cùng bên phải.

    Các điểm ảnh được lưu trữ trong bộ nhớ dưới dạng giá trị RGB 12 bit. Các giá trị này được lưu trữ ngay chính xác. Các bit 11 đến 8 là cấp độ điểm ảnh màu đỏ, các bit từ 7 đến 4 là mức xanh lục và các bit từ 3 đến 0 là mức xanh dương.

    Trình điều khiển hiển thị

    Trình điều khiển hiển thị đọc các giá trị pixel từ bộ nhớ, chuyển các giá trị đó sang màn hình và chuyển qua các hàng của màn hình theo yêu cầu để thực hiện điều chế mã hóa nhị phân như được mô tả trong phần lý thuyết hoạt động của tài liệu này. Trình điều khiển hiển thị được thực hiện như một máy trạng thái. Mỗi trạng thái thực hiện một bước trong quá trình làm mới. Khi bước đó hoàn tất, máy trạng thái sẽ chuyển sang bước tiếp theo trong tiến trình.

    Hình 9 dưới đây cho thấy các dạng sóng mô phỏng cho các đầu ra điều khiển và dữ liệu cho ba hàng có giá trị của dữ liệu hiển thị. Quá trình cơ bản là để trống hiển thị, chốt trong dữ liệu đã chuyển trước đó, cập nhật hàng lựa chọn, bỏ trống màn hình, chuyển sang tập dữ liệu điểm ảnh tiếp theo, và sau đó chờ bộ đếm thời gian cập nhật hết hạn. Điều này được lặp lại bốn lần cho mỗi hàng. Nếu bạn kiểm tra đầu ra trống, bạn sẽ nhận thấy rằng khoảng thời gian thấp của nó tăng gấp đôi ba lần trong khoảng thời gian đầu ra cho mỗi hàng hiển thị. Đây là kết quả của việc sử dụng điều chế mã hóa nhị phân để thay đổi cường độ của từng pixel.

    Hình 9. Các dạng sóng mô phỏng cho các kết nối đầu ra dữ liệu hiển thị.

    Phần mềm

    Phần mềm trình diễn sử dụng thiết bị / dev / logibone_mem để giao tiếp với FPGA. Trình điều khiển cho thiết bị này là một phần của hình ảnh Ubuntu của LogiBone và mô-đun hạt nhân có thể tải được cài đặt bởi kịch bản lệnh thiết lập cây đã được sửa đổi được bao gồm trong kho lưu trữ GitHub cho bảng LED. (Xem thêm về chủ đề này trong phần sau.) Trình điều khiển này ánh xạ các thanh ghi trong FPGA tới một phần không gian địa chỉ của BBB CPU bằng cách sử dụng GPMC. GPMC thường ánh xạ bộ nhớ vào không gian địa chỉ của CPU. Bởi vì FPGA của chúng ta trông giống như một bộ nhớ cho bus GPMC, các thanh ghi của nó có thể được ánh xạ vào không gian địa chỉ CPU. Tuyệt đấy. Không có SPI, I2C, v.v. chỉ cần truy cập song song nhanh giữa CPU và FPGA. Không gian được ánh xạ bộ nhớ này có thể được truy cập bằng cách mở thiết bị / dev / logbone_mem bằng cách sử dụng cuộc gọi hàm mở của thư viện C và đọc và ghi vào thanh ghi trong FPGA có thể được thực hiện bằng cách sử dụng lệnh gọi hàm preadpwrite C.

    Hình 10 bên dưới là sơ đồ khối của ngăn xếp phần mềm trình diễn. Trong phần mềm trình diễn, chính mở thiết bị / dev / logibone_mem, lấp đầy bộ nhớ đệm toàn cục, gLevels , với tất cả màu đen và sau đó gọi WriteLevels để ghi bộ đệm toàn cục vào màn hình và xóa màn hình. Khi màn hình hiển thị bị xóa, chức năng chính sẽ khởi tạo một lớp con / hình động như một vòng tròn phát ra, nhiễu perlin hoặc lớp con colorwash. Phân lớp này có nguồn gốc từ một lớp cơ sở mẫu chung.

    Lớp cơ sở mẫu chung sử dụng một hàm tạo để thiết lập chiều cao và chiều rộng của mẫu để tạo ra. Các lớp có nguồn gốc có thể thêm đối số của riêng chúng vào các hàm tạo riêng của chúng. Lớp cơ sở cũng có hai hàm thành viên ảo thuần túy, initnext , rằng bất kỳ lớp dẫn xuất nào cũng phải thực hiện. Hàm init chuẩn bị một mẫu được hiển thị lần đầu tiên. Nó thường đặt lại bất kỳ thông tin trạng thái nào về phần đầu của mẫu. Hàm kế tiếp tính toán khung tiếp theo của mẫu và viết khung đó vào bộ đệm gLevels toàn cầu.

    Sau khi chính đã khởi tạo lớp con mẫu, nó gọi init funciton của lớp con. Chính sau đó cài đặt một bộ đếm thời gian thực hiện tại 50Hz và đi ngủ. Khi bộ hẹn giờ hết hạn, chức năng bộ hẹn giờ được gọi. Chức năng xử lý bộ đếm thời gian gọi WriteLevels để viết khung được tính trước đó trong gLevels đến bộ đệm hiển thị sẵn có tiếp theo trong FPGA và làm cho bộ đệm hiển thị đó hoạt động. Việc ghi vào bộ đệm hiển thị FPGA được thực hiện bằng cách sử dụng thanh ghi được ghi lại trong Giao diện Đăng ký của tài liệu này.

    Sau khi WriteLevels đã hoàn thành, chức năng xử lý bộ đếm thời gian gọi hàm thành viên tiếp theo của mẫu. Hàm tiếp theo tạo khung tiếp theo trong hoạt ảnh, viết khung đó tới gLevels và trả về —không cần gọi WriteLevels. Trình xử lý hẹn giờ sau đó sẽ ngủ cho đến khi bộ hẹn giờ tiếp theo hết hạn. Bằng cách gọi WriteLevels trước khi gọi tiếp theo , lượng thời gian giữa các khung được hiển thị sẽ không thay đổi ngay cả khi lượng thời gian cần thực hiện khác nhau giữa các khung hình.

    Để các hoạt ảnh chạy trơn tru, chức năng xử lý hẹn giờ phải hoàn thành việc thực hiện trước khi bộ hẹn giờ hết hạn tiếp theo. Điều này có nghĩa là mỗi khung hình trong hoạt ảnh phải mất ít hơn 20ms để tính toán.

    Hình 10. Sơ đồ khối của ngăn xếp phần mềm trình diễn.

    Kết nối phần cứng

    Màn hình chỉ yêu cầu kết nối dữ liệu với bo mạch LogiBone FPGA và kết nối nguồn với nguồn điện + 3.3V để hoạt động. Các kết nối này được trình bày chi tiết trong các phần bên dưới.

    Hiển thị kết nối dữ liệu

    Hình 11 bên dưới liệt kê các kết nối giữa các đầu nối PMOD và đầu nối dữ liệu đầu vào của màn hình. Bạn sẽ cần thực hiện tổng cộng 16 kết nối giữa bảng LogiBone và bảng điều khiển hiển thị. Mười ba trong số này là các kết nối dữ liệu; ba trong số này là căn cứ. Bạn có thể sử dụng dây nhảy hoặc bo mạch bộ điều hợp PMOD-to-display. Nếu bạn sử dụng dây nhảy, dây sẽ trông giống như Hình 12. Với bo mạch bộ điều hợp, nó sẽ trông giống như Hình 13. Lưu ý rằng các chân của đầu nối PMOD được đánh số khác với các đầu đề hàng kép thường được đánh số.

    Hình 11. Ghim đầu nối bộ kết nối PMOD, các kết nối giữa đầu nối PMOD và đầu nối đầu vào hiển thị và đầu nối màn hình tắt.

    Hình 12. Board FPGA LogiBone được kết nối với bảng điều khiển LED RGB sử dụng dây nhảy.

    Hình 13. Bảng mạch LogiBone FPGA được kết nối với bảng điều khiển LED RGB sử dụng bo mạch bộ điều hợp PMOD-to-display.

    Hiển thị kết nối nguồn điện

    Khi tín hiệu dữ liệu đã được kết nối, hãy kết nối nguồn điện với màn hình. Hình 14 dưới đây cho thấy những điều cơ bản. Sử dụng bộ điều hợp jack thùng DC, kết nối đầu cực dương của nguồn điện với dây màu đỏ của dây nịt và kết nối đầu cực âm của nguồn điện với dây màu đen của dây nịt. Trước khi kết nối dây nịt vào màn hình, sử dụng đồng hồ vôn để xác minh độ phân cực của các kết nối. Khi bạn đã xác minh tính phân cực, hãy ngắt kết nối nguồn và cắm dây nịt vào màn hình.

    Tôi đã để lại những chiếc phai kéo dài trên dây nịt bởi vì tôi dự định sử dụng màn hình trong một dự án lớn hơn và không muốn loại bỏ chúng cho đến khi tôi chắc chắn rằng tôi không cần chúng trong dự án lớn hơn. Nếu bạn để lại các spade lugs trên quá, hãy cẩn thận họ không vô tình ngắn để bất kỳ thiết bị điện tử khác. Bạn có thể muốn quấn chúng bằng băng điện chỉ để chắc chắn. Nếu bạn không cần hoặc muốn kết nối spade, cảm thấy tự do để cắt chúng ra, dải một chút cách nhiệt ra khỏi dây, và kết nối chúng trực tiếp vào bộ chuyển đổi jack thùng DC.

    Hình 14. Kết nối nguồn điện với bảng điều khiển LED RGB bằng bộ điều hợp giắc cắm thùng DC.

    Chi tiết liên lạc
    Leeman Display Technology Limited

    Người liên hệ: Leeman

    Gửi yêu cầu thông tin của bạn trực tiếp cho chúng tôi (0 / 3000)

    Sản phẩm khác
    <!-- top.location="http://ww17.cnsealings.com/?fp=BhZgH%2B5twv2loAqQPzA5OS3UCd1q7r1HCCg0KrO2ZJLV5l

    P3.91 P4.81 P5.2 500 X 500mm Thuê màn hình ngoài trời Độ nét cao

    Màn hình LED sân khấu bên trong / bên ngoài cho thuê, Màn hình LED Stage Stage đầy màu sắc

    3.91 Màn hình LED cho thuê Pixel Die Casting Độ tương phản cao trong nhà với Góc nhìn lớn

    HD Video Màn hình LED SMD 5050 cho thuê với Ổ đĩa liên tục hiện tại Độ sáng cao

    Màn hình LED đủ màu

    Màn hình LED màu full color ngoài SMD RGB 32 x 16 Matrix High Definition P6.67 P10

    Tiết kiệm năng lượng đầy đủ màu sắc trong nhà LED Video Wall cho nền sân khấu

    1R1G1B SMD Quảng cáo ngoài trời Billboard RGB đầy đủ màu sắc với 6mm Pixel Pitch

    SMD DIP RGB 3IN1 Hiển thị LED đầy đủ màu sắc, Lắp đặt mô-đun cố định Thiết bị hiển thị video kỹ thuật số

    Mô-đun hiển thị LED

    P3 P4 P5 64 * 32 Hệ thống 5G Điều chỉnh 3528 SMD Mô-đun hiển thị LED đủ màu Mô-đun ma trận trong nhà 32 * 16

    Thẻ điều khiển LED MSD300 MRV300 RGB với hệ thống điều khiển đồng bộ hóa

    Mô-đun hiển thị LED 32 x 32 RGB 3 in 1 Độ phân giải cao Bảng điều khiển độ sáng cao 5mm

    Mô-đun LED màu đỏ / xanh / xanh dương P10, Thẻ màn hình LED đơn màu ngoài trời 346 DIP

    Yêu cầu báo giá

    E-Mail | Sơ đồ trang web

    Privacy Policy Trung Quốc tốt chất lượng Màn hình LED đủ màu nhà cung cấp. Copyright © 2015 - 2019 fullcolorled-display.com. All Rights Reserved.