《電子技術應用》
您所在的位置:首頁 > 顯示光電 > 解決方案 > 通過藍牙控制智能LED調光器

通過藍牙控制智能LED調光器

2019-07-31

引言

本應用筆記介紹了如何使用Dialog GreenPAK™ SLG46620V創建調光器" target="_blank">智能數字調光器設計。調光器是住宅、酒店和許多建築中常用的照明開關。較舊版本的調光開關是手動的,一般包含一個旋轉開關(電位計)或多個按鈕來控制照明水平。本應用筆記介紹了如何創建可以通過兩種方法(智能手機和物理按鈕)控制照明亮度的數字調光器。這兩種模式可以無縫地協同工作,用戶可以通過按鈕或智能手機來調高或調低照明亮度。該項目采用了SLG46620V 可配置混合信号IC(CMIC)、HC-06藍牙模塊、按鈕和LED。

我們将使用SLG46620V CMIC,它有助于将分立器件數量降到最少。GreenPAK IC體積小,含有多用途組件,有助于設計人員減少産品設計的元件數量和增加新功能。此外,項目的成本也随之降低。SLG46620V這顆小巧的芯片中包含一個SPI連接接口、多個PWM模塊、有限狀态機(FSM)以及很多有用的附加模塊。這些組件有助于設計工程師創建可以通過藍牙設備或牆壁按鈕進行控制的實用智能調光器,支持延時調光,并提供額外的可選功能,而無需使用微控制器或昂貴的元件。

項目特點:

1. 兩種控制方法:移動app和實體按鈕

2. 平滑的燈光開關過渡。這對消費者來說更健康,也給人一種更豪華的感覺,這對酒店和其他服務行業很有吸引力。

3. 睡眠模式功能。這是此應用的一項附加價值,當用戶開啟這個模式時,燈光亮度會在10分鐘内逐漸降低。這有助于患有失眠症的人,它也适用于兒童卧室和零售店(關閉時)。

項目界面

該項目界面有四個按鈕,作為GreenPAK輸入:

開/關:打開和關閉燈光(軟啟動/關閉)

調亮:調高燈光亮度

調暗:調低燈光亮度

睡眠模式:開啟睡眠模式時,燈光亮度會在10分鐘内逐漸降低。這給用戶睡前一些時間,并确保燈光不會整夜都亮着。

系統将輸出一個PWM信号,該信号将傳送到外部LED和睡眠模式LED指示燈。

1.jpg

GreenPAK芯片

圖1:調光器框圖

該GreenPAK設計由4個主要功能塊組成。第一個是UART接收器,它從藍牙模塊接收數據,提取命令,并将它們發送到控制單元。第二個功能塊是一個控制單元,它接收來自UART接收器或外部按鈕的命令。控制單元決定所需的操作(打開/關閉、調亮、調暗、啟用睡眠模式)。該單元使用LUT實現。

第三個功能塊是時鐘(CLK)發生器。在此項目中,采用了一個FSM計數器來控制PWM。FSM的值将根據3個頻率(高、中和低)給出的命令而變化(升高、降低)。在這個部分中,将生成三個頻率,所需的時鐘信号根據要求的順序傳輸給FSM;在打開/關閉操作時,高頻信号傳輸到FSM來進行軟啟動/停止。在調光期間,中頻信号通過。低頻信号在睡眠模式通過,從而更慢速地降低FSM值。然後,燈光亮度也會緩慢下降。第四個功能塊是PWM單元,它向外部LED生成脈沖。

GreenPAK設計

使用GreenPAK創建調光器設計的最佳方法是使用8 bit FSM和一個PWM。在SLG46620中,FSM1包含8 bits,可與PWM1和PWM2一起使用。必須連接藍牙模塊,這意味着必須使用SPI并行輸出。SPI并行輸出bits 0到7連接與DCMP1、DMCP2和LF OSC CLK、OUT1、OUT0 OSC輸出複用。PWM0從FSM0(16 bits)獲得其輸出。FSM0不會停在255;它可以增加到16383。為了将計數器值限制在8 bits,增加了另一個FSM;FSM1用來指示計數器何時達到0或255。FSM0用于生成PWM脈沖。由于必須同時更改兩個FSM的值來确保它們具有相同的值,因此設計變得有點複雜,兩個FSM都具有預定義的、有限的、可選CLK。使用CNT1和CNT3作為介體将時鐘信号傳送到兩個FSM。

設計包含以下部分:

1.UART接收器

首先,我們需要設置HC06藍牙模塊。HC06使用UART協議進行通信。UART代表通用異步接收器/發射器。UART可以在并行和串行格式之間來回轉換數據。它包括一個串行到并行接收器和一個并行到串行轉換器,它們的時鐘是分開的。HC06中接收到的數據将傳輸到我們的GreenPAK器件。引腳10的空閑狀态為HIGH。發送的每串數據都以邏輯低啟動位,随後是可配置數量的數據位,以及一個或多個邏輯高停止位。

HC06發送1個起始位、8個數據位和一個停止位。它的默認波特率是9600。我們将從HC06發送數據字節到GreenPAK SLG46620V的SPI模塊。

由于Silego SPI模塊沒有起始位或停止位控制,因此這些位用于使能和禁用SPI時鐘信号(SCLK)。當引腳10變為LOW時,IC已經接收到一個起始位,所以我們使用PDLY下降沿檢測器來識别通信的開始。該下降沿檢測器為DFF0提供時鐘,使SCLK信号能夠為SPI模塊提供時鐘。

我們的波特率為每秒9600位,所以我們的SCLK周期是1/9600 = 104 µs。因此,我們将OSC頻率設置為2 MHz,并使用CNT0作為分頻器。

2 MHz-1 = 0.5 µs

(104 µs / 0.5 µs) - 1 = 207

因此,我們希望CNT0計數器值為207。為确保不丢失數據,在SPI時鐘上增加半個時鐘周期延遲,從而SPI功能塊在正确的時間進行計時。這是通過使用CNT6、2-bit LUT1和OSC模塊的外部時鐘來實現的。CNT6的輸出在DFF0計時52 µs後才會變高,這恰好是我們SCLK周期104 µs的一半。當它變高時,2-bit LUT1 與門允許2 MHz OSC信号進入EXT. CLK0輸入,其輸出連接到CNT0。

2.jpg 


圖2:UART接收器

2.控制單元

在這部分中,将根據UART接收器接收的字節或根據來自外部按鈕的信号執行命令。引腳12、13、14、15被初始化為輸入,并連接到外部按鈕。

每個引腳内部連接到OR門輸入,門的第二個輸入端通過藍牙連接來自智能手機的相應信号,該信号将出現在SPI并行輸出上。

DFF6用于激活睡眠模式,其輸出變為高,上升沿來自2-bit LUT4,而DFF10用于維持照明狀态,其輸出從低變為高,當每個上升沿來自3-bit LUT10輸出時反之亦然。

FSM1是一個8-bit計數器;當它的值達到0或255時,它在輸出上給出一個高脈沖。因此,它用于防止FSM0(16-bit)的值超過255,它的輸出複位DFF,并且它将DFF10狀态從開啟變為關閉。如果照明由按鈕 + 和 - 控制,并且已達到最大/最小值,亦是這樣。

連接到FSM1輸入的信号keep、up将通過P11和P12到達FSM0,以保持同步,在兩個計數器上保持相同的值。

3.jpg

圖3:控制單元設計

3.時鐘發生器和複用器

在這部分中,将生成三個頻率,但隻有一個頻率将在任一時候為FSM計時。第一個頻率是RC OSC,它從矩陣0到P0取出。第二頻率是LF OSC,它也從矩陣0到P1取出。第三個頻率是CNT7輸出。

根據3-bit LUT14輸出,3-bit LUT9和3-bit LUT11允許一個頻率通過。之後,所選擇的時鐘通過CNT1和CNT3發送到FSM0和FSM1。

4.jpg

圖4:時鐘發生器設計

4. PWM

最後,FSM0值轉換為PWM信号,通過引腳20出現,引腳20初始化為輸出,并連接到外部LED。

5.jpg

圖5:PWM功能塊

安卓app

安卓app具有類似于真實界面的虛拟控制界面。它有五個按鈕:ON/OFF、UP、DOWN、睡眠模式和連接。該安卓應用程序将按鈕按動操作轉換為命令,并将命令發送到藍牙模塊來執行。

這個app是用MIT App Inventor制作的,不需要任何編程經驗。App Inventor允許開發人員使用網頁浏覽器連接編程模塊來為安卓OS設備創建應用程序。您可以将我們的App導入MIT App Inventor,具體步驟為:單擊我的計算機上的項目 - > 導入項目(.aia),然後選擇此App Note中包含的.aia文件。

要創建安卓應用程序,必須啟動新項目。需要五個按鈕:一個是藍牙設備的列表選擇器,其他是控制按鈕。我們還需要添加藍牙客戶端。圖6是我們的安卓app用戶界面的截屏。

添加按鈕後,我們将為每個按鈕分配軟件功能。我們将使用4 bits來代表按鈕的狀态。每個按鈕一個bit, 因此,當您按下按鈕時,一個特定的數字将通過藍牙發送到實際電路。

6.jpg

圖6:按鈕的編程模塊

這些數字如表1所示:

表1:指令-Bit表示

QQ截圖20190731174539.jpg

7.jpg

圖7:按鈕編程模塊

8.jpg

圖8:電路原理圖

9.jpg

圖9:原型界面

總結

本應用筆記介紹了一種可以通過兩種方式(安卓app和實體按鈕)控制的智能調光器。介紹了GreenPAK SLG46620V内部四個獨立的功能塊,用于控制增加或減少燈光PWM的工作流程。此外,還介紹了睡眠模式功能,作為該應用中可選的額外調制的示例,該示例是低電壓的,也可以更改成高電壓的功能。

術語和定義

CMIC:可配置混合信号IC(Configurable Mixed-Signal Integrated Circuits)

UART:通用異步收發器(Universal asynchronous receiver-transmitter)

LED:發光二極管(Light-emitting diode)

SPI:串行外設接口(Serial Peripheral Interface)

PWM:脈沖寬度調制(Pulse-width modulation)

FSM:有限狀态機(Finite-state machine)

LUT:查找表(Look-up table)

DFF:D觸發器(D-type flip-flop)