Ma trận LED RGB với STM32 và DMA
vài năm trước, [frans-willem] đã nhận được một vài tấm LED RGB. Mười bảng 32 × 16 là rất nhiều đèn LED và để điều khiển tất cả các bảng này yêu cầu một số phần cứng đủ mạnh mẽ. Ông đã cố gắng làm việc với một bảng phát triển FPGA, nhưng điều đó không có đủ bộ nhớ cho màu 24 bit. Vi điều khiển du jour – một ti stellaris – không thể có được nhiều hơn 16 bit màu mà không nhấp nháy. Với một loạt các đèn LED nhưng không có cách nào để lái chúng, [Frans-Willem] đặt các tấm trong một hộp ở đâu đó, chờ đợi trong ngày chúng có thể được sử dụng cho công suất đầy đủ nhất của chúng.
Ngày này đã đến khi [Frans-Willem] đã được giới thiệu với loạt chip STM32 với bảng khám phá F1. Trong khi cố gắng tìm một số trò chơi điện tử để sử dụng với bảng này, anh ta vấp phải các bảng LED và hãy thử thêm rất nhiều lần nữa. Kết quả là ngoạn mục, với 33 bit màu, với hình ảnh động được truyền qua một bộ định tuyến qua WiFi.
Các bảng trong câu hỏi là các bảng LED HUB75. Trong các bảng 32 × 8, có sáu chân dữ liệu – hai chân mỗi lần cho mỗi màu – bốn hàng chọn ghim và ba chân điều khiển. Các thanh chọn hàng Chọn hàng pixel nào đang hoạt động bất cứ lúc nào. Chu kỳ qua chúng đủ nhanh, và nó có vẻ như tất cả họ cùng một lúc. Các chân điều khiển hoạt động khá giống như các chân kiểm soát của một thanh ghi thay đổi, với các chân dữ liệu điền vào vai trò rõ ràng.
Mã thực sự điều khiển đèn LED, tất cả đều xảy ra trên STM32F4 với sự trợ giúp của DMA và FSMC hoặc bộ điều khiển bộ nhớ tĩnh linh hoạt được tìm thấy trên chip. Ngoại vi này sẽ chăm sóc các dòng điều khiển được tìm thấy trong bộ nhớ, vì vậy khi bạn chuyển đổi nhấp nháy, chip sẽ kết xuất bất cứ thứ gì trên các dòng dữ liệu đến một địa chỉ nhất định trong bộ nhớ. Đó là một cách tuyệt vời để chăm sóc tạo tín hiệu đồng hồ.
Để gửi pixel đến trình điều khiển hiển thị này, [frans-willem] đang sử dụng WR703N LINK TP-phổ biến. Ban đầu ông đã lên kế hoạch gửi tất cả dữ liệu pixel qua cổng USB, nhưng có quá nhiều chi phí, USB 1.1 không đủ nhanh. Đã được cố định bằng cách sử dụng UART trên bộ định tuyến với một người lái xe mới và phiên bản biên dịch lại của OpenWRT.
Tất cả các phần mềm để sao chép dự án này có sẵn trên GitHub và có một video tuyệt vời cho thấy dự án hoàn thành có thể làm gì. Bạn có thể kiểm tra xem bên dưới.