超碰激情 I 成人福利网站 I 淫国产 I 曰批视频免费30分钟成人 I 刘亦菲裸体视频一区二区三区 I 午夜久 I 尤物综合 I 亚洲一区av在线观看 I 欧美亚洲国产精品久久高清 I 欧美老熟妇乱子伦视频 I 无码中出人妻中文字幕av I 久久美女福利视频 I 精品无人区乱码1区2区3区在线 I 性饥渴的农村熟妇 I 色综合综合色 I 少妇人妻88久久中文字幕 I 久久夜色精品国产噜噜av I 老熟妇仑乱视频一区二区 I 男女做爰猛烈叫床视频动态图 I 日本大片一区二区 I 人成午夜免费视频在线观看 I 激情婷婷av I 男女下面一进一出免费视频网站 I 久久影视一区 I 午夜污网站 I 先锋人妻无码av电影 I 久久久久久久岛国免费网站 I 又粗又大又黄又硬又爽免费看 I 人妻无码免费一区二区三区 I www.色成人100 I 欧美高清网站 I 精品国产第一页 I 国产suv一区二区三区88区 I 橹图极品美女无圣光 I 午夜宅男欧美

產(chǎn)品分類

當(dāng)前位置: 首頁 > 工業(yè)電子產(chǎn)品 > 集成電路(ICs) > IC傳感器

類型分類:
科普知識
數(shù)據(jù)分類:
IC傳感器

CC1352P Sensorcontroller控制光照傳感器OPT3004及功耗實測

發(fā)布日期:2022-05-11 點擊率:79

Other Parts Discussed in Post: CC1352P, OPT3004, OPT3004EVM, LAUNCHXL-CC1352P, ENERGYTRACE

作者:TI工程師  Yue Tang

SensorController Studio里有很多例子,但是缺少在LaunchPad上使用I2C的例子。本文將使用TI的CC1352P無線MCU及OPT3004光照度傳感器,來填補這一空缺。

介紹

OPT3004是一款用于測量可見光密度的傳感器。傳感器的光譜響應(yīng)與人眼的視覺響應(yīng)緊密匹配,并且具有很高的紅外線阻隔率。OPT3004 器件具有精密的光譜響應(yīng)和增強的紅外阻隔功能,因此能夠準(zhǔn)確測量人眼可見光的強度,且不受光源影響。

CC1352P 是一款多協(xié)議低于 1GHz 和 2.4GHz 無線 MCU,面向無線 M-Bus、IEEE 802.15.4g、支持 IPv6 的智能對象 (6LoWPAN)、Thread、 Zigbee?、KNX RF、 Wi-SUN?、低功耗 Bluetooth? 5 以及專有系統(tǒng),包括 TI 15.4-Stack。該器件包含具有一流效率的 +20dBm 集成高功率放大器,適用于遠距離 應(yīng)用

Sensor Controller傳感器控制器是simplelink系列無線MCU CC26xx/CC13xx都包含的一個小型 CPU 內(nèi)核,針對低功耗和高效外設(shè)運行進行了高度優(yōu)化。傳感器控制器位于 CC26xx/CC13xx 輔助 (AUX) 電源/時鐘域中,可以獨立于系統(tǒng) CPU 和 MCU 域電源狀態(tài)自主執(zhí)行簡單的后臺任務(wù),以達到極低功耗。關(guān)于Sensor Controller的細節(jié)和使用方法,請訪問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

 

 

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

 

軟件操作

需要的軟件:

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);

 

運行效果:


 

功耗實測

使用Sensor Controller生成工程,并使用IAR編譯和燒錄【工程下載】

 

所需軟件:

IAR Embedded Workbench

SIMPLElink-CC13X2-26X2-SDK 【本文使用的版本:simplelink_cc13x2_26x2_sdk_3_20_00_68】

 

功耗測試工具:

功耗測試使用IMETER-BOOST, 這是一款低成本便攜式功耗測試儀

 

例子中,每秒進行5次光照度傳感器讀取,平均電流大約17uA。

每次讀取包含兩個尖峰,如下(1)(2

(1)      Execution Code – 開啟了一個120ms的延遲,用于OPT3004形成穩(wěn)定的數(shù)據(jù)

(2)      Event Handler A Code 。或得并換算讀取到光照度值

 

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

 

 

 

 

使用EnergyTrace的測試數(shù)據(jù)

EnergyTrace的使用請閱讀博文 《Simplelink? Launchpad能量跟蹤功能》

 

 

 

 

30秒連續(xù)運行下,平均電流20uA ,使用CR2032 200mAh的電池,評估可運行一年三個月。

 


 

 

下一篇: PLC、DCS、FCS三大控

上一篇: CC2652LP驅(qū)動Δ∑ADC

推薦產(chǎn)品

更多