利用TLD2131組成LED顯示矩陣
關(guān)鍵詞:
TLD2131,TLD2331,LED,智能車(chē)競(jìng)賽,Infineon01 TLD2131
一、LED矩陣
??在 測(cè)試Infineon車(chē)載LED驅(qū)動(dòng)芯片TLD2131[1] 中對(duì)于1入3出的TLD2131的LED驅(qū)動(dòng)芯片進(jìn)行了初步測(cè)試。為了能夠使用更少的MCU的IO口控制更多的LED,需要使用LED矩陣模式。這一點(diǎn)正好可以利用到TLD2132的高邊驅(qū)動(dòng)LED的特性,因此只要在輔助幾個(gè)NPN三極管在底邊進(jìn)行選擇,可以很方便組織LED的矩陣顯示。??對(duì)于N個(gè)上邊輸出端口,M個(gè)下邊輸出端口,可以形成N×MLED點(diǎn)陣控制。通過(guò)循環(huán)控制,可以動(dòng)態(tài)形成對(duì)于單個(gè)LED的控制特性。▲ 圖1.1.1 LED 顯示矩陣二、基于TLD2331的LED矩陣
??Infineon公司的高邊LED驅(qū)動(dòng)芯片系列中,有三入三出的TLD2331-3EP,它的內(nèi)部結(jié)構(gòu)如下圖所示。利用一個(gè)TLD2331-3EP便可以驅(qū)動(dòng)三列LED,利用兩個(gè)TLD2331便可以控制六列LED輸出。因此在使用三個(gè)NPN三極管,便可以組成6×3=18個(gè)LED矩陣。??為了驗(yàn)證TLD2331驅(qū)動(dòng)特性,本文利用手邊剛剛到手的TLD2131組成電路進(jìn)行測(cè)試。▲ 圖1.2.1 TLD2131(左)TLD2331(右)內(nèi)部功能圖02 電路測(cè)試
一、電路設(shè)計(jì)
??基于 三個(gè) ? TLD2131[2] 模擬一顆TLSD2331的高邊控制,測(cè)試電路的特性。1、電路原理圖[](AD\Test\2021\TLD2131\TestTLD2131Mul.PcbDoc * "測(cè)試電路板AD工程文件")
??利用三顆TLD2131組成3×3LED顯示矩陣的電路原理圖如下:▲ 圖2.1.1 利用三顆TLD2131組成3×3LED顯示矩陣2、快速制版實(shí)驗(yàn)PCB
??設(shè)計(jì)單面PCB實(shí)現(xiàn)上述原理圖,可以適合使用 一分鐘制版[3] 制作實(shí)驗(yàn)電路。下面是設(shè)計(jì)的相應(yīng)的PCB。▲ 圖2.1.2 利用快速制版工藝制作的單面PCB設(shè)計(jì)3、焊接PCB
??一分鐘之后,通過(guò)快速制版獲得PCB,進(jìn)行焊接之后,形式調(diào)試電路。▲ 圖2.1.3 焊接實(shí)驗(yàn)電路板二、搭建電路
1、在面包板上搭建電路
??在面包板上搭建測(cè)試電路??刂破魇褂?設(shè)計(jì)帶有SD卡的 MM32F3277 MicroPython 實(shí)驗(yàn)板[4] 來(lái)控制??刂乒苣_分布使用 PC0,1,2,3, PA0,1來(lái)控制。其中下載了 來(lái)自MindMotion在2021-11的版本MicroPython[5] ??梢允褂肕icroPython來(lái)測(cè)試相應(yīng)功能。▲ 圖2.2.1 在面包板上搭建的測(cè)試電路2、連接關(guān)系
??MM32F3277測(cè)試電路板與LED矩陣測(cè)試控制端口之間的連接關(guān)系如下:? ● ?測(cè)試連接關(guān)系:???
EN123:PC0,PC1,PC2
???
CN123:PC3,PA0,PA1
三、測(cè)試LED矩陣
1、整體閃爍
(1) 測(cè)試代碼
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)測(cè)試結(jié)果
??軟件運(yùn)行后,可以看到所有(9顆)LED同時(shí)閃爍。▲ 圖2.3.1 ?所有LED閃爍2、流水燈測(cè)試
(1)測(cè)試代碼
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?