- 感測(cè)系統(tǒng)設(shè)計(jì)方案
- TSL256x的內(nèi)部結(jié)構(gòu)和工作原理
- 采用光強(qiáng)傳感器TSL256x
- 軟件的設(shè)計(jì)
- 硬件的設(shè)計(jì)
- 采用數(shù)字信號(hào)輸出方式
TSL256x是TAOS公司推出的一種高速、低功耗、寬量程、可編程靈活配置的光強(qiáng)傳感器芯片。本文簡(jiǎn)要介紹了TSL256x的基本特點(diǎn)、引腳功能、內(nèi)部結(jié)構(gòu)和工作原理,給出了TSL2561的實(shí)用電路、軟件設(shè)計(jì)流程以及核心程序。
1 TSL256x簡(jiǎn)介
TSL2560和TSL2561是TAOS公司推出的一種高速、低功耗、寬量程、可編程靈活配置的光強(qiáng)度數(shù)字轉(zhuǎn)換芯片。該芯片可廣泛應(yīng)用于各類顯示屏的監(jiān)控,目的是在多變的光照條件下,使得顯示屏提供最佳的顯示亮度并盡可能降低電源功耗;還可以用于街道光照控制、安全照明等眾多場(chǎng)合。該芯片的主要特點(diǎn)如下:
◇ 可編程設(shè)置許可的光強(qiáng)度上下閾值,當(dāng)實(shí)際光照度超過該閾值時(shí)給出中斷信號(hào);
◇ 數(shù)字輸出符合標(biāo)準(zhǔn)的SMBus(TSL2560)和I2C(TSL2561)總線協(xié)議;
◇ 模擬增益和數(shù)字輸出時(shí)間可編程控制;
◇ 1.25 mm×1.75 mm超小封裝,在低功耗模式下,功耗僅為0.75 mW;
◇ 自動(dòng)抑制50 Hz/60 Hz的光照波動(dòng)。
2 TSL256x的引腳功能
TSL256x有2種封裝形式: 6LEAD CHIPSCALE和6LEAD TMB。封裝形式不同,相應(yīng)的光照度計(jì)算公式也不同。圖1為這兩種封裝形式的引腳分布圖。
各引腳的功能如下:
腳1和腳3: 分別是電源引腳和信號(hào)地。其工作電壓范圍是2.7~3.5V。
腳2: 器件訪問地址選擇引腳。由于該引腳電平不同,該器件有3個(gè)不同的訪問地址。訪問地址與電平的對(duì)應(yīng)關(guān)系如表1所列。
表1 器件訪問地址與引腳2電平的對(duì)應(yīng)關(guān)系
腳4和腳6: I2C或SMBus總線的時(shí)鐘信號(hào)線和數(shù)據(jù)線。
腳5: 中斷信號(hào)輸出引腳。當(dāng)光強(qiáng)度超過用戶編程設(shè)置的上或下閾值時(shí),器件會(huì)輸出一個(gè)中斷信號(hào)。
[page]
3 TSL256x的內(nèi)部結(jié)構(gòu)和工作原理
TSL256x是第二代周圍環(huán)境光強(qiáng)度傳感器,其內(nèi)部結(jié)構(gòu)如圖2所示。通道0和通道1是兩個(gè)光敏二極管,其中通道0對(duì)可見光和紅外線都敏感,而通道1僅對(duì)紅外線敏感。積分式A/D轉(zhuǎn)換器對(duì)流過光敏二極管的電流進(jìn)行積分,并轉(zhuǎn)換為數(shù)字量,在轉(zhuǎn)換結(jié)束后將轉(zhuǎn)換結(jié)果存入芯片內(nèi)部通道0和通道1各自的寄存器中。當(dāng)一個(gè)積分周期完成之后,積分式A/D轉(zhuǎn)換器將自動(dòng)開始下一個(gè)積分轉(zhuǎn)換過程。微控制器和TSL2560可通過標(biāo)準(zhǔn)的SMBus( System Management Bus) V1.1或V2.0實(shí)現(xiàn),TSL2561則可通過I2C總線協(xié)議訪問。對(duì)TSL256x的控制是通過對(duì)其內(nèi)部的16個(gè)寄存器的讀寫來實(shí)現(xiàn)的,其地址如表2所列。
表2 TSL256x內(nèi)部寄存器地址及作用
4 TSL256x應(yīng)用設(shè)計(jì)
TSL256x的訪問遵循標(biāo)準(zhǔn)的SMBus和I2C協(xié)議,這使得該芯片軟硬件設(shè)計(jì)變得非常簡(jiǎn)單。這兩種協(xié)議的讀寫時(shí)序雖然很類似,但仍存在不同之處。下面僅以TSL2561芯片為例,說明TSL256x光強(qiáng)傳感器的實(shí)際應(yīng)用。
4.1 硬件設(shè)計(jì)
TSL2561可以通過I2C總線訪問,所以硬件接口電路非常簡(jiǎn)單。如果所選用的微控制器帶有I2C總線控制器,則將該總線的時(shí)鐘線和數(shù)據(jù)線直接與TSL2561的I2C總線的SCL和SDA分別相連;如果微控制器內(nèi)部沒有上拉電阻,則還需要再用2個(gè)上拉電阻接到總線上。如果微控制器不帶I2C總線控制器,則將TSL2561的I2C總線的SCL和SDA與普通I/O口連接即可;但編程時(shí)需要模擬I2C總線的時(shí)序來訪問TSL2561,INT引腳接微控制器的外部中斷。硬件連接如圖3所示。
4.2 軟件設(shè)計(jì)
微控制器可以通過I2C總線協(xié)議對(duì)TSL2561進(jìn)行讀寫。寫數(shù)據(jù)時(shí),先發(fā)送器件地址,然后發(fā)送要寫的數(shù)據(jù)。TSL2561的寫操作過程如下:先發(fā)送一組器件地址;然后寫命令碼,命令碼是指定接下來寫寄存器的地址00h~0fh和寫寄存器的方式,是以字節(jié)、字或塊(幾個(gè)字)為單位進(jìn)行寫操作的;最后發(fā)送要寫的數(shù)據(jù),根據(jù)前面命令碼規(guī)定寫寄存器的方式,可以連續(xù)發(fā)送要寫的數(shù)據(jù),內(nèi)部寫寄存器會(huì)自動(dòng)加1。對(duì)于I2C協(xié)議具體的讀寫時(shí)序,可以參考相關(guān)資料,在此不再贅述。TSL2561的軟件設(shè)計(jì)流程如圖4所示。
限于篇幅,在此給出對(duì)TSL2561讀寫操作的部分程序:
[page]
unsigned char TSL2561_write_byte( unsigned char addr, unsigned char c) {
unsigned char status=0;
status=twi_start();//開始
status=twi_writebyte(TSL2561_ADDR|TSL2561_WR);//寫TSL2561地址
status=twi_writebyte(0x80|addr);//寫命令
status=twi_writebyte(c);//寫數(shù)據(jù)
twi_stop( );//停止
delay_ms(10);//延時(shí)10 ms
return 0;
}
unsigned char TSL2561_read_byte( unsigned char addr, unsigned char *c) {
unsigned char status=0;
status= twi_start( );//開始
status=twi_writebyte(TSL2561_ADDR|TSL2561_WR);//寫TSL2561地址
status=twi_writebyte(0x80|addr);//寫命令
status=twi_start( );//重新開始
status=twi_writebyte(TSL2561_ADDR|TSL2561_RD);//寫TSL2561地址
status=twi_readbyte(c,TW_NACK);//寫數(shù)據(jù)
twi_stop( );
delay_ms(10);
return 0;
}
當(dāng)積分式A/D轉(zhuǎn)換器轉(zhuǎn)換完成后,可以從通道0寄存器和通道1寄存器讀取相應(yīng)的值CH0和CH1,但是要以Lux(流明)為單位,還要根據(jù)CH0和CH1進(jìn)行計(jì)算。對(duì)于TMB封裝,假設(shè)光強(qiáng)為E(單位為L(zhǎng)ux),則計(jì)算公式如下:
① 0<CH1/CH0≤0.50
E=0.030 4×CH0-0.062×CH0×(CH1/CH0)1/4
② 0.50<CH1/CH0≤0.61
E=0.022 4×CH0-0.031×CH1
③ 0.61<CH1/CH0≤0.80
E=0.012 8×CH0-0.015 3×CH1
④ 0.80<CH1/CH0≤1.30
E=0.001 46×CH0-0.001 12×CH1
⑤ CH1/CH0>1.30
E=0
對(duì)于CHIPSCALE封裝,計(jì)算公式可以查看相應(yīng)的芯片資料。
5 結(jié)論
采用TSL256x實(shí)現(xiàn)光強(qiáng)度實(shí)時(shí)監(jiān)測(cè)的系統(tǒng),具有精度高、成本低、體積小等優(yōu)點(diǎn)。芯片內(nèi)部集成了積分式A/D轉(zhuǎn)換器,采用數(shù)字信號(hào)輸出,因此抗干擾能力比同類芯片強(qiáng)。該芯片在光強(qiáng)監(jiān)測(cè)控制領(lǐng)域已得到廣泛應(yīng)用。