今日跟大家分享下瑞薩RA創(chuàng)意氛圍賽選手的項(xiàng)目——基于瑞薩單片機(jī)的環(huán)境溫濕度監(jiān)測裝置。
本項(xiàng)目由啟明6M5作為主控,搭載DHT11溫濕度傳感器和SPI屏幕而成,實(shí)現(xiàn)的功能如下:
①通過DHT11溫濕度模塊采集環(huán)境溫濕度數(shù)據(jù)
②通過軟件SPI實(shí)現(xiàn)SPI屏幕顯示溫濕度數(shù)據(jù)
③通過上位機(jī)顯示溫濕度數(shù)據(jù)并將數(shù)據(jù)換算成圖像顯示
1設(shè)計(jì)簡介
最開始的設(shè)計(jì)是準(zhǔn)備使用DHT11溫濕度模塊、MQ-2煙霧模塊、人體紅外做數(shù)據(jù)采集,使用板載ESP8266做WiFi數(shù)據(jù)傳輸,通過HTTP或者M(jìn)QTT協(xié)議連接OneNET平臺(tái),實(shí)現(xiàn)云平臺(tái)數(shù)據(jù)收發(fā),同時(shí)運(yùn)行RTOS操作系統(tǒng)。但由于本人忙于工作,無法按時(shí)制作,于是制作了簡易版本,本次設(shè)計(jì)選擇使用野火啟明6M5單片機(jī),采集模塊使用的是DHT11溫濕度模塊,顯示模塊使用的是SPI屏幕,同時(shí)還做了串口通訊。
2硬件設(shè)計(jì)
2.1 主控板
本次使用的是瑞薩的R7FA6M5BH3CFC單片機(jī)。RA 產(chǎn)品家族單片機(jī) (MCU) 于2019年10月推出,豐富了瑞薩的32位MCU 系列產(chǎn)品。除了RA系列之外的32位MCU產(chǎn)品還有RX系列(CPU使用瑞薩自家RX 內(nèi)核)和Renesas Synergy平臺(tái)MCU。Renesas Advanced (RA) 32位MCU是采用Arm Cortex-M33、-M23和-M4處理器內(nèi)核,并經(jīng)過PSA Certified 1級(jí)認(rèn)證的、行業(yè)領(lǐng)先的32位MCU。是Arm公司于2017年推出的行業(yè)通用框架,旨在打造各種安全的互聯(lián)設(shè)備。許多業(yè)界領(lǐng)先企業(yè)已宣布支持該架構(gòu)的基礎(chǔ)原則,為物聯(lián)網(wǎng)設(shè)備和解決方案加入令人信任的安全級(jí)別。RA系列的所有MCU在功能上和大部分引腳上都是兼容的。小型器件上的外設(shè)大體上是大型器件上外設(shè)的子集。這便于實(shí)現(xiàn)可擴(kuò)展性和不同器件之間的代碼重用。對(duì)于不同系列的類似封裝,其引腳排列幾乎相同。
瑞薩RA系列產(chǎn)品家族包括:
? RA2系列,適用于低功耗應(yīng)用;
? RA4系列,適用于需要低功耗、高性能和高安全性的設(shè)備;
? RA6系列,具有卓越的連接性能和安全性能;
? RA8系列,可以為采用人機(jī)界面、連接、安全和模擬功能的應(yīng)用提供出色性能。
2.2 DHT11溫濕度采集模塊
DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)。
每個(gè)DHT11傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲(chǔ)存在OTP內(nèi)存中,傳感器內(nèi)部在檢測信號(hào)的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。
超小的體積、極低的功耗,信號(hào)傳輸距離可達(dá)20米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。產(chǎn)品為3針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。
模塊使用單總線連接,DATA用于微處理器與DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時(shí)間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說明,當(dāng)前小數(shù)部分用于以后擴(kuò)展,現(xiàn)讀出為零。操作流程如下:
一次完整的數(shù)據(jù)傳輸為40bit,高位先出。數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗(yàn)和數(shù)據(jù)傳送正確時(shí)校驗(yàn)和數(shù)據(jù)等于“8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)”所得結(jié)果的末8位。
用戶MCU發(fā)送一次開始信號(hào)后,DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主機(jī)開始信號(hào)結(jié)束后,DHT11發(fā)送響應(yīng)信號(hào),送出40bit的數(shù)據(jù),并觸發(fā)一次信號(hào)采集,用戶可選擇讀取部分?jǐn)?shù)據(jù)。從模式下,DHT11接收到開始信號(hào)觸發(fā)一次溫濕度采集,如果沒有接收到主機(jī)發(fā)送開始信號(hào),DHT11不會(huì)主動(dòng)進(jìn)行溫濕度采集。采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。通訊過程如圖所示:
? 引腳連接為:
P0.10——DATA
Mode選擇Output mode (Initial Low)
2.3 SPI屏幕
屏幕使用了軟件SPI,SPI協(xié)議是由摩托羅拉公司提出的通訊協(xié)議(SerialPeripheralInterface),即串行外圍設(shè)備接口,是一種高速全雙工的通信總線。它被廣泛地使用在ADC、LCD等設(shè)備與MCU間,要求通訊速率較高的場合。
SPI通訊使用3條總線及片選線,3條總線分別為SCK、MOSI、MISO,片選線為SS,它們的作用介紹如下:
(1) SS (SlaveSelect):從設(shè)備選擇信號(hào)線,常稱為片選信號(hào)線,也稱為NSS、CS,以下用NSS表示。
當(dāng)有多個(gè)SPI從設(shè)備與SPI主機(jī)相連時(shí),設(shè)備的其它信號(hào)線SCK、MOSI及MISO同時(shí)并聯(lián)到相同的SPI總線上,即無論有多少個(gè)從設(shè)備,都共同只使用這3條總線;而每個(gè)從設(shè)備都有獨(dú)立的這一條NSS信號(hào)線,本信號(hào)線獨(dú)占主機(jī)的一個(gè)引腳,即有多少個(gè)從設(shè)備,就有多少條片選信號(hào)線。I2C協(xié)議中通過設(shè)備地址來尋址、選中總線上的某個(gè)設(shè)備并與其進(jìn)行通訊;而SPI協(xié)議中沒有設(shè)備地址,它使用NSS信號(hào)線來尋址,當(dāng)主機(jī)要選擇從設(shè)備時(shí),把該從設(shè)備的NSS信號(hào)線設(shè)置為低電平,該從設(shè)備即被選中,即片選有效,接著主機(jī)開始與被選中的從設(shè)備進(jìn)行SPI通訊。所以SPI通訊以NSS線置低電平為開始信號(hào),以NSS線被拉高作為結(jié)束信號(hào)。 (2) SCK (SerialClock):時(shí)鐘信號(hào)線,用于通訊數(shù)據(jù)同步。它由通訊主機(jī)產(chǎn)生,決定了通訊的速率,不同的設(shè)備支持的最高時(shí)鐘頻率不一樣,如RA6M5的SPI時(shí)鐘頻率最大為fpclkA/2,兩個(gè)設(shè)備之間通訊時(shí),通訊速率受限于低速設(shè)備。 (3) MOSI (MasterOutput,SlaveInput):主設(shè)備輸出/從設(shè)備輸入引腳。主機(jī)的數(shù)據(jù)從這條信號(hào)線輸出,從機(jī)由這條信號(hào)線讀入主機(jī)發(fā)送的數(shù)據(jù),即這條線上數(shù)據(jù)的方向?yàn)橹鳈C(jī)到從機(jī)。
(4) MISO (MasterInput,,SlaveOutput):主設(shè)備輸入/從設(shè)備輸出引腳。主機(jī)從這條信線讀入數(shù)據(jù),從機(jī)的數(shù)據(jù)由這條信號(hào)線輸出到主機(jī),即在這條線上數(shù)據(jù)的方向?yàn)閺臋C(jī)到主機(jī)。
引腳連接為:
P0.2——MOSI
P0.1——CLK
P0.7——CS
P0.6——DC
P0.3——RST
P0.8——BL
使用的是軟件SPI,所以引腳配置Mode選擇Output mode(Initial High)
3
軟件設(shè)計(jì)
需要注意一下串口的配置,串口通訊 (Serial Communication) 是一種設(shè)備間非常常用的串行通訊方式,因?yàn)樗唵伪憬?,因此大部?a target="_blank">電子設(shè)備都支持該通訊方式,電子工程師在調(diào)試設(shè)備時(shí)也經(jīng)常使用該通訊方式輸出調(diào)試信息。在計(jì)算機(jī)科學(xué)里,大部分復(fù)雜的問題都可以通過分層來簡化。如芯片被分為內(nèi)核層和片上外設(shè)。對(duì)于通訊協(xié)議,我們也以分層的方式來理解,最基本的是把它分為物理層和協(xié)議層。物理層規(guī)定通訊系統(tǒng)中具有機(jī)械、電子功能部分的特性,確保原始數(shù)據(jù)在物理媒體的傳輸。協(xié)議層主要規(guī)定通訊邏輯,統(tǒng)一收發(fā)雙方的數(shù)據(jù)打包、解包標(biāo)準(zhǔn)。
串口配置如下圖所示,需要注意,引腳一定是P511/ P512,引腳選錯(cuò)是無法監(jiān)測到輸出的。
在“屬性”窗口中配置名字(name)、通道(Channel)、回調(diào)函數(shù)(Callback)名字即可,引腳(Pins)、波特率(Baud Rate)等其他的屬性按照默認(rèn)的配置即可。
Name:名字,根據(jù)讀者需求設(shè)置即可。
Channel :通道,根據(jù) SCI 號(hào)設(shè)置即可,例如實(shí)驗(yàn)使用 SCI4,則這里配置為通道 4。
Data Bits:每個(gè)字(word)的比特(bit)數(shù),默認(rèn)為 8bits
Parity :校驗(yàn)?zāi)J?,可選擇“Odd”奇校驗(yàn),“Even”偶校驗(yàn)或“None”無校驗(yàn)。
Stop Bits:停止位,可選 1 或 2bit。
Baud Rate :波特率
Baud Rate Modulation :波特率調(diào)制,通過調(diào)整時(shí)鐘周期,以減少申請(qǐng)波特率與實(shí)際波特率之間的誤差。
Max Error(%) :計(jì)算波特率時(shí)允許的最大百分比誤差。
Callback:回調(diào)函數(shù)的名字,根據(jù)讀者需求設(shè)置即可。
Receive Interrupt Priority :接收中斷優(yōu)先級(jí)
Transmit Data Empty InterruptPriority:發(fā)送數(shù)據(jù)空中斷優(yōu)先級(jí)
Transmit End Interrupt Priority:發(fā)送完成中斷優(yōu)先級(jí)
Error Interrupt Priority:錯(cuò)誤中斷優(yōu)先級(jí)
使用 printf 函數(shù)時(shí),需要使用到堆,默認(rèn)情況下堆的大小為 0,因此我們需要修改堆的大小??梢栽?FSP 配置界面中的“BSP”屬性欄的“RA Common”中通過修改“Heap size”來設(shè)置堆區(qū)大小。這里需要設(shè)置為 8 的整數(shù)倍,推薦至少為 4K(0x1000)
4
效果展示
上位機(jī)效果:
實(shí)物效果:
審核編輯:湯梓紅
-
傳感器
+關(guān)注
關(guān)注
2551文章
51099瀏覽量
753568 -
單片機(jī)
+關(guān)注
關(guān)注
6037文章
44558瀏覽量
635287 -
瑞薩
+關(guān)注
關(guān)注
35文章
22309瀏覽量
86307 -
監(jiān)測裝置
+關(guān)注
關(guān)注
0文章
220瀏覽量
8639
原文標(biāo)題:【瑞薩RA MCU創(chuàng)意氛圍賽作品賞析】項(xiàng)目9——環(huán)境溫濕度監(jiān)測裝置
文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論