æ‘˜è¦ TSL256x是TAOSå…¬å¸æŽ¨å‡ºçš„ä¸€ç¨®é«˜é€Ÿã€ä½ŽåŠŸè€—ã€å¯¬é‡ç¨‹ã€å¯ç·¨ç¨‹éˆæ´»é…置的光強傳感器芯片。本文簡è¦ä»‹ç´¹äº†TSL256x的基本特點ã€å¼•腳功能ã€å…§éƒ¨çµæ§‹å’Œå·¥ä½œåŽŸç†ï¼Œçµ¦å‡ºäº†TSL2561的實用電路ã€è»Ÿä»¶è¨è¨ˆæµç¨‹ä»¥åŠæ ¸å¿ƒç¨‹åºã€‚
é—œéµè©ž 光強傳感器 TSL256x I2C總線 ç©åˆ†å¼A/D轉æ›å™¨
1 TSL256x簡介
TSL2560å’ŒTSL2561是TAOSå…¬å¸æŽ¨å‡ºçš„ä¸€ç¨®é«˜é€Ÿã€ä½ŽåŠŸè€—ã€å¯¬é‡ç¨‹ã€å¯ç·¨ç¨‹éˆæ´»é…置的光強度數(shù)å—轉æ›èŠ¯ç‰‡ã€‚è©²èŠ¯ç‰‡å¯å»£æ³›æ‡‰ç”¨äºŽå„類顯示å±çš„監(jiÄn)控,目的是在多變的光照æ¢ä»¶ä¸‹ï¼Œä½¿å¾—é¡¯ç¤ºå±æä¾›æœ€ä½³çš„é¡¯ç¤ºäº®åº¦å¹¶ç›¡å¯èƒ½é™ä½Žé›»æºåŠŸè€—ï¼›é‚„å¯ä»¥ç”¨äºŽè¡—é“光照控制ã€å®‰å…¨ç…§æ˜Žç‰çœ¾å¤šå ´åˆã€‚該芯片的主è¦ç‰¹é»žå¦‚下:
â—‡ å¯ç·¨ç¨‹è¨ç½®è¨±å¯çš„光強度上下閾值,當實際光照度超éŽè©²é–¾å€¼æ™‚çµ¦å‡ºä¸æ–·ä¿¡è™Ÿï¼›
â—‡ 數(shù)å—è¼¸å‡ºç¬¦åˆæ¨™æº–çš„SMBus(TSL2560)和I2C(TSL2561)總線å”(xié)è°ï¼›
â—‡ 模擬增益和數(shù)å—輸出時間å¯ç·¨ç¨‹æŽ§åˆ¶ï¼›
â—‡ 1.25 mm×1.75 mmè¶…å°å°è£ï¼Œåœ¨ä½ŽåŠŸè€—æ¨¡å¼ä¸‹ï¼ŒåŠŸè€—åƒ…ç‚º0.75 mWï¼›
◇ 自動抑制50 Hz/60 Hz的光照波動。
2 TSL256x的引腳功能
TSL256x有2種å°è£å½¢å¼ï¼š 6LEAD CHIPSCALEå’Œ6LEAD TMB。å°è£å½¢å¼ä¸åŒï¼Œç›¸æ‡‰çš„光照度計算公å¼ä¹Ÿä¸åŒã€‚圖1為這兩種å°è£å½¢å¼çš„引腳分布圖。
[align=center]

圖1 TSL256xå°è£[/align]
å„引腳的功能如下:
è…³1和腳3: 分別是電æºå¼•è…³å’Œä¿¡è™Ÿåœ°ã€‚å…¶å·¥ä½œé›»å£“èŒƒåœæ˜¯2.7~3.5V。
è…³2: 器件訪å•地å€é¸æ“‡å¼•腳。由于該引腳電平ä¸åŒï¼Œè©²å™¨ä»¶æœ‰3個ä¸åŒçš„訪å•地å€ã€‚訪å•地å€èˆ‡é›»å¹³çš„å°æ‡‰é—œç³»å¦‚表1所列。
[align=center]表1 器件訪å•地å€èˆ‡å¼•è…³2é›»å¹³çš„å°æ‡‰é—œç³»

[/align]
è…³4和腳6: I2C或SMBus總線的時é˜ä¿¡è™Ÿç·šå’Œæ•¸(shù)據(jù)線。
è…³5: 䏿–·ä¿¡è™Ÿè¼¸å‡ºå¼•腳。當光強度超éŽç”¨æˆ¶ç·¨ç¨‹è¨ç½®çš„ä¸Šæˆ–ä¸‹é–¾å€¼æ™‚ï¼Œå™¨ä»¶æœƒè¼¸å‡ºä¸€å€‹ä¸æ–·ä¿¡è™Ÿã€‚
3 TSL256xçš„å…§éƒ¨çµæ§‹å’Œå·¥ä½œåŽŸç†
TSL256x是第二代周åœç’°(huán)å¢ƒå…‰å¼·åº¦å‚³æ„Ÿå™¨ï¼Œå…¶å…§éƒ¨çµæ§‹å¦‚圖2所示。通é“0和通é“1是兩個光æ•二極管,其ä¸é€šé“0å°å¯è¦‹å…‰å’Œç´…å¤–ç·šéƒ½æ•æ„Ÿï¼Œè€Œé€šé“1僅å°ç´…å¤–ç·šæ•æ„Ÿã€‚ç©åˆ†å¼A/D轉æ›å™¨å°æµéŽå…‰æ•二極管的電æµé€²è¡Œç©åˆ†ï¼Œå¹¶è½‰æ›ç‚ºæ•¸(shù)å—é‡ï¼Œåœ¨è½‰æ›çµæŸåŽå°‡è½‰æ›çµæžœå˜å…¥èŠ¯ç‰‡å…§éƒ¨é€šé“0和通é“1å„自的寄å˜å™¨ä¸ã€‚當一個ç©åˆ†å‘¨æœŸå®Œæˆä¹‹åŽï¼Œç©åˆ†å¼A/D轉æ›å™¨å°‡è‡ªå‹•開始下一個ç©åˆ†è½‰æ›éŽç¨‹ã€‚微控制器和TSL2560å¯é€šéŽæ¨™æº–çš„SMBus( System Management Bus) V1.1或V2.0實ç¾(xià n),TSL2561則å¯é€šéŽI2C總線å”(xié)è°è¨ªå•。å°TSL256x的控制是通éŽå°å…¶å…§éƒ¨çš„16個寄å˜å™¨çš„讀寫來實ç¾(xià n)的,其地å€å¦‚表2所列。
[align=center]

圖2 TSL256xå…§éƒ¨çµæ§‹åœ–

表2 TSL256x內部寄å˜å™¨åœ°å€åŠä½œç”¨[/align]
4 TSL256x應用è¨è¨ˆ
TSL256x的訪å•éµå¾ªæ¨™æº–çš„SMBuså’ŒI2Cå”(xié)è°ï¼Œé€™ä½¿å¾—該芯片軟硬件è¨è¨ˆè®Šå¾—éžå¸¸ç°¡å–®ã€‚這兩種å”(xié)è°çš„讀寫時åºé›–然很類似,但ä»å˜åœ¨ä¸åŒä¹‹è™•。下é¢åƒ…以TSL2561芯片為例,說明TSL256x光強傳感器的實際應用。
4.1 硬件è¨è¨ˆ
TSL2561å¯ä»¥é€šéŽI2C總線訪å•,所以硬件接å£é›»è·¯éžå¸¸ç°¡å–®ã€‚如果所é¸ç”¨çš„微控制器帶有I2C總線控制器,則將該總線的時é˜ç·šå’Œæ•¸(shù)據(jù)線直接與TSL2561çš„I2C總線的SCLå’ŒSDA分別相連;如果微控制器內部沒有上拉電阻,則還需è¦å†ç”¨2個上拉電阻接到總線上。如果微控制器ä¸å¸¶I2C總線控制器,則將TSL2561çš„I2C總線的SCLå’ŒSDA與普通I/Oå£é€£æŽ¥å³å¯ï¼›ä½†ç·¨ç¨‹æ™‚éœ€è¦æ¨¡æ“¬I2C總線的時åºä¾†è¨ªå•TSL2561,INTå¼•è…³æŽ¥å¾®æŽ§åˆ¶å™¨çš„å¤–éƒ¨ä¸æ–·ã€‚硬件連接如圖3所示。
[align=center]

圖3 微控制器與TSL2561的硬件連接圖[/align]
4.2 軟件è¨è¨ˆ
[align=center]

圖4 軟件è¨è¨ˆæµç¨‹[/align]
é™äºŽç¯‡å¹…,在æ¤çµ¦å‡ºå°TSL2561讀寫æ“作的部分程åºï¼š
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);//延時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;
ï½
ç•¶ç©åˆ†å¼A/D轉æ›å™¨è½‰æ›å®ŒæˆåŽï¼Œå¯ä»¥å¾žé€šé“0寄å˜å™¨å’Œé€šé“1寄å˜å™¨è®€å–相應的值CH0å’ŒCH1,但是è¦ä»¥Luxï¼ˆæµæ˜Žï¼‰ç‚ºå–®ä½ï¼Œé‚„è¦æ ¹æ“š(jù)CH0å’ŒCH1進行計算。å°äºŽTMBå°è£ï¼Œå‡è¨å…‰å¼·ç‚ºE(單ä½ç‚ºLux),則計算公å¼å¦‚下:
â‘ 0
1.30
E=0
å°äºŽCHIPSCALEå°è£ï¼Œè¨ˆç®—å…¬å¼å¯ä»¥æŸ¥çœ‹ç›¸æ‡‰çš„芯片資料。
5 çµè«–
采用TSL256x實ç¾(xià n)光強度實時監(jiÄn)測的系統(tÇ’ng)ï¼Œå…·æœ‰ç²¾åº¦é«˜ã€æˆæœ¬ä½Žã€é«”ç©å°ç‰å„ª(yÅu)點。芯片內部集æˆäº†ç©åˆ†å¼A/D轉æ›å™¨ï¼Œé‡‡ç”¨æ•¸(shù)å—ä¿¡è™Ÿè¼¸å‡ºï¼Œå› æ¤æŠ—å¹²æ“¾èƒ½åŠ›æ¯”åŒé¡žèŠ¯ç‰‡å¼·ã€‚è©²èŠ¯ç‰‡åœ¨å…‰å¼·ç›£(jiÄn)æ¸¬æŽ§åˆ¶é ˜åŸŸå·²å¾—åˆ°å»£æ³›æ‡‰ç”¨ã€‚