利用了Infineon公司的高邊LED驅動芯片TLD2131,TLD2331,來與晶體管共同組成LED矩陣驅動電路,可以利用少量的GPIO來驅動LED矩陣顯示。本文利用了三個TLD2131組成了3×3的LED矩陣,測試了電路的工作原理。為應用在智能車競賽中顯示電壓大小的LED燈柱設計提供基礎。

 

01 TLD2131

 

一、LED矩陣

 

在 測試Infineon車載LED驅動芯片TLD2131[1] 中對于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 電路測試

 

一、電路設計

 

基于 三個   TLD2131[2] 模擬一顆TLSD2331的高邊控制,測試電路的特性。

 

1、電路原理圖[](AD\Test\2021\TLD2131\TestTLD2131Mul.PcbDoc * "測試電路板AD工程文件")

 

利用三顆TLD2131組成3×3LED顯示矩陣的電路原理圖如下:

▲ 圖2.1.1 利用三顆TLD2131組成3×3LED顯示矩陣

 

2、快速制版實驗PCB

設計單面PCB實現上述原理圖,可以適合使用 一分鐘制版[3] 制作實驗電路。下面是設計的相應的PCB。

 

▲ 圖2.1.2 利用快速制版工藝制作的單面PCB設計

 

3、焊接PCB

一分鐘之后,通過快速制版獲得PCB,進行焊接之后,形式調試電路。

 

▲ 圖2.1.3 焊接實驗電路板

 

二、搭建電路

1、在面包板上搭建電路

在面包板上搭建測試電路??刂破魇褂?設計帶有SD卡的 MM32F3277 MicroPython 實驗板[4] 來控制??刂乒苣_分布使用 PC0,1,2,3, PA0,1來控制。其中下載了 來自MindMotion在2021-11的版本MicroPython[5] ??梢允褂肕icroPython來測試相應功能。

 

▲ 圖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燈柱

根據 第十七屆全國大學生智能車競賽[6] 中要求,無線充電阻需要使用LED顯示當前車模法拉電容上的電壓大小。利用上面的參考設計,可以方便設計出由LED組成的發光陣列來顯示。

 

利用兩顆TLD2331可以驅動6列LED,配合3個NPN晶體管可以控制18串LED顯示。三個LED串聯可以增加陣列的寬度,使得顯示更加的醒目。

 

▲ 圖3.1 18列獨立控制的LED矩陣

 

 

參考資料

[1]測試Infineon車載LED驅動芯片TLD2131: https://zhuoqing.blog.csdn.net/article/details/121393835

[2]TLD2131: https://www.nexty-ele.com/nat/wp-content/uploads/sites/3/2017/10/Infineon-TLD2131-3EP-DS-v01_00-EN.pdf

[3]一分鐘制版: https://zhuoqing.blog.csdn.net/article/details/104120559

[4]設計帶有SD卡的 MM32F3277 MicroPython 實驗板: https://zhuoqing.blog.csdn.net/article/details/121174772

[5]來自MindMotion在2021-11的版本MicroPython: https://zhuoqing.blog.csdn.net/article/details/121372618

[6]第十七屆全國大學生智能車競賽: https://zhuoqing.blog.csdn.net/article/details/121187014