利用TLD2131组成LED矩阵显示实验电路板
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用TLD2131组成LED矩阵显示实验电路板相关的知识,希望对你有一定的参考价值。
简 介: 利用了Infineon公司的高边LED驱动芯片TLD2131,TLD2331,来与NPN晶体管共同组成LED矩阵驱动电路,可以利用少量的GPIO来驱动LED矩阵显示。本文利用了三个TLD2131组成了3×3的LED矩阵,测试了电路的工作原理。为应用在智能车竞赛中显示电压大小的LED灯柱设计提供基础。
关键词
: TLD2131,TLD2331,LED,智能车竞赛,Infineon
§01 TLD2131
一、LED矩阵
在 测试Infineon车载LED驱动芯片TLD2131 中对于1入3出的TLD2131的LED驱动芯片进行了初步测试。为了能够使用更少的MCU的IO口控制更多的LED,需要使用LED矩阵模式。这一点正好可以利用到TLD2132的高边驱动LED的特性,因此只要在辅助几个NPN三极管在底边进行选择,可以很方便组织LED的矩阵显示。
对于N个上边输出端口,M个下边输出端口,可以形成N×MLED点阵控制。通过循环控制,可以动态形成对于单个LED的控制特性。
▲ 图1.1.1 LED 显示矩阵
二、基于TLD2331的LED矩阵
Infineon公司的高边LED驱动芯片系列中,有三入三出的TLD2331-3EP,它的内部结构如下图所示。利用一个TLD2331-3EP便可以驱动三列LED,利用两个TLD2331便可以控制六列LED输出。因此在使用三个NPN三极管,便可以组成6×3=18个LED矩阵。
为了验证TLD2331驱动特性,本文利用手边刚刚到手的TLD2131组成电路进行测试。
▲ 图1.2.1 TLD2131(左)TLD2331(右)内部功能图
§02 电路测试
一、电路设计1
基于 三个 TLD2131 模拟一颗TLSD2331的高边控制,测试电路的特性。
1、电路原理图1
利用三颗TLD2131组成3×3LED显示矩阵的电路原理图如下:
▲ 图2.1.1 利用三颗TLD2131组成3×3LED显示矩阵
2、快速制版实验PCB
设计单面PCB实现上述原理图,可以适合使用 一分钟制版 制作实验电路。 下面是设计的相应的PCB。
▲ 图2.1.2 利用快速制版工艺制作的单面PCB设计
3、焊接PCB
一分钟之后,通过快速制版获得PCB,进行焊接之后,形式调试电路。
▲ 图2.1.3 焊接实验电路板
二、搭建电路
1、在面包板上搭建电路
在面包板上搭建测试电路。控制器使用 设计带有SD卡的 MM32F3277 MicroPython 实验板 来控制。控制管脚分布使用 PC0,1,2,3, PA0,1来控制。其中下载了 来自MindMotion在2021-11的版本MicroPython 。可以使用MicroPython来测试相应功能。
▲ 图2.2.1 在面包板上搭建的测试电路
2、连接关系
MM32F3277测试电路板与LED矩阵测试控制端口之间的连接关系如下:
-
测试连接关系:
-
EN123
:PC0,PC1,PC2
CN123
:PC3,PA0,PA1
三、测试LED矩阵
1、整体闪烁
(1) 测试代码
from machine import Pin
import utime
row = [Pin('PC%d'%i, Pin.OUT_PUSHPULL) for i in range(3)]
col = [Pin('PC3', Pin.OUT_PUSHPULL),
Pin('PA0', Pin.OUT_PUSHPULL),
Pin('PA1', Pin.OUT_PUSHPULL)]
print("Light all LED.\\r\\n")
while True:
for r,c in zip(row, col):
r(1)
c(1)
utime.sleep_ms(250)
for r,c in zip(row, col):
r(0)
c(0)
utime.sleep_ms(250)
(2)测试结果
软件运行后,可以看到所有(9颗)LED同时闪烁。
▲ 图2.3.1 所有LED闪烁
2、流水灯测试
(1)测试代码
from machine import Pin
import utime
row = [Pin('PC%d'%i, Pin.OUT_PUSHPULL) for i in range(3)]
col = [Pin('PC3', Pin.OUT_PUSHPULL),
Pin('PA0', Pin.OUT_PUSHPULL),
Pin('PA1', Pin.OUT_PUSHPULL)]
print("Light all LED.\\r\\n")
ledrow = 0
rowbyte = [7]*3
def LED1ms():
global ledrow, rowbyte, row, col
for r,c in zip(row, col):
r(0)
c(0)
rb = 0
if ledrow == 0:
ledrow += 1
elif ledrow == 1:
ledrow += 1
else:
ledrow = 0
row[ledrow](1)
rb = rowbyte[ledrow]
if rb & 0x1: col[0](1)
if rb & 0x2: col[1](1)
if rb & 0x4: col[2](1)
def SetLEDPoint(id):
global rowbyte
rowbyte = [0]*3
pp = id//3
p3 = id - pp*3
rowbyte[pp] = 1 << p3
count = 0
position = 0
while True:
LED1ms()
utime.sleep_ms(1)
count += 1
if count >= 50:
count = 0
SetLEDPoint(position)
position += 1
if position > 8: position = 0
(2)测试结果
▲ 图2.3.2 测试流水灯的效果
3、测试LED柱
(1)测试代码
在前面的测试代码的基础上增加SetLEDColumn()函数,并对主循环进行修改。
def SetLEDColumn(id):
global rowbyte
rowbyte = [0]*3
for i in range(id + 1):
pp = i//3
p3 = i - pp*3
rowbyte[pp] |= 1 << p3
#------------------------------------------------------------
count = 0
position = 0
dir = 0
while True:
LED1ms()
utime.sleep_ms(1)
count += 1
if count >= 50:
count = 0
if dir == 0:
SetLEDColumn(position)
else:
SetLEDColumn(8 - position)
position += 1
if position > 8:
position = 0
if dir == 0: dir = 1
else: dir = 0
(2)测试结果
▲ 图2.3.3 程序运行效果
※ 测试总结 ※
利用了Infineon公司的高边LED驱动芯片TLD2131,TLD2331,来与NPN晶体管共同组成LED矩阵驱动电路,可以利用少量的GPIO来驱动LED矩阵显示。本文利用了三个TLD2131组成了3×3的LED矩阵,测试了电路的工作原理。为应用在智能车竞赛中显示电压大小的LED灯柱设计提供基础。
一、LED灯柱
根据 第十七届全国大学生智能车竞赛 中要求,无线充电阻需要使用LED显示当前车模法拉电容上的电压大小。利用上面的参考设计,可以方便设计出由LED组成的发光阵列来显示。
利用两颗TLD2331可以驱动6列LED,配合3个NPN晶体管可以控制18串LED显示。三个LED串联可以增加阵列的宽度,使得显示更加的醒目。
▲ 图3.1 18列独立控制的LED矩阵
■ 相关文献链接:
- 测试Infineon车载LED驱动芯片TLD2131
- 以上是关于利用TLD2131组成LED矩阵显示实验电路板的主要内容,如果未能解决你的问题,请参考以下文章