利用TLD2131组成LED矩阵显示实验电路板

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用TLD2131组成LED矩阵显示实验电路板相关的知识,希望对你有一定的参考价值。

简 介: 利用了Infineon公司的高边LED驱动芯片TLD2131,TLD2331,来与NPN晶体管共同组成LED矩阵驱动电路,可以利用少量的GPIO来驱动LED矩阵显示。本文利用了三个TLD2131组成了3×3的LED矩阵,测试了电路的工作原理。为应用在智能车竞赛中显示电压大小的LED灯柱设计提供基础。

关键词 TLD2131TLD2331LED智能车竞赛Infineon

TLD2131
文章目录
LED矩阵
基于TLD2331的LED矩阵
电路测试
电路设计
电路原理图
快速制版实验PCB
焊接PCB
搭建电路
在面包板上搭建电路
连接关系
测试LED矩阵
整体闪烁
流水灯测试
测试LED柱
测试总结
LED灯柱

 

§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矩阵


■ 相关文献链接: