基于一种旋转LED屏的显示控制器设计方案

图1TLC5947驱动旋转LED屏显示控制电路

1.1 STM32F103简介

选用了STM32F103控制器,STM32F103是增强型系列,最高工作时钟频率可达72 MHz,具有ARM CortexM3内核、128~256 KB Flash、20~48 KB RAM、8 MHz CPU晶振、32.768 kHz RTC晶振以及丰富的外设(64个快速I/O口)和4 GB的线性地址空间。ARM采用的仿真器很贵,而单片机的调试工具则非常便宜。相较之下,CortexM3参考单片机,专门拿出一个引脚来做调试,从而节约了大量的人力物力。CortexM3集成了大多数的存储器控制器,这样就可以直接在MCU外连接Flash,降低了设计难度和应用障碍。CortexM3处理器结合了多种突破性技术,使得它能实现低功耗、低成本、高性能三者(或二者)的结合。编程支持ISP下载功能,能通过USB端口和JLINK仿真器供电,使用起来非常方便[6]。

1.2 TLC5947简介

TLC5947是TI(德州仪器)公司推出的24通道,具有内部晶振的12位PWM脉宽调制的LED驱动芯片。TLC5947采用超小32引脚QFN的高级封装[7]。它为LED提供了精确的恒流值,通道与芯片之间的差异值只有±2%;高速的传输速率(单片芯片时30 MHz,级联为15 MHz);输出通道之间交错时间迟滞,避免出现传输误差;该芯片内部具有温度检测系统,当芯片的温度过高时为了保护芯片,它会自动断开所有的输出通道,当温度恢复正常,芯片正常工作;该芯片支持级联,可以多个芯片共同工作以驱动更大规模的LED显示屏幕。24个通道的当前电流值是通过外部IREF与地之间的阻值来设置的,驱动电路中的电阻由所驱动LED灯的电流决定。芯片具有宽泛的操作电压30~55 V,含有4 MHz的内部晶振。TLC5947适用驱动全彩LED和显示屏。

1.3 LED显示屏

选用三色(RGB)LED灯, 实现多重色彩光源,绚丽多彩的输出。同时,LED本身也具备相当的稳定度、高效率、单色彩纯度高、光强度可调等功能。LED与ARM处理器相连接,通过ARM处理器对触摸信号的处理来实现LED灯的显示样式的变化,从基态的指针式时钟变为数字显示式,以及改变其显示的背景,还可以进行时间的校准操作。

2 系统软件设计

2.1 点亮点线圆的设计及其算法和公式

点设计主要应用直角坐标到圆坐标转换[8],通过坐标转换点亮任何位置的灯。线设计源于点设计,在点设计基础上采用Bresenham直线演算法画出所需的直线、斜线、曲线。在线设计基础上衍生出矩形绘画、绘图、填充等功能。

程序初始化完了,接着定义由直角坐标转换到极坐标,在程序中将弧度转到角度,在转换的时候考虑到会有负数数据的输入,加入360+0.5均是为了优化程序,防止出现误差。程序中距离r=x2+y2,角度a=180×arctanxyπ+360+0.5.