led_matrix/README.md

50 lines
1.8 KiB
Markdown
Raw Normal View History

# LED_MATRIX驱动使用说明
#### 物理接口
led_matrix使用hub75接口驱动驱动信号包括
数据线RGB0 3bit、RGB1 3bit、RGB2 3bit预留、RGB3 3bit预留
时钟线1bit
控制线行地址ABCD 4bit 、LAT锁存信号高电平锁存1bit、OE使能信号低电平使能行输出 1bit
#### 软件接口实现
使用 esp32 SDK 库中的 lcd_i80 接口实现16位并行数据输出实现时钟线驱动下16bit数据的并行输出并且内部采用dma方式传输
使用 ledc PWM 实现 LAT 和 OE 信号的定时控制LAT信号在定时器周期快结束时拉高锁存OE信号在定时器周期中先低有效后高无效行输出PWM占空比决定显示亮度注意占空比设置必须在OE锁存信号之前在定时器溢出中断中发送下一次显示的数据
在 ulp riscv 协处理器中轮询捕获OE高电平并在一次高电平中修改一次行地址使用flag和CPU同步实现
#### 文件组成
main/
* esp_lcd_common.h
* esp_lcd_panel_io_i80_hub75.c
esp_lcd_panel_io_i80_hub75.h
* led_matrix.c
led_matrix.h
* ulp/main.c
#### 文件说明
原 SDK 库中 esp_lcd_panel_io_i80.c、esp_lcd_panel_io_i80.c 实现的i80接口对某些引脚有检查所以修改了某些检查同时利用结构体中的format_buffer作为缓冲区添加了一些结构体表项并实现了映射以及发送数据的函数作为文件 esp_lcd_panel_io_i80_hub75.c、esp_lcd_panel_io_i80_hub75.hesp_lcd_common.h是其依赖头文件
led_matrix.c、led_matrix.h 文件中对 led_matrix 整体进行初始化,并提供接口供用户调用。若后期板子大小做出调整,可以修改该文件的相关内容;
ulp/main.c 中是协处理器代码注意需要编写main/CMakeLists.txt将协处理器代码嵌入进工程。