目錄
一、前言
二、傳感器參數
三、STM32CubeMX配置(本文使用的STM32CubeMX版本為6.1.2)例程使用模擬I2C進行數據讀取
1.MCU選型
2.使能時鐘
3.時鐘配置
4.GPIO口配置
四、配置STM32CubeMX生成工程文件
五、點擊GENERATE CODE生成工程文件
六、案例程序
1.I2C部分代碼說明
2.串口重定義
3.硬件連接
七、IAQ-CORE-C參數讀取圖
1.初始上電預熱階段數據
2.預熱后數據狀態
一、前言
iAQ‐core 傳感器是 AMS 公司生產的室內空氣質量檢測模塊,是一個可用于檢測惡劣空氣質量的低成本、超緊湊解決方案。 該模塊采用微加工金屬氧化物半導體 (MOS) 技術,以檢測范圍廣泛的 VOC,并同時利用室內的 CO2 和TVOC 水平進行直接修正。檢測原理為通過鉑加熱器和跨數字電極結構放置在約一微米薄的氮化硅膜上。通過加熱來分析所處的空氣中VOC的比例,轉換為CO2的PPM值/TVOC的PPB值輸出。
二、傳感器參數
- ?工作電壓:3.3±0.1V ? ? ?
- ?測量范圍:相當于450-2000ppm的CO2,125-600ppb的TVOC
- ?輸出信號:I2C
- ?高靈敏度,響應速度快 ? ? ?
- ?測量周期:1ms(脈沖工作模式),11ms(持續工作模式) ? ? ?
- ?低功耗:在9mW(脈沖工作模式)到67mW(持續工作模式
三、STM32CubeMX配置(本文使用的STM32CubeMX版本為6.1.2)例程使用模擬I2C進行數據讀取
思路:配置相關外設及使用模擬I2C進行數據讀取,再將讀取的數據通過串口打印出來;
1.MCU選型
本例程使用的為STM32L051C8T6型號
2.使能時鐘
3.時鐘配置
4.GPIO口配置
模擬I2C引腳設置
USART串口參數設置
???????
四、配置STM32CubeMX生成工程文件
五、點擊GENERATE CODE生成工程文件
六、案例程序
1.I2C部分代碼說明
關于模擬的IIC時序代碼可參考原子的例程,這里不再復述。
IAR-CORE-C模塊的IIC通訊與傳統的IIC設備讀取存在一個特別的地方,再DATAsheet中有相關的說明,即在讀取模塊數據時,模塊接收讀取指令后會強制將SCL線上的電平拉低,待數據準備完成后再將SCL線電平釋放為高電平。所以在讀取模塊數據時需要去判斷SCL線的電平狀態,再進行數據的讀取處理,如果不等待直接去進行數據操作會導致無法讀取到正確的數據;其它的讀取時序與標準的IIC設備一致;
uint8_t Emul_i2c_RdByte_clk_stretching(uint8_t rdata)
{uint8_t i=8 ,rec =0;Emul_SDA_H;SDA_IN(); //SDA 設置為輸入for (i=0; i<8; i++){Emul_SCL_L;delay_us(4);Emul_SCL_H;rec<<=1;if( FALSE == Emul_i2c_waitSCL())return FALSE; //等待 slave 釋放 SCL 線,關鍵代碼if (READ_SDA()) rec|=0x01;delay_us(4);}Emul_SCL_L;SDA_OUT();//用完輸入 再配置為輸出供下次使用if (!rdata)Emul_i2c_Ack();//發送 ACKelseEmul_i2c_NAck(); //發送 NACKreturn rec;
}
IAQ-CORE-C數據結構
注意數據的第2byte位為模塊狀態位,模塊初始上電都要經過約5分鐘左右的預熱期,預熱期為0x10,經過預熱后當狀態字節位為0時,數據為有效數據。
模塊數據的讀取時序圖可參考附件的IAQ-CORE-C的DATAsheet。
2.串口重定義
串口重定義主要參考原子部分,通過printf將數據打印到上位機可直觀的查看數據;
3.硬件連接
注意引腳參數設置:不加上拉電阻是用 PP 模式,加了上拉電阻用 OD 模式。
七、IAQ-CORE-C參數讀取圖
1.初始上電預熱階段數據
2.預熱后數據狀態
??????????????