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