leon...... 发表于 2019-8-8 11:24:54

庆祝一下,PIZero+ESP32成功驱动LED屏

本帖最后由 leon...... 于 2019-8-9 19:48 编辑

LED屏分辨率192*128, 总算对得起这一个月的努力,图像刷新率20HZ,LED屏刷新率70HZ,色彩支持RGB 555,视频播放效果还算可以,速度受限于ESP32的SPI-SLAVE只有11M

              SPI(11M)                  I2S(20M)
PIZERO ---------------》ESP32------------------》LED屏HUB75

PI Zero本身可以直驱LED屏,但是因为是单核,所以在中间加入了ESP32做屏幕刷新。

PI Zero直驱LED屏的驱动在这里:https://github.com/hzeller/rpi-rgb-led-matrix

PI Zero的SPI驱动使用的是这个库:https://github.com/notro/fbtft

ESP32驱动LED屏我使用的是这个库:https://github.com/mrfaptastic/ESP32-RGB64x32MatrixPanel-I2S-DMA

ESP32的SPI驱动使用的是这个库:https://github.com/kimata/esp32_arduino_spi_slave

整合之后这是现在的效果。

为什么不用FPGA而用ESP32驱动LED屏?不会FPGA啊。FPGA的确是最佳方案。
为什么买PI Zero? PI4买不到,PI3又不想买,PI3二手也不好收。先拿PI ZERO试试水了。下一步打算买个香蕉ZERO回来试试。


天荒 发表于 2019-8-8 11:26:54

厉害了,赞一个!

avr-arm 发表于 2019-8-8 11:29:35

厉害了,赞一个!

genhao2 发表于 2019-8-8 11:29:53

多块屏拼在一起可以组个大屏幕了

leon...... 发表于 2019-8-8 11:43:00

genhao2 发表于 2019-8-8 11:29
多块屏拼在一起可以组个大屏幕了

这个本身是6块屏拼接成的,想拼接更大的ESP32是不行了,或者上PI4,或者等ESP32-S2

wxws 发表于 2019-8-8 11:47:54

漂亮
取图这块请教一下, 是直接读的framebuffer吗?有没git介绍下

leon...... 发表于 2019-8-8 12:11:38

wxws 发表于 2019-8-8 11:47
漂亮
取图这块请教一下, 是直接读的framebuffer吗?有没git介绍下

楼主位有连接,fbtft有很详细的介绍,https://github.com/notro/fbtft/wiki/Framebuffer-use

Excellence 发表于 2019-8-8 13:01:36

厉害了,赞一个!

Himem 发表于 2019-8-8 13:16:52

i2s推hub75这创意绝了

didadida 发表于 2019-8-8 14:37:14

好看,发现点阵看起来比细腻的显示屏科技感还要强一些

leon...... 发表于 2019-8-8 15:05:59

高清MP4播放效果







rom 发表于 2019-8-8 15:57:01

ESP32很强嘛

javenreal 发表于 2019-8-8 16:02:40

高手 , 强 !

qianj1986 发表于 2019-8-8 16:31:18

再大点,在远点,完美

deadline2012 发表于 2019-8-8 21:45:36

leon...... 发表于 2019-8-8 15:05
高清MP4播放效果

楼主这个屏幕是什么型号的

muniao 发表于 2019-8-8 21:59:55

厉害了。。

leon...... 发表于 2019-8-8 22:59:42

deadline2012 发表于 2019-8-8 21:45
楼主这个屏幕是什么型号的

驱动IC是ICN2037, 接口是HUB75

跟你说,买这个屏老坑人了,驱动IC不同,驱动方式波形就不同,就是同一个驱动IC,又分RGB和BGR(LED脚位不同)。

害我其中有二块屏不能匹配,我的130大洋,,,,,,,

leon...... 发表于 2019-8-8 23:01:21

qianj1986 发表于 2019-8-8 16:31
再大点,在远点,完美

嗯,320*256就比较完美了,等PI-4到了就升级试试。

huangqi412 发表于 2019-8-9 13:27:10

还以为是做无线显示

kevinchen026 发表于 2019-8-9 13:30:57

Pi zero ESP32 厉害

90soso 发表于 2019-8-9 16:02:31

我有派3,要出,不过串口输出有问题,其他正常,有兴趣可以联系我~~,价格好说~~

90soso 发表于 2019-8-9 16:03:46

顺便问一下,这个屏价格几何~~

jjj 发表于 2019-8-9 16:25:38

楼主,你已经彻底颠覆了我的世界观
LED 显示

ayumi8 发表于 2019-8-9 17:02:30

我曹 我曹 高手   我现在还是玩单色的就弄了个 时钟    图像不会玩哇

leon...... 发表于 2019-8-9 17:35:54

90soso 发表于 2019-8-9 16:03
顺便问一下,这个屏价格几何~~

屏一片70块左右包邮 64X64

leon...... 发表于 2019-8-9 17:37:22

90soso 发表于 2019-8-9 16:02
我有派3,要出,不过串口输出有问题,其他正常,有兴趣可以联系我~~,价格好说~~ ...

串口输出坏了吗?是3B还是3

motoedy 发表于 2019-8-9 17:41:46

厉害了,赞一个!

yyts 发表于 2019-8-9 20:18:30

I2S 有的少位数据?你应该不止一个75接口吧?用多路I2S吗

leon...... 发表于 2019-8-9 20:50:16

yyts 发表于 2019-8-9 20:18
I2S 有的少位数据?你应该不止一个75接口吧?用多路I2S吗

支持8/16/32位,当前用的是16位,只有一个75ESP32的IO不够用,只能接一路75接口。

yyts 发表于 2019-8-9 21:08:19

leon...... 发表于 2019-8-9 20:50
支持8/16/32位,当前用的是16位,只有一个75ESP32的IO不够用,只能接一路75接口。 ...

一个75也要6位数据(两组RGB),I2S有这么多数据位吗?

leon...... 发表于 2019-8-9 21:19:22

yyts 发表于 2019-8-9 21:08
一个75也要6位数据(两组RGB),I2S有这么多数据位吗?

有的,ESP32支持I2S并行8/16/32位数据传输。

iandroid 发表于 2019-8-9 22:13:09

厉害了,赞一个!{:victory:}

lyg407 发表于 2019-8-10 08:45:14

厉害,赞一个。

编辑原因:修正错别字。

astankvai 发表于 2019-8-10 14:18:05

这个效果可以啊。

90soso 发表于 2019-8-12 09:10:10

leon...... 发表于 2019-8-9 17:37
串口输出坏了吗?是3B还是3

3b ,串口没有输出,其他正常,需要的话。我要周日才能给你发,周中没时间

leon...... 发表于 2019-8-12 15:43:24

90soso 发表于 2019-8-12 09:10
3b ,串口没有输出,其他正常,需要的话。我要周日才能给你发,周中没时间 ...

什么价格,这里需要3B的坛友很多,报一下价格,总会有不在意串口的兄弟会下手的。

yyts 发表于 2019-8-13 18:59:50

leon...... 发表于 2019-8-9 21:19
有的,ESP32支持I2S并行8/16/32位数据传输。

是用的LCD模式吗?

leon...... 发表于 2019-8-14 10:19:58

yyts 发表于 2019-8-13 18:59
是用的LCD模式吗?

啊,不是LCD模式呀,用的是I2S 并行,下面是初始化代码 (I2S_PARALLEL_BITS_16):

typedef enum {
    I2S_PARALLEL_BITS_8=8, // BUG: Doesn't work.
    I2S_PARALLEL_BITS_16=16,
    I2S_PARALLEL_BITS_32=32,
} i2s_parallel_cfg_bits_t;


    i2s_parallel_config_t cfg={
      .gpio_bus={r1_pin, g1_pin, b1_pin, r2_pin, g2_pin, b2_pin, lat_pin, oe_pin, a_pin, b_pin, c_pin, d_pin, e_pin, -1, -1, -1},
      .gpio_clk=clk_pin,
      .clkspeed_hz=ESP32_I2S_CLOCK_SPEED, //ESP32_I2S_CLOCK_SPEED,// formula used is 80000000L/(cfg->clkspeed_hz + 1), must result in >=2.Acceptable values 26.67MHz, 20MHz, 16MHz, 13.34MHz...
      .bits= I2S_PARALLEL_BITS_16,
      .bufa=0,
      .bufb=0,
      desccount,
      desccount,
      dmadesc_a,
      dmadesc_a
    };

    //Setup I2S
    i2s_parallel_setup_without_malloc(&I2S1, &cfg);

bitcoin2 发表于 2019-8-14 13:42:20

硬件没有怎么实现的?

deadline2012 发表于 2019-8-14 14:20:29

leon...... 发表于 2019-8-9 17:35
屏一片70块左右包邮 64X64

这个屏幕尺寸是多少,LED点距离多少

leon...... 发表于 2019-8-14 15:34:26

本帖最后由 leon...... 于 2019-8-14 15:35 编辑

deadline2012 发表于 2019-8-14 14:20
这个屏幕尺寸是多少,LED点距离多少

LED的点距是P3也就是3MM
单块屏幕是192*192mm
图中是6块小屏拼接成的

jiaowoxiaolu 发表于 2019-8-14 15:38:23

原来是并行输出,我说呢,IIS引脚怎么够用

qwert1213131 发表于 2019-8-19 08:12:09

漂亮啊       赞

zljcat3721 发表于 2019-8-19 11:34:01

赞一个,感谢分享

leon...... 发表于 2019-10-30 18:08:23

本帖最后由 leon...... 于 2019-10-30 18:45 编辑

最近有空,画了一块PCB,这下子像样多了。源文件已上传这里

shangxf 发表于 2019-10-30 22:14:44

厉害了               

leon...... 发表于 2019-10-30 23:18:27

guojihongwhpu 发表于 2019-10-30 23:09
用什么软件画的板子,3D看起来很牛

用的是KICAD https://www.amobbs.com/thread-5720175-1-1.html

liurangzhou 发表于 2020-4-16 15:04:30

请教下,这种屏变颜色的原理是什么?我看ICN2037的SPI只能控制开和关,而不能控制电流是多少啊

leon...... 发表于 2020-4-16 16:33:39

liurangzhou 发表于 2020-4-16 15:04
请教下,这种屏变颜色的原理是什么?我看ICN2037的SPI只能控制开和关,而不能控制电流是多少啊
...

动态刷新,比如说刷新8次,1次亮,7次灭,那么就是最低亮度,能控亮度后就可以进行调色了。

liurangzhou 发表于 2020-4-16 17:32:35

leon...... 发表于 2020-4-16 16:33
动态刷新,比如说刷新8次,1次亮,7次灭,那么就是最低亮度,能控亮度后就可以进行调色了。 ...

那得多高频率?

leon...... 发表于 2020-4-16 17:36:18

liurangzhou 发表于 2020-4-16 17:32
那得多高频率?

是的,需要很高的刷新频率。刷新也提不上来。暂且够用吧。

iamseer 发表于 2020-4-17 03:11:40

本帖最后由 iamseer 于 2020-4-17 03:13 编辑

LZ你其实搞一块led驱动卡就可以了。我试过5A-75B,有开源驱动方案。只有linux端有千兆网卡即可,usb转出来的也行

leon...... 发表于 2020-4-17 10:03:25

iamseer 发表于 2020-4-17 03:11
LZ你其实搞一块led驱动卡就可以了。我试过5A-75B,有开源驱动方案。只有linux端有千兆网卡即可,usb转出来 ...

我也有想过,但没有找到驱动方案,可以共享一下资料吗?

iamseer 发表于 2020-4-18 04:55:53

http://falconchristmas.com/forum/index.php/topic,6871.0.html
https://github.com/FalconChristmas/fpp/blob/master/src/channeloutput/ColorLight-5a-75.cpp

falconchristmas 之前有人研究过这个,是mplayer的插件,很详细,你可以看一下。我当时测试还没有千兆树莓派,所以是用的NanoPi NEO2驱动。百兆网口不能用,我估计新树莓派没什么问题。
开源方案还没有人解决配置问题,所以必须在PC上用厂家配置工具配置好参数,点亮屏幕,写入flash,才能在linux上用。

我不太会写内核驱动,所以是在应用程序里软件渲染好画面,然后socket送出。由于5A-75B的数据包不是标准UDP包,所以必须root才能发送。如果你能成功用内核驱动点亮也欢迎分享。

协议的的话每一帧需要先发0101的包,再发0AFF的包,之后就可以用5500包填充数据,你可以参考github。具体0101还是0AFF负责从缓冲区输出帧我记不得了,但是二者缺一个就不行。另外5A-75B会缓冲大概一还是两帧数据,我也记不清了。



iamseer 发表于 2020-4-18 05:01:46

有一个诀窍。5A-75B如果你同一个口上屏串得越多,刷新率就越低。我一般一个口只插一块屏,这样用摄像机拍比较不闪。

另外LEDVISION配置软件的操作比较诡异。中文网站上你找不到说明书可以到英文网站或者在google上搜一下,英文说明书是公开的而且比较齐全。

iamseer 发表于 2020-4-18 05:15:17

本帖最后由 iamseer 于 2020-4-18 05:25 编辑

https://gist.github.com/DeqingSun/5205978a25bccc6246c46d3b728393f7

驱动代码我放这里了,gcc编译一下就行。

旧出厂的5A-75B设置到新一些的LED驱动芯片可能会出一些诡异的问题,看一下固件版本不是最新的话就先升级再测试。

leon...... 发表于 2020-4-20 09:59:21

iamseer 发表于 2020-4-18 05:15
https://gist.github.com/DeqingSun/5205978a25bccc6246c46d3b728393f7

驱动代码我放这里了,gcc编译一下 ...

谢谢了,这个可以学习学习,{:biggrin:}

vvzhaodan 发表于 2020-7-1 17:52:47

我用STM32F407VE驱动192x128全彩RGB555,9场原理图(4/16T,8/16T,1T,2T,4T),扫描全屏一次1.3us,扫描一场11ms。现在已经改成驱动超大型点阵屏的方案STM32H745双核MCU,M4 240M内核全速扫描,M7视频解码,DMA搬运内存共享,已经比高成本的FPGA效果好很多了。

polarbear 发表于 2020-7-1 22:56:24

vvzhaodan 发表于 2020-7-1 17:52
我用STM32F407VE驱动192x128全彩RGB555,9场原理图(4/16T,8/16T,1T,2T,4T),扫描全屏一次1.3us,扫描一场1 ...

灰度只有5比特,显示效果鸡肋; LED 显示屏要显示灰度,起步是8位;

vvzhaodan 发表于 2020-7-2 10:30:17

polarbear 发表于 2020-7-1 22:56
灰度只有5比特,显示效果鸡肋; LED 显示屏要显示灰度,起步是8位;

看用在什么方面吧,超大型屏肯定是24bit色了

polarbear 发表于 2020-7-2 12:13:36

vvzhaodan 发表于 2020-7-2 10:30
看用在什么方面吧,超大型屏肯定是24bit色了

市场上要么就是不带灰度 几十元的烂大街的驱动板;

要么就是带FPGA的 全彩驱动板, 这种主板灰度起步就是8:8:8的;

而且LED的色域比LCD要宽得多, 所以你这个5bit的方案自己玩玩就算了,没有市场价值的。

vvzhaodan 发表于 2020-7-10 08:57:38

polarbear 发表于 2020-7-2 12:13
市场上要么就是不带灰度 几十元的烂大街的驱动板;

要么就是带FPGA的 全彩驱动板, 这种主板灰度起步就 ...

用恩智浦的搞定了,灰度8:8:8 256级,128*1024无压力 刷新1900Hz/s比FPGA方案简单{:lol:}

13580445117 发表于 2020-8-5 22:28:30

图像刷新率20HZ,LED屏刷新率70HZ,色彩支持RGB 555
图像刷新率是指每秒画图的速度吗?
LED屏刷新率是指?
色彩支持RGB 555?为什么不是565格式

vvzhaodan 发表于 2021-3-1 13:42:57

我用STM32H750 驱动大型128x1024 全彩屏 256级灰度,目前成本40元左右,吊打同级FPGA方案。

工程师030 发表于 2021-3-1 14:44:32

vvzhaodan 发表于 2021-3-1 13:42
我用STM32H750 驱动大型128x1024 全彩屏 256级灰度,目前成本40元左右,吊打同级FPGA方案。 ...

用H750是因为主频高吗?是不是可以用全志的芯片成本更有优势

fengyunyu 发表于 2021-3-1 14:59:03

工程师030 发表于 2021-3-1 14:44
用H750是因为主频高吗?是不是可以用全志的芯片成本更有优势

全志的应该更便宜

xintao929 发表于 2021-3-8 10:29:20


厉害了,赞一个!

WUJIANLING 发表于 2022-4-6 20:45:19

朋友给个代码测试一下,“STM32H750 驱动大型128x1024 全彩屏 256级灰度,目前成本40元左右,吊打同级FPGA方案”

WUJIANLING 发表于 2022-4-6 20:46:12

vvzhaodan 发表于 2021-3-1 13:42
我用STM32H750 驱动大型128x1024 全彩屏 256级灰度,目前成本40元左右,吊打同级FPGA方案。 ...
(引用自65楼)

太厉害了,代码能借鉴一下吗?

vvzhaodan 发表于 2022-4-7 14:18:21

WUJIANLING 发表于 2022-4-6 20:46
太厉害了,代码能借鉴一下吗?
(引用自70楼)

现在H750涨价到100元一片了,性价比不算高了

WUJIANLING 发表于 2022-4-8 00:44:04

没有吧,我前两天买了一块开发板,就80块钱

armok. 发表于 2022-5-19 06:28:41

WUJIANLING 发表于 2022-4-8 00:44
没有吧,我前两天买了一块开发板,就80块钱
(引用自72楼)

此人:

违反版规使用大字体、谩骂坛友,WUJIANLING(手机号码:13580445117,4350098@qq.com,任君行-剑之凌)来泼妇骂街了 https://www.amobbs.com/forum.php?mod=viewthread&tid=5765955
页: [1]
查看完整版本: 庆祝一下,PIZero+ESP32成功驱动LED屏