Other Parts Discussed in Post:CC1352P, OPT3004, OPT3004EVM, LAUNCHXL-CC1352P, ENERGYTRACE
SensorController Studio里有很多例子,但是缺少在LaunchPad上使用I2C的例子。本文將使用TI的CC1352P無線MCU及OPT3004光照度傳感器,來填補(bǔ)這一空缺。
介紹
OPT3004是一款用于測(cè)量可見光密度的傳感器。傳感器的光譜響應(yīng)與人眼的視覺響應(yīng)緊密匹配,并且具有很高的紅外線阻隔率。OPT3004 器件具有精密的光譜響應(yīng)和增強(qiáng)的紅外阻隔功能,因此能夠準(zhǔn)確測(cè)量人眼可見光的強(qiáng)度,且不受光源影響。
CC1352P 是一款多協(xié)議低于 1GHz 和 2.4GHz 無線 MCU,面向無線 M-Bus、IEEE 802.15.4g、支持 IPv6 的智能對(duì)象 (6LoWPAN)、Thread、 Zigbee?、KNX RF、 Wi-SUN?、低功耗 Bluetooth? 5 以及專有系統(tǒng),包括 TI 15.4-Stack。該器件包含具有一流效率的+20dBm集成高功率放大器,適用于遠(yuǎn)距離 應(yīng)用
Sensor Controller傳感器控制器是simplelink系列無線MCU CC26xx/CC13xx都包含的一個(gè)小型 CPU 內(nèi)核,針對(duì)低功耗和高效外設(shè)運(yùn)行進(jìn)行了高度優(yōu)化。傳感器控制器位于 CC26xx/CC13xx 輔助 (AUX) 電源/時(shí)鐘域中,可以獨(dú)立于系統(tǒng) CPU 和 MCU 域電源狀態(tài)自主執(zhí)行簡單的后臺(tái)任務(wù),以達(dá)到極低功耗。關(guān)于Sensor Controller的細(xì)節(jié)和使用方法,請(qǐng)?jiān)L問Sensor Controller Project from Scratch。
如下的兩篇文章也將非常有助于您理解Sensor Controller這一非常有特色的功能:
Getting Started With the CC13xx and CC26xx Sensor Controller
Ultra-Low Power Designs With the CC13x2 and CC26x2 Sensor Controller

硬件連接
需要的硬件:
OPT3004 EVM
LAUNCHXL-CC1352P
連接如下圖:
| OPT3004EVM[原理圖下載] | LAUNCHXL-CC1352P[原理圖下載] |
| SDA | DIO5 |
| SCK | DIO22 |
| VOUT | 3V3 |
| GND | GND |


| 請(qǐng)根據(jù)實(shí)際板子情況進(jìn)行連接,CC1352P的DIO5和DIO22已通過3.3KΩ電阻上拉,因此直接使用這兩個(gè)引腳。 |

軟件操作
需要的軟件:
SensorController Studio
如下是Sensor Controller配置,工程下載
| Constants | ||
| ALS_CFG_ONE_SHOOT | 0xC210 | OPT3004 configuration triggering 100ms single conversion |
| ALS_CFG_RESET | 0xC810 | OPT3004 configuration at reset (shutdown) |
| ALS_I2C_ADDR | 0x0088 | OPT3004 I2C address |
| ALS_REG_CFG | 1 | OPT3004 configuration register[配置寄存器 1] |
| ALS_REG_RESULT | 0 | OPT3004 result register[結(jié)果寄存器 0] |
| DataStructures | ||
| cfg.highThreshold | 65535 | High alert threshold |
| cfg.lowThreshold | 0 | Low alert threshold |
| output. value | 0 | Light sensor output value |
| Task Resources | |
| Serial Interfaces | I2C Master |
| System CPU Communication | System CPU Alert |
| Task Event Handling | Timer 1 Event Trigger |
| Task Execution | RTC-Based Execution Scheduling |
| IO Mapping |
| DIO22 – I2C SCL DIO5 – I2C SDA |

| 代碼 | |
| Initialization Code |
// Schedule the first execution fwScheduleTask(1); |
| Execution Code |
// Configure and start the next measurement i2cStart(); i2cTx(I2C_OP_WRITE | ALS_I2C_ADDR); // i2cTx(ALS_REG_CFG); i2cTx(ALS_CFG_ONE_SHOT >> 8); i2cTx(ALS_CFG_ONE_SHOT >> 0); i2cStop(); // Read the result after 100 milliseconds + a 20% margin evhSetupTimer1Trigger(0, 120, 2); // Schedule the next execution fwScheduleTask(1); |
| Event Handler A Code |
// If a measurement was successfully started during the last execution ... if (state.i2cStatus == 0x0000) { // Select the result register i2cStart(); i2cTx(I2C_OP_WRITE | ALS_I2C_ADDR); i2cTx(ALS_REG_RESULT); // If successful if (state.i2cStatus == 0x0000) { U16 resultRegH; U16 resultRegL; // Read the result i2cRepeatedStart(); i2cTx(I2C_OP_READ | ALS_I2C_ADDR); i2cRxAck(resultRegH); i2cRxNack(resultRegL); i2cStop(); // Convert the result (4-bit exponent + 12-bit mantissa) into 16-bit fixed-point U16 exp = resultRegH >> 4; U16 mant = (resultRegH << 12) | (resultRegL << 4); // The exponent is in range 0 to 11 U16 value = mant >> (11 - exp); output.value = value; // Notify the application if (value < cfg.lowThreshold) { fwGenAlertInterrupt(); } if (value > cfg.highThreshold) { fwGenAlertInterrupt(); } } else { i2cStop(); } } |
| Termination Code |
// Shut down the light sensor i2cStart(); i2cTx(I2C_OP_WRITE | ALS_I2C_ADDR); i2cTx(ALS_REG_CFG); i2cTx(ALS_CFG_RESET >> 8); i2cTx(ALS_CFG_RESET >> 0); i2cStop(); // Cancel the potentially active event trigger evhCancelTrigger(0); |
運(yùn)行效果:

功耗實(shí)測(cè)
使用Sensor Controller生成工程,并使用IAR編譯和燒錄【工程下載】
所需軟件:
IAR Embedded Workbench
SIMPLELINK-CC13X2-26X2-SDK 【本文使用的版本:simplelink_cc13x2_26x2_sdk_3_20_00_68】
功耗測(cè)試工具:
功耗測(cè)試使用IMETER-BOOST, 這是一款低成本便攜式功耗測(cè)試儀。
例子中,每秒進(jìn)行5次光照度傳感器讀取,平均電流大約17uA。
每次讀取包含兩個(gè)尖峰,如下(1)(2)
(1) Execution Code – 開啟了一個(gè)120ms的延遲,用于OPT3004形成穩(wěn)定的數(shù)據(jù)
(2) Event Handler A Code 。或得并換算讀取到光照度值

人為引起照度變化【如使用光源照射】,使照度超過閾值,則會(huì)激活主MCU進(jìn)行處理,如下3。

使用EnergyTrace的測(cè)試數(shù)據(jù)
EnergyTrace的使用請(qǐng)閱讀博文 《SimpleLink? Launchpad能量跟蹤功能》
| 30秒連續(xù)運(yùn)行下,平均電流20uA ,使用CR2032 200mAh的電池,評(píng)估可運(yùn)行一年三個(gè)月。 |

審核編輯:金巧
-
傳感器
+關(guān)注
關(guān)注
2576文章
55029瀏覽量
791249 -
嵌入式處理
+關(guān)注
關(guān)注
0文章
341瀏覽量
10509
發(fā)布評(píng)論請(qǐng)先 登錄
探索OPT3001環(huán)境光傳感器:高精度與靈活性的完美結(jié)合
OPT3002光數(shù)字傳感器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)
OPT3006:超小型環(huán)境光傳感器的卓越之選
OPT3001-Q1環(huán)境光傳感器:功能特性與設(shè)計(jì)應(yīng)用解析
OPT3007:超薄環(huán)境光傳感器的設(shè)計(jì)指南
探索OPT3004環(huán)境光傳感器:精確感知,智能應(yīng)用
深入剖析OPT4001-Q1:高性能數(shù)字環(huán)境光傳感器的卓越之選
OPT4060 高速高靈敏度 RGBW 顏色傳感器:設(shè)計(jì)與應(yīng)用指南
OPT4003-Q1:高性能數(shù)字環(huán)境光傳感器的深度解析
深度剖析CC1352R:高性能多頻段無線MCU的卓越之選
CC1352P:高性能多頻段無線MCU的卓越之選
探索CC1352P7:高性能多頻段無線MCU的卓越之選
基于OPT3004數(shù)字環(huán)境光傳感器的智能光感應(yīng)用技術(shù)解析
OPT4001數(shù)字環(huán)境光傳感器技術(shù)解析與應(yīng)用指南
Texas Instruments OPT4041DTSEVM傳感器評(píng)估模塊 (EVM)數(shù)據(jù)手冊(cè)
CC1352P Sensorcontroller 控制光照傳感器OPT3004及功耗實(shí)測(cè)
評(píng)論