STM32: 基于ChibiOS/RT实时系统的LED点阵显示系统 - 基于GD32F150C6T6 MCU

这是个很有意思的东西,484个LED, 11行44列排列,可以显示4个中文字符:

-显示语言:英文、中文、繁体中文、韩文、日文和所有欧州国家语言

-最大可显示英文1500个字符,中文675个字符,6条文本信息,2个图文信息

-四级亮度调节25%、50%、75%、100%

-充电时间:2〜3个小时

-工作时间:20~40个小时

-显示方式:滚动、固定、飘雪、闪动、保持

 . . + . . . . . . + + . + . . . . . . . . . . . + . . . + . . . . . . . . . . . + + + . . . . .
 + + + + + . + + + . . . + + + + + + + + + + . . + . + + + + + + . . + + + + + + . . . . . . . .
 . + . + . . + . . . . . + . . . . + . . . . + . + . . . + . . + . . + . . . . . . . . . . . . .
 . + . + . . + . . . . + . . . . . + . . . . + . + + . . + . . + . . + . . . + . . . . . . . . .
 + + + + + . + + + + + . . + + + + + + + + . + . + . . . + . . + . . + . . . + . . . . . . . . .
 . . + . . . + . . + . . . + . . . + . . . . + . + . . . + . . + . + + + + + + + + + + + . . . .
 + + + + + . + . . + . . . + . . . + . . . . + . + . + + + + + + + . . . . . + . . . . . . . . .
 . . + . . . + . . + . + + + + + + + + + + + . . + . . . + . . . . . . . . . + . . . . . . . . .
 . + + + . . + . . + . . . . . . . + . . . . . . + . . + . + . . . . . + . . + . . + . . . . . .
 + . + . + . + . . + . . . . . . . + . . . . . . + . + . . . + . . . + . . . + . . . + . . . . .
 . . + . . + . . . + . . . . . . . + . . . . . . + + . . . . . + + + . . . + + . . . . + . . . .
  • 相关的专利信息

没想到这货居然有专利(相关):

  1. https://www.google.com/patents/CN104795003A?cl=zh
  2. https://www.google.com/patents/CN202454182U?cl=zh&hl=zh-CN
  3. https://www.google.com/patents/CN204614365U?cl=zh
  • 硬件信息 - 484个LED

MCU使用的是GD32F150C6T6, 直接使用23个GPIO来控制每个LED的状态。

通过USB接口与电脑进行通信,可以更改显示内容及方式(没有试过)。

控制484个LED所使用的GPIO如下:.

2017_02_23_led_matrix

 

从表中可以看到各个GPIO与LED的位置关系,设置LED灯的状态可通过如下方式:

  1. 将需要点亮的LED所在列的GPIO设置成push-pull模式,并且输出高电平;
  2. 而对于其他不需要点亮的LED所在列的GPIO设置成open-drain模式, 并且将输出设为1;
  3. 之后将每一行对应的GPIO(open-drain模式)将输出设为0;

从下面这张图可以看到每两列LED由同一个GPIO口控制,而每一行则由3个GPIO口进行控制:

2017_01_21_led_gpio

有了这两张表,控制板子上LED的状态基本就不是什么问题了。

  • 硬件信息 - 按键

这个LED胸牌的背面有一个按键:

-短按:切换显示的内容;

-长按:改变显示的亮度,有四种亮度可供选择;

-按键对应的GPIO为GPIOA pin0

  • 硬件信息 -其他

-SWD接口对应的GPIO为:GPIOA pin13(SWD)及GPIOA pin14(SCK)

-USART2接口对应的GPIO为:GPIOA pin2(TX)及GPIOA pin3(RX)

  • 软件实现

有了硬件相关的信息,并且还有相关文档的支持。

代码可以从这里下载:

https://github.com/brobwind/chibios_Gd32f150c6t6_led_44x11
  • 固件下载

由于使用的是GD32F150C6T6 MCU,需要使用GD-LINK下载。当然,也可以通过如下方式,使用ST-LINK下载:

STM32: 通过ST-LINK/V2-1+OpenOCD更新GD32F150C6T6固件

  • 关于字库

目前看来,有两种字库可供选择:

1. Zpix点阵字库:https://github.com/SolidZORO/zpix-pixel-font .

2017_01_21_Zpix_1.0_review@2x

(图片来自:https://github.com/SolidZORO/zpix-pixel-font)

看起来显示效果很不错,连繁体字看起来都很舒服。当然使用这个字库是需要付费的。

2. 文泉驿点阵宋体:http://wenq.org/wqy2/index.cgi?bmpchinese

从修订历史上看,是支持11×11点阵的:

2.4. 2005/1/17(1.0发布)

添加功能:

1. 添加了从14X14放缩拷贝到12X12/11X11点阵,以及从12X12放缩拷贝到11X11点阵的功能

2. 装入字符列表时在标题显示该分区字符总数

3. 在字符列表目录下(List/)添加了Ext1和Ext2目录,Ext1下为新添加的笔画较为简单或者字符数目较少的分区,Ext2为离线扩展二区的分区列表

  • 关于chibios license的问题

详见:http://www.chibios.org/dokuwiki/doku.php?id=chibios:licensing:start

2016_01_21_chibios_license

对于商业用途,并不是完全免费的,看来得考虑使用其他的实时系统了。

  • 相关的参考文档
  1. http://www.chibios.org/dokuwiki/doku.php
  2. http://www.chibios.org/dokuwiki/doku.php?id=chibios:licensing:start
  3. http://bbs.mydigit.cn/read.php?tid=1870319&fpage=0&ds=1&toread=0&page=

《STM32: 基于ChibiOS/RT实时系统的LED点阵显示系统 - 基于GD32F150C6T6 MCU》有14个想法

        1. 最上面那个表的内容是LED灯的坐标,(0, 0)在最左上角,可以参考下面的彩图。
          而下面的彩图表示的是每个灯由哪两个GPIO控制,比如最左上解那个(0, 0: 22)由PF7 & PA10r控制

  1. 一个引脚可以一起控制那么多个LED灯:意思是不能独立点亮某一LED灯吗,能产生的状态不是2的484次方吗?

  2. 有没有pcb,我就想知道他的0603用的多大的封装,好像比我们的都偏小,谢谢

  3. 基于chibios/rt GD32 的LLD底层驱动编写,在哪可以找到借鉴,GD32 其他几个系列需要用?

发表评论

电子邮件地址不会被公开。 必填项已用*标注