物聯網系統中使用數字式溫度傳感器芯片的原因主要有以下幾點:
高精度與穩定性
高精度測量:數字式溫度傳感器芯片,如DS18B20,采用芯片集成技術,能夠有效抑制外界不同程度的干擾,從而提供高精度的溫度測量。這對于物聯網系統來說至關重要,因為準確的溫度數據是許多應用(如冷鏈監控、智能家居溫控等)的基礎。
穩定性強:相較于模擬式溫度傳感器,數字式芯片在電路設計、信號處理等方面更加穩定,減少了因電路波動或環境變化導致的測量誤差。
直接數字輸出與易處理
直接數字輸出:數字式溫度傳感器芯片直接輸出串行數字信號,無需進行模擬到數字的轉換,簡化了后續的數據處理流程。這對于物聯網系統中的微控制器或處理器來說,可以直接接收并處理這些數字信號,提高了系統的整體效率和響應速度。
接口簡單:數字式溫度傳感器的接口設計簡潔,便于與物聯網系統中的其他設備進行連接和通信。這降低了系統集成的復雜度,并提高了系統的可擴展性。
抗干擾能力強
單總線技術:許多數字式溫度傳感器芯片采用單總線技術,這種技術不僅簡化了通信線路,還增強了芯片的抗干擾能力。在物聯網環境中,各種設備通過無線網絡進行通信,容易受到電磁干擾等因素的影響。數字式溫度傳感器的抗干擾能力能夠有效保障數據的準確傳輸。
成本控制與開發周期
成本控制:雖然數字式溫度傳感器芯片在初始投資上可能略高于某些模擬式傳感器,但其高精度、穩定性和易處理的特點使得系統整體成本得到有效控制。此外,隨著生產規模的擴大和技術的成熟,數字式傳感器的成本也在不斷降低。
縮短開發周期:數字式溫度傳感器芯片的設計簡潔、易于使用,有助于縮短物聯網系統的開發周期。開發人員可以更快地完成傳感器的集成和調試工作,從而加速產品的上市速度。
具體應用場景
智能家居
在智能家居中,數字溫度傳感器被廣泛應用于室內環境溫度的測量和控制。通過將數字溫度傳感器嵌入到智能家居設備中,如空調、地暖、暖氣等,可以實現對室內溫度的自動優化調節,提高用戶的生活舒適度。這些傳感器能夠實時監測室內溫度,并根據預設的溫度范圍自動調節設備的工作狀態,從而實現節能和舒適度的平衡。
醫療設備
在醫療設備中,數字溫度傳感器也發揮著重要作用。它們通常被用于體溫測量或手術過程中的溫度監測等方面。相比傳統的溫度計測量方式,數字溫度傳感器具有精度高、響應快等優點,能夠更加準確地反映體溫的變化情況,為醫療人員提供更加科學有效的診斷依據。同時,在醫療設備的溫度控制系統中,數字溫度傳感器也扮演著重要角色,確保設備在適宜的溫度下運行,保障患者的安全。
在工業控制領域,數字溫度傳感器被廣泛應用于溫度控制和保護。通過將數字溫度傳感器嵌入到工業設備中,如熔爐、烤箱、冶金設備等,可以實現對設備內部溫度的實時監測和控制。這有助于確保生產過程中的溫度穩定性,提高生產效率和產品質量。同時,在設備出現過熱等異常情況時,數字溫度傳感器能夠迅速發出警報,保護設備免受損壞,降低生產風險。
農業領域
在農業領域,數字溫度傳感器也被用于監測和控制溫室、大棚等農業設施的溫度。通過實時監測溫度,農民可以了解農作物的生長環境,并采取相應的措施來調節溫度,為農作物提供適宜的生長條件。這有助于提高農作物的產量和品質,促進農業生產的可持續發展。
其他領域
除了以上幾個領域外,數字溫度傳感器還廣泛應用于其他多個領域。例如,在汽車電子中,數字溫度傳感器被用于監測發動機冷卻水溫度、進氣溫度等參數;在航空航天領域,數字溫度傳感器被用于監測飛機、火箭等設備的溫度狀況;在環境監測中,數字溫度傳感器被用于監測大氣溫度、海洋溫度等環境參數。
綜上所述,物聯網系統中使用數字式溫度傳感器芯片可以帶來高精度、穩定性、易處理、抗干擾能力強以及成本控制和開發周期縮短等多重優勢。這些優勢使得數字式溫度傳感器芯片成為物聯網系統中不可或缺的重要組件。
本文會再為大家詳解數字式溫度傳感器芯片。
二、數字式溫度傳感器的行業知識介紹
數字式溫度傳感器芯片定義:
數字式溫度傳感器(芯片):就是能把溫度物理量和濕度物理量,通過溫度敏感元件和相應電路轉換成方便計算機、plc、智能儀表等數據采集設備直接讀取得數字量的傳感器。
數字溫度傳感器(芯片)是在20世紀90年代中期問世的。它是微電子技術、計算機技術和自動測試技術(ATE)的結晶。目前,國際上已開發出多種數字溫度傳感器(芯片)系列產品。數字溫度傳感器(芯片)內部都包含溫度傳感器、A/D轉換器、信號處理器、存儲器(或寄存器)和接口電路。有的產品還帶多路選擇器、中央控制器(CPU)、隨機存取存儲器(RAM)和只讀存儲器(ROM)。數字溫度傳感器(芯片)的特點是能輸出溫度數據及相關的溫度控制量,適配各種微控制器(MCU);并且它是在硬件的基礎上通過軟件來實現測試功能的,其智能化也取決于軟件的開發水平。
數字式溫度傳感器芯片產品原理:
數字式溫度傳感器(芯片)采用硅工藝生產的數字式溫度傳感器,其采用PTAT結構,這種半導體結構具有精確的,與溫度相關的良好輸出特性。PTAT的輸出通過占空比比較器調制成數字信號,占空比與溫度的關系如下式:DC=0.32 0.0047*t,t為攝氏度。輸出數字信號故與微處理器MCU兼容,通過處理器的高頻采樣可算出輸出電壓方波信號的占空比,即可得到溫度。該款溫度傳感器因其特殊工藝,分辨率優于0.005K。
數字式溫度傳感器芯片
測溫過程:將敏感元件、A/D轉換單元、存儲器等集成在一個芯片上,直接輸出反應被測溫度的數字信號,使用方便,但響應速度較慢(100ms數量級)。如溫度IC,溫度集成電路(IC)是一種數字溫度傳感器,它有非常線性的電壓∕電流—溫度關系。有些IC傳感器甚至有代表溫度、并能被微處理器直接讀出的數字輸出形式。有兩類具有如下溫度關系的溫度IC:電壓IC: 10 mV/K;電流IC: 1μA/K。
開始供電時,數字溫度傳感器(芯片)處于能量關閉狀態,供電之后用戶通過改變寄存器分辨率使其處于連續轉換溫度模式或者單一轉換模式。在連續轉換模式下,數字溫度傳感器(芯片)連續轉換溫度并將結果存于溫度寄存器中,讀溫度寄存器中的內容不影響其溫度轉換;在單一轉換模式,數字溫度傳感器(芯片)執行一次溫度轉換,結果存于溫度寄存器中,然后回到關閉模式,這種轉換模式適用于對溫度敏感的應用場合。在應用中,用戶可以通過程序設置分辨率寄存器來實現不同的溫度分辨率,其分辨率有8位、9位、10位、11位或12位五種,對應溫度分辨率分別為1.0℃、0.5℃、0.25℃、0.125℃或0.0625℃,溫度轉換結果的默認分辨率為9位。
數字式溫度傳感器芯片優缺點:
數字溫度傳感器芯片的優點
高精度:數字溫度傳感器芯片通常具有較高的測量精度和穩定性,能夠提供更準確的溫度讀數。這得益于其內置的模數轉換器(ADC)和校準算法,使得溫度信號在轉換為數字信號時更加精確。
快速響應:數字溫度傳感器芯片的響應速度通常比模擬溫度傳感器更快,因為它們能夠實時監測并快速反饋溫度變化。這種快速響應特性對于需要實時溫度控制的場合尤為重要。
抗干擾能力強:數字溫度傳感器芯片采用數字信號輸出,相比模擬信號,數字信號在傳輸過程中更不容易受到電磁干擾和噪聲的影響,從而提高了系統的穩定性和可靠性。
易于集成和處理:數字溫度傳感器芯片可以直接與數字電路連接,無需進行信號放大、濾波和模數轉換等復雜處理過程,簡化了電路設計,降低了系統成本。同時,數字信號也便于進行數字信號處理和遠程傳輸。
低功耗:由于數字溫度傳感器芯片采用先進的CMOS工藝制造,其功耗通常較低,適合用于電池供電等對電源要求較高的場合。
模擬溫度傳感器的優點
成本較低:在某些情況下,模擬溫度傳感器的成本可能低于數字溫度傳感器芯片,尤其是對于一些簡單的溫度測量應用。
適應性強:模擬溫度傳感器可以適應更廣泛的溫度范圍和工作環境條件,因為它們通常不需要額外的電源或復雜的電路支持。
數字溫度傳感器芯片的缺點
價格較高:相比模擬溫度傳感器,數字溫度傳感器芯片通常價格較高。這主要是由于其生產工藝復雜、集成度高以及附加功能多等因素導致的。然而,隨著生產技術的不斷進步和市場規模的擴大,數字溫度傳感器芯片的價格有望逐漸降低。
需要外部電源:雖然數字溫度傳感器芯片本身功耗較低,但仍然需要外部電源供電。在一些低功耗或無電源的應用場景中,這可能會成為一個限制因素。然而,隨著低功耗設計技術的發展,一些數字溫度傳感器芯片已經能夠實現自供電或低功耗運行。
模擬溫度傳感器的缺點
精度較低:模擬溫度傳感器的精度通常低于數字溫度傳感器芯片。它們可能受到多種因素的影響,如溫度漂移、非線性誤差和噪聲等,從而導致測量精度下降。
易受干擾:模擬信號在傳輸過程中容易受到電磁干擾和噪聲的影響,導致測量結果不準確。這需要采取額外的措施來降低干擾和噪聲的影響。
處理復雜:模擬溫度傳感器輸出的信號通常需要經過放大、濾波和模數轉換等復雜處理過程才能被數字系統使用。這增加了系統的復雜性和成本。
數字式溫度傳感器芯片分類:
單總線接口
單總線(1-wire)是美國DALLAS公司推出的外圍串行擴展總線技術。與SPI、I2C串行數據通信方式不同,它采用單根信號線傳輸。 這種協議由一個總線主節點、或多個從節點組成系統,通過根信號線對從芯片進行數據的讀取。每一個符合單總線協議的從芯片都有一個唯一的地址,包括48位的序列號、8位的家族代碼和8位的CRC代碼。主芯片根據64位尋址對各個芯片進行雙向通信,因此其協議對時序的要求較嚴格,初始化、寫bit或讀bit都有嚴格的時序要求,但是位于位之間沒有嚴格要求。
單總線的數據傳輸速率一般為16.3Kbit/s,最大可達142 Kbit/s,通常情況下采用100Kbit/s以下的速率傳輸數據。主設備I/O口可直接驅動200m范圍內的從設備,經過擴展后可達1km范圍。
這種傳輸方式信號線上既傳輸時鐘又傳輸數據,而且數據傳輸是雙向的,具有節省I/O口線、資源結構簡單、成本低廉、便于總線擴展和維護等諸多優點。
單總線只有一根數據線,設備(主機或從機)通過一個漏極開路或三態端口,連接至該數據線,這樣允許設備在不發送數據時釋放數據總線,以便總線被其它設各所使用。單總線端口為漏極開路,其內部等效電路下圖所示:
單總線電路外接一個約5K的上拉電阻,當單總線處于空閑狀態時為高電平,如果總線保持低電平超過480us,總線上的所有器件將復位。另外,在寄生方式供電時,為了保證單總線器件在某些工作狀態下(如溫度轉換期間、EEPROM寫入等)具有足夠的電源電流,必須在總線上提供強上拉。
單總線溫度傳感器主要有數字溫度傳感器(如DS18B20)、DHT11等。
SPI總線接口
SPI 是一種四線制串行總線接口,為主/從結構,四條導線分別為串行時鐘(SCLK)、主出從入(MOSI、主入從出(MISO)和從選(SS)信號。主器件為時鐘提供者,可發起讀從器件或寫從器件操作。這時主器件將與一個從器件進行對話。當總線上存在多個從器件時,要發起一次傳輸,主器件將把該從器件選擇線拉低,然后分別通過MOSI 和MISO 線啟動數據發送或接收。
SPI 時鐘速度很快,范圍可從幾兆赫茲到幾十兆赫茲,且沒有系統開銷。SPI 在系統管理方面的缺點是缺乏流控機制,無論主器件還是從器件均不對消息進行確認,主器件無法知道從器件是否繁忙。因此必須設計聰明的軟件機制來處理確認問題。同時SPI 也沒有多主器件協議,必須采用很復雜的軟件和外部邏輯來實現多主器件架構。每個從器件需要一個單獨的從選擇信號。總信號數最終為n+3 個,其中n是總線上從器件的數量。因此,導線的數量將隨增加的從器件的數量按比例增長。同樣,在SPI 總線上添加新的從器件也不方便。對于額外添加的每個從器件,都需要一條新的從器件選擇線或解碼邏輯。
IIC總線接口
I2C 是一種二線制串行總線接口,工作在主/從模式。二線通信信號分別為開漏SCL 和SDA 串行時鐘和串行數據。主器件為時鐘源。數據傳輸是雙向的,其方向取決于讀/寫位的狀態。每個從器件擁有一個唯一的7 或10 位地址。主器件通過一個起始位發起一次傳輸,通過一個停止位終止一次傳輸。起始位之后為唯一的從器件地址,再后為讀/寫位。
I2C總線速度為從0Hz到3.4MHz。它沒有SPI 那樣快,但對于系統管理器件如溫度傳感器來說則非常理想。I2C 存在系統開銷,這些開銷包括起始位/停止位、確認位和從地址位,但它因此擁有流控機制主器件在完成接收來自從器件的數據時總是發送一個確認位,除非其準備終止傳輸。從器件在其接收到來自主器件的命令或數據時總是發送一個確認位。當從器件未準備好時,它可以保持或延展時鐘,直到其再次準備好響應。
I2C允許多個主器件工作在同一總線上。多個主器件可以輕松同步其時鐘,因此所有主器件均采用同一時鐘進行傳輸。多個主器件可以通過數據仲裁檢測哪一個主器件正在使用總線,從而避免數據破壞。由于I2C總線只有兩條導線,因此新從器件只需接入總線即可,而無需附加邏輯。
SMBus總線接口
SMBus是一種二線制串行總線,1996年第一版規范開始商用。它大部分基于I2C總線規范。和I2C樣,SMBus不需增加額外引腳,創建該總線主要是為了增加新的功能特性,但只工作在100kHz且專門面向智能電池管理應用。它工作在主/從模式:主器件提供時鐘,在其發起一次傳輸時提供一個起始位,在其終止一次傳輸時提供一個停止位;從器件擁有一個唯一的7或10位從器件地址。
SMBus與I2C總線之間在時序特性上存在一些差別。首先,SMBus需要一定數據保持時間,而I2C總線則是從內部延長數據保持時間。SMBus具有超時功能,因此當SCL太低而超過35 ms時,從器件將復位正在進行的通信。相反,I2C采用硬件復位。SMBus具有一種警報響應地址(ARA),因此當從器件產生一個中斷時,它不會馬上清除中斷,而是一直保持到其收到一個由主器件發送的含有其地址的ARA為止。SMBus只工作在從10kHz到最高100kHz。最低工作頻率10kHz是由SMBus超時功能決定的。
單線脈沖總線接口
單線脈沖輸出數字溫度傳感器支持計數式通信,僅需單根信號線即可同時完成芯片供電和通信輸出功能,有效降低MCU開銷和成本。中科銀河芯自主研發設計的產品GX0011可直接替代NTC熱敏電阻,無需任何外部感溫單元即可實現12位(0.0625℃)溫度輸出,在-50°C~ +150°C的正常工作范圍內,測溫精度誤差< ±1℃,并具有良好的溫度線性度曲線,適用于通信、計算機、消費電子、環境、工業和儀器儀表等應用場景。
GX0011 支持兩種連接方式:上拉連接和下拉連接。需要注意的是,當采用下拉連接時,脈沖將從 GND 引腳(即拉電阻側)輸出,且總線極性與上拉連接方式相反,上電時 GND 引腳為低電平,溫度轉換完成后 GND 引腳周期發送高脈沖(占空比 25%)。
在單點應用中,上位機 MCU 僅需要一個 GPIO 口來對脈沖次數進行計數,可以有效節省 GPIO 資源。單點應用參考電路如下:
在多點應用中,所有 GX0011 共享 GPIO0 作為脈沖計數端口,并且共用同一上下拉電阻。通過將 GPIO1 到GPIOn 中的一個拉低(下拉連接則為拉高)可以使能相應的 GX0011 測溫節點。其余不用節點必須設置為高阻(或 兩腳短接)狀態。注意:如果兩個及以上節點同時使能,相互之間會產生數據沖突。
上圖所示,如果MCU接多個測溫終端,需要占用過多IO資源,為解決上述問題,申矽凌(Sensylink)憑借其在熱管理這一細分領域的技術積累,推出了總線式脈沖計數接口數字溫度傳感器芯片產品CT1721。支持在一個I/O PIN上,允許最多并聯9顆產品,通過脈沖計數接口,同時監控九個區域的溫度數據。用戶通過2個PIN(AD0, AD1)設置不同的地址碼(每個PIN通過接GND,DIO以及懸空,定義為3種狀態),達到在總線上區分的目的。工作電壓范圍:1.4V - 5.5V,滿足絕大多數系統溫度測量/監控場景。
數字式溫度傳感器芯片選型:
測量范圍和精度
測量范圍:首先確定所需測量的溫度范圍,并選擇能夠覆蓋該范圍的傳感器。例如,對于極低溫度或極高溫度的應用,需要選擇具有相應測量范圍的特殊傳感器。
精度:根據應用對溫度測量的精確度要求選擇合適的傳感器。精度表示傳感器讀數和系統實際溫度之間的誤差,通常針對不同溫度范圍有數個最高精度指標。
輸出信號類型
數字溫度傳感器有多種輸出信號類型,包括模擬信號、數字信號、總線信號(如I2C、SPI)等。根據控制系統或顯示設備的需求選擇合適的輸出信號類型。
測量方式
接觸式:傳感器需要與被測物體接觸,適用于需要精確測量物體表面或內部溫度的場景。
非接觸式(如紅外線傳感器):通過測量物體表面發射的紅外線輻射能量來測量溫度,適用于不接觸物體、遠距離測量的場景。
響應速度
根據實際應用場景的響應時間要求進行選擇。對于需要快速響應的應用,如汽車電子領域,應選擇響應速度更快的數字溫度傳感器。
抗干擾性能
在一些復雜環境下,數字溫度傳感器需要具備一定的抗干擾性能,以應對電磁干擾、振動干擾等。
成本和體積
成本:在滿足性能要求的前提下,考慮傳感器的成本和性價比。對于成本敏感的應用場景,可以選擇價格較為低廉的數字溫度傳感器。
體積:對于空間有限的應用場景,選擇體積更小的數字溫度傳感器更為合適。
其他因素
防護等級和防爆等級:根據實際工作環境選擇合適的防護等級和防爆等級。
品牌和售后服務:選擇知名品牌和有良好售后服務的數字溫度傳感器,以保證產品質量和售后服務支持。
校準和標定:考慮是否需要校準或標定傳感器以獲得更準確的測量結果。一些傳感器在出廠時已經過校準,而其他傳感器則可能需要在使用前進行校準。
數字式溫度傳感器芯片的廠商
霍尼韋爾(Honeywell)
公司簡介:霍尼韋爾國際公司是一家在技術和制造業方面占世界領先地位的多元化跨國公司。其業務涉及多個領域,包括航空航天、住宅及樓宇控制、工業控制技術等。霍尼韋爾在傳感器技術方面有著深厚的積累,其數字溫度傳感器在全球市場上享有很高的聲譽。
應用領域:霍尼韋爾的數字溫度傳感器被廣泛應用于工業自動化、航空航天、醫療設備等多個領域。
西門子(Siemens)
公司簡介:西門子是全球電子電氣工程領域的領先企業,自1872年進入中國以來,以創新的技術和卓越的解決方案支持中國的發展。西門子在傳感器領域有著豐富的產品線,包括多種類型的溫度傳感器。
應用領域:西門子的數字溫度傳感器在工業自動化、能源、交通等領域得到廣泛應用。
公司簡介:德州儀器是一家全球知名的半導體公司,主要從事設計制造、測試銷售模擬以及嵌入芯片處理服務。其在數字溫度傳感器領域擁有強大的技術實力和豐富的產品線。
應用領域:TI的數字溫度傳感器被廣泛應用于消費電子、汽車電子、工業控制等多個領域。
意法半導體(STMicroelectronics, ST)
公司簡介:意法半導體是全球規模較大的微電子產品生產企業,其產品涵蓋高性能控制器、安全型智能卡芯片等多個領域。意法半導體在溫度傳感器領域也有著豐富的產品線和廣泛的應用。
應用領域:意法半導體的數字溫度傳感器在汽車電子、工業控制、智能家居等領域得到廣泛應用。
其他廠商
除了以上幾家知名廠商外,還有許多其他優秀的數字溫度傳感器廠商,如Amphenol、Sensata、TDK、華工科技、正泰新能源等。這些廠商在各自的領域內都具有一定的技術實力和市場份額,為數字溫度傳感器行業的發展做出了重要貢獻。
三、數字式溫度傳感器的硬件設計方案
本文主要采用了北京智芯微電子科技有限公司的SCCK33112H6A做為驅動芯片。
SCCK33112H6A是一款高精度、低功耗、可替代NTC/PTC熱敏電阻的數字溫度傳感器,可用于通信、計算機、消費類電子、環境、工業和儀器儀表應用中的溫度測量。SCCK33112H6A在-40°C至+125°C的正常工作范圍內,可提供≤±0.5℃的溫度精度,并具有良好的溫度線性度。SCCK33112H6A可提供擴展測溫模式,將測溫范圍擴展為-55℃至+150℃。SCCK33112H6A的額定工作電壓范圍為1.4V~5.5V,在整個工作范圍內最大靜態電流為10μA(測溫頻率4Hz時)。集成在芯片內部的12位ADC分辨率低至0.0625°C。
SCCK33112H6A采用1.6mm×1.6mm的SOT563 /DFNWB封裝,兼容SMBus和I2C接口,在一條總線上最多可掛載四個從機,并具有SMBus報警功能。
基 本 性 能
?測溫范圍:-55°C ~ +150°C
?測溫精度:±0.5°C(-40°C ~ +125°C)
?封裝:6-Pin SOT563(1.60 mm × 1.60 mm)
6-Pin DFNWB(1.60 mm × 1.60 mm)
?電源電壓:1.4V ~ 5.5V
?低靜態電流
正常工作:≤10μA(4Hz)
關斷模式:≤1μA
?分辨率:0.0625°C
?數字輸出:兼容SMBus?、I2C接口
應 用 場 景
?便攜式、電池供電應用
?電源溫度監控
?電腦外部設備熱保護
?筆記本電腦
?電池管理
?辦公機器
?恒溫控制
?機電設備溫度
?一般溫度測量:
– 工業控制
– 測驗設備
– 醫療儀器
硬件參考設計
研發設計注意使用事項
在 SCCK33112H6A 的 V+引腳上添加一個 RC 濾波器可以進一步降低外部噪聲的影響,如下圖所示,其中的 RF 必須小于 5kΩ,CF 必須大于 10nF。
實際測溫中,需將 SCCK33112H6A 放置在被監控的熱源附近,并采用適當的布局以實現良好的熱
耦合,確保在最短的時間間隔內捕獲溫度變化。為了在需要測量空氣或表面溫度的應用中保持精度,請注
意將封裝和引線與環境溫度隔離。導熱粘合劑有助于實現精確的表面溫度測量。
四、數字式溫度傳感器的軟件設計方案
本文采用了奇跡物聯的紅豆版開源技術平臺為主控單元,一步步手把手教會讀者如何使用紅豆版開源平臺編寫SCCK33112H6A驅動。這里對代碼就不多詳解,如果需要詳細了解,請到奇跡物聯的紅豆版開源平臺了解詳細代碼講解。
1 Gitee鏈接地址
Demo位于amaziot_bloom_os_sdksample3rd1.1_SCCK33112H6A
Gitee源碼地址:https://gitee.com/ning./hongdou
Github源碼地址:https://github.com/ayumid/hongdou
編譯指令:.build.bat -l .amaziot_bloom_os_sdksample3rd1.1_SCCK33112H6A
2 組件功能介紹
驅動溫度芯片,定時讀取芯片寄存器,計算出當前溫度,設置溫度高限,低限,當溫度觸發門限后,會產生中斷,用戶在使用時,可以根據中斷相關服務函數,進行后續的處理。
3 代碼講解
1 drv_scck33112h6a_i2c_init
功能:該函數用于,將發送數據長度寫入scck33112h6a寄存器。
參數:五
返回值:無
示例:
//初始化i2c總線 ret = drv_scck33112h6a_i2c_init();
2 drv_scck33112h6a_i2c_read
功能:該函數用于,讀取I2C從機。
參數:五
返回值:無
示例:
RegAddr = 0x00; ret = drv_scck33112h6a_i2c_read(&RegAddr, &RegReadValue0); sample_scck33112h6a_catstudio_printf("read reg 00 i2c value=0x%x, ret=%dn", RegReadValue0, ret);
3 drv_scck33112h6a_i2c_write
功能:該函數用于,發送數據到I2C從機。
參數:五
返回值:無
示例:
RegAddr = 0x06; RegWriteValue = 0xFF; ret = drv_scck33112h6a_i2c_write(&RegAddr, &RegReadValue0); sample_scck33112h6a_catstudio_printf("write i2c value=0x%x, ret=%dn", RegWriteValue, ret);
4 Demo實戰
4.1 創建一個Demo
復制20.1_file_xtu示例工程,到同一個文件夾下,修改文件名為3.1_SSD1315,如圖:
4.2 修改makefile
增加文件組件所在目錄頭文件路徑,和源文件路徑,如圖:
4.3 增加頭文件
使用代碼編輯器,將新建的工程文件加入代碼編輯器中,打開main.c,修改main.c,加入am.h等頭文件,如圖:
4.4 修改代碼
在Phase2Inits_exit 創建一個任務,如圖:
4.5 宏定義介紹
sample_scck33112h6a_uart_printf
輸出日志到DEBUG 串口,日志比較少,可以輸出到這個串口,如果日志比較多,需要輸出到usb口,以免不必要的問題出現
sample_scck33112h6a_catstudio_printf
輸出日志到USB 串口,使用catstudio查看,catstudio查看日志需要更新對應版本mdb.txt文件,軟件打開filtter過濾日志,只查看用戶輸出的日志
SAMPLE_SSCK33112H6A_STACK_SIZE
棧空間宏定義
4.6 全局變量介紹
sample_scck33112h6a_int_detect_stack_ptr
任務棧空間,本例使用數組實現,用戶在做項目時,可以預先估算下當先任務需要的大致棧空間,OS沒有提供可以查看棧空間使用情況的API
sample_scck33112h6a_int_detect_task_ref
任務指針
4.7 函數介紹
Phase1Inits_enter
底層初始化,本例空
Phase1Inits_exit
底層初始化,本例空
Phase2Inits_enter
底層初始化,本例空
Phase2Inits_exit
創建主任務,初始化消息隊列,定時器,任務等。
代碼片段:
int ret = 0; GPIOConfiguration config = {0}; //創建定時器 OSATimerCreate(&sample_scck33112h6a_int_detect_timer_ref); //創建中斷事件 OSAFlagCreate( &sample_scck33112h6a_int_detect_flg_ref); Os_Create_HISR(&sample_scck33112h6a_int_detect_hisr, "sample_scck33112h6a_int_detect_hisr", sample_scck33112h6a_detect_handler, 2); //創建中斷處理任務 OSATaskCreate(&sample_scck33112h6a_int_detect_task_ref, sample_scck33112h6a_int_detect_stack_ptr, SAMPLE_SSCK33112H6A_STACK_SIZE, 100, "detect_task", sample_scck33112h6a_detect_task, NULL); //創建中斷處理任務 OSATaskCreate(&sample_scck33112h6a_read_task_ref, sample_scck33112h6a_read_stack_ptr, SAMPLE_SSCK33112H6A_STACK_SIZE, 100, "read_task", sample_scck33112h6a_read_task, NULL); //初始化int引腳,這里使用70腳 gpio126 config.pinDir = GPIO_IN_PIN; config.pinEd = GPIO_TWO_EDGE; config.pinPull = GPIO_PULLUP_ENABLE; config.isr = sample_scck33112h6a_irq_handler; GpioInitConfiguration(SAMPLE_GPIO_ISR_PIN_NUM, config);
sample_scck33112h6a_read_task
主任務,獲取讀溫度信息等參數信息。
代碼片段:
void sample_scck33112h6a_read_task(void *param) { GPIO_ReturnCode ret = 0; UINT32 value = 0; OSA_STATUS status = OS_SUCCESS; UINT32 flag_value = 0; unsigned char RegAddr = 0; UINT8 pR1_Data[2] = {0}; UINT16 reg0 = 0; UINT16 reg1 = 0; UINT16 reg2 = 0; UINT16 reg3 = 0; //初始化i2c總線 ret = drv_scck33112h6a_i2c_init(); sample_scck33112h6a_catstudio_printf("ql_i2c_init ret %d", ret); //等1s OSATaskSleep(1 * 200); //寫配置寄存器 RegAddr = DRV_SCCK33112H6A_REGISTER1_ADDRESS; pR1_Data[0] = 0x60; pR1_Data[1] = 0x90; ql_i2c_write_ext(DRV_SCCK33112H6A_I2C_NUM, DRV_SCCK33112H6A_I2C_SLAVE_ADDR, &RegAddr , 1, pR1_Data, 2); RegAddr = DRV_SCCK33112H6A_REGISTER3_ADDRESS; //寫溫度高限寄存器 pR1_Data[0] = 0x11; pR1_Data[1] = 0x00; ql_i2c_write_ext(DRV_SCCK33112H6A_I2C_NUM, DRV_SCCK33112H6A_I2C_SLAVE_ADDR, &RegAddr , 1, pR1_Data, 2); //寫溫度低限寄存器 RegAddr = DRV_SCCK33112H6A_REGISTER2_ADDRESS; pR1_Data[0] = 0x0A; pR1_Data[1] = 0x00; ql_i2c_write_ext(DRV_SCCK33112H6A_I2C_NUM, DRV_SCCK33112H6A_I2C_SLAVE_ADDR, &RegAddr , 1, pR1_Data, 2); //讀配置寄存器 RegAddr = DRV_SCCK33112H6A_REGISTER1_ADDRESS; ql_i2c_read_ext(DRV_SCCK33112H6A_I2C_NUM, DRV_SCCK33112H6A_I2C_SLAVE_ADDR, &RegAddr , 1, pR1_Data, 2); reg1 = (UINT16)(pR1_Data[0] < 8 + pR1_Data[1]); sample_scck33112h6a_catstudio_printf("reg1 value=0x%x, ret=%dn", reg1, ret); //讀溫度高限寄存器 RegAddr = DRV_SCCK33112H6A_REGISTER3_ADDRESS; ql_i2c_read_ext(DRV_SCCK33112H6A_I2C_NUM, DRV_SCCK33112H6A_I2C_SLAVE_ADDR, &RegAddr , 1, pR1_Data, 2); reg3 = (UINT16)(pR1_Data[0] < 8 + pR1_Data[1]) >> 4; sample_scck33112h6a_catstudio_printf("reg3 value=0x%x, ret=%dn", reg3, ret); //讀溫度低限寄存器 RegAddr = DRV_SCCK33112H6A_REGISTER2_ADDRESS; ql_i2c_read_ext(DRV_SCCK33112H6A_I2C_NUM, DRV_SCCK33112H6A_I2C_SLAVE_ADDR, &RegAddr , 1, pR1_Data, 2); reg3 = (UINT16)(pR1_Data[0] < 8 + pR1_Data[1]) >> 4; sample_scck33112h6a_catstudio_printf("reg2 value=0x%x, ret=%dn", reg3, ret); //等1s OSATaskSleep(1 * 200); while(1) { RegAddr = DRV_SCCK33112H6A_REGISTER0_ADDRESS; ql_i2c_read_ext(DRV_SCCK33112H6A_I2C_NUM, DRV_SCCK33112H6A_I2C_SLAVE_ADDR, &RegAddr , 1, pR1_Data, 2); float temp = 0.0; int data = 0; data = (pR1_Data[0] < 8 | pR1_Data[1]) >> 4; //判斷如果是負數,需要按照二進制補碼,去掉符號位,減一取反后取低12位,再乘0.0625,再用0減變為負數 if((data & DRV_SCCK33112H6A_TEMP_SIGNED) == DRV_SCCK33112H6A_TEMP_SIGNED) { temp = (float)(0 - (~((data & DRV_SCCK33112H6A_TEMP_MSK) - 1) & DRV_SCCK33112H6A_TEMP_MSK) * DRV_SCCK33112H6A_TEMP_1LSB); } //正數直接乘0.0625 else { temp = (float)data * DRV_SCCK33112H6A_TEMP_1LSB; } sample_scck33112h6a_catstudio_printf("data: 0x%X data: %d temp:%fn", data, data, temp); sample_scck33112h6a_catstudio_printf("temprature:%fn", temp); //等1s OSATaskSleep(1 * 200); } }
4.8 編譯
在SDK根目錄打開命令行,輸入命令.build.bat -l .amaziot_bloom_os_sdksample3rd1.1_SCCK33112H6A
PS F:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF λ .build.bat -l .amaziot_bloom_os_sdksample3rd1.1_SCCK33112H6A 子目錄或文件 outbin 已經存在。 命令語法不正確。 子目錄或文件 buildobj 已經存在。 gnumake: Entering directory `F:/3.asr-b/cat.1-asr1606/1.software/BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/3rd/1.1_SCCK33112H6A' armcc.exe -c --cpu Cortex-R4 --no_unaligned_access -g -O2 --apcs /inter --diag_suppress 2084,1,2,177,188,223,550,1296,2795,6319,9931,9933 --diag_error=warning --gnu --thumb --loose_implicit_cast -DDATA_COLLECTOR_IMPL -DISPT_OVER_SSP -DDIAG_SSP_DOUBLE_BUFFER_USE_DYNAMIC_ALLOCATION -DENV_XSCALE -DL1_DCXO_ENABLED -DLTE_HIGH_MOBILITY_OPTIMIZATION -DRUN_XIP_MODE -DCRANE_Z2 -DCA_LONG_IPC_MSG -DNEZHA3 -DNEZHA3_1826 -DUPGRADE_PLMS -DUPGRADE_PLMS_SR -DLTE_GSMMULTIBCCH -DGPLC_LTE_RSSI_SCAN -DL1V_NEW_RSSI -DUPGRADE_PLMS_3G -DUPGRADE_PLMS_L1 -DUPGRADE_FG_PLMS -DFG_PLMS_URR -DUPGRADE_L1A_FG_PLMS -DUPGRADE_PLMS_STAGE_2 -DUPGRADE_MBCCH -DMULTI_BCCH_READY_IND -DURR_MRAT_ICS_SEARCH -DUPGRADE_ICS -DMRAT_NAS -DUPGRADE_PLMS_SEARCH_API -DICS_MBCCH -DICS_MBCCH_2G_RSSI -DDIAG_NEWPP -DPHS_SW_DEMO -DPHS_SW_DEMO_TTC -DPHS_SW_DEMO_TTC_PM -DFULL_SYSTEM -D_DDR_INIT_ -D_TAVOR_HARBELL_ -DUPGRADE_ARBEL_PLATFORM -D_TAVOR_B0_SILICON_ -DTDL1C_SPY_ENABLE -DDLM_TAVOR -DTAVOR -DFLAVOR_DUALCORE -DDEBUG_D2_MOR_REG_RESEREVED_ENABLE -D_DIAG_USE_COMMSTACK_ -D_TAVOR_DIAG_ -DPM_DEBUG_MODE_ENABLED -DPM_D2FULL_MODE -DPM_EXT_DBG_INT_ARR -DFEATURE_WB_AMR_PS -DMACRO_FOR_LWG -DHL_LWG -DOPTIMIZE_FOR_2G_BCCH -DPLAT_TEST -D_FDI_USE_OSA_ -DPLAT_USE_THREADX -DLWIP_IPNETBUF_SUPPORT -DCRANE_MCU_DONGLE -DAT_OVER_UART -DPHS_SW_DEMO_TTC_PM -DUPGRADE_LTE_ONLY -DEXT_AT_MODEM_SUPPORT -DLTEONLY_THIN_SINGLE_SIM -DLFS_FILE_SYS -DLFS_FILE_SYS_V2 -DPSM_ENABLE -DNO_PAHO_MQTT -DNO_XML -DNO_LWM2M -DREMOVE_MBEDTLS -DNO_AT_NET -DCRANE_SD_NOT_SUPPORT -DNTP -DYMODEM_EEH_DUMP -DENABLE_DM_LTEONLY -DLTEONLY_THIN -DNO_EXTEND_MY_Q_AT -DNOT_SUPPORT_HTTPS -DNOT_SUPPORT_PM813 -DCRANEL_4MRAM -DREMOVE_PB -DUART_NEW_VERSION -DREMOVE_MEP -DREMOVE_SMS -DREMOVE_ENVSIM -DAPN_INCODE -DLTEONLY_THIN_SINGLE_SIM_2MFLASH -DASR160X_OPENCPU_FEATURE -DENABLE_UART3_FEATRUE -DENABLE_UART4_FEATRUE -DYUGE_MBEDTLS_3_2_1 -DENABLE_MAC_TX_DATA_LOGGING -DDISABLE_NVRAM_ACCESS -DINTEL_UPGRADE_EE_HANDLER_SUPPORT -DLTE_W_PS -DL1_DUAL_MODE -DUPGRADE_HERMON_DUAL -DINTEL_UPGRADE_DUAL_RAT -DINTEL_UPGRADE_GPRS_CIPHER_FLUSH -DUPGRADE_ENHANCED_QUAD_BAND -DINTEL_2CHIP_PLAT -DI_2CHIP_PLAT -DUPGRDE_TAVOR_COMMUNICATION -DRUN_WIRELESS_MODEM -DFLAVOR_DDR12MB_GB1MB5 -DFEATURE_SHMEM -DACIPC_ENABLE_NEW_CALLBACK_MECHANISM -DRELIABLE_DATA -DMAP_NSS -DTV_FNAME=""SW_PLATFORM=PMD2NONE PHS_SW_DEMO PHS_SW_DEMO_PM SRCNUCLEUS FULL_SYSTEM NOACRTC PDFLT PLAT_TEST PV2 DIAGOSHMEM NVM WITHL1V"" -DTV_FDESC=""SW_DESCRIPTION="" -DENABLE_ACIPC -D_DATAOMSL_ENABLED_ -DUSB_CABLE_DETECTION_VIA_PMIC -DMIPS_TEST -DMIPS_TEST_RAM -DFLAVOR_DIET_RAM -DNVM_INCLUDE -DMSL_INCLUDE -DMSL_POOL_MEM -DNO_AUDIO -DOSA_QUEUE_NAMES -D_DIAG_DISABLE_USB_ -DOSA_NUCLEUS -DOSA_USED -DPM_D2NONE_MODE -DCRANE_SOC_TEMPERATURE_SENSOR -DL1_SW_UPDATE_FOR_DIGRF -DPHS_L1_SW_UPDATE_R7 -DUPGRADE_LTE -DFRBD_CALIB_NVM -DFRBD_AGC_CALIB -DFRBD_FDT_CALIB -DHSPA_MPR -DCAPT_PARAMS_OPTIMIZE -DL1_WB_R99_ONLY -DL1V_WB_R99_ONLY -DINTERGRATED_RF_SUPPORT -DL1_RX_DIV_SUPPORT -DENABLE_OOS_HANDLING -DTAVOR_D2_WB_L1_SUPPORT -DL1_DDR_HIGH_FREQ -DUPGRADE_DIGRF3G_SUPPORT -DW_PS_PLUS_G_PAGING -D"NO_APLP=0" -DINTEL_UPGRADE_UNIFIED_VOICE_TASK -DINTEL_UPGRADE_R99 -DAPLP_SPY_ENABLE -D__TARGET_FEATURE_DOUBLEWORD -DWHOLE_UMTS_STACK -DUSE_TTPCOM_CSR_BLUETOOTH_AUDIO_GAIN_CONTROL -DL1_UPGRADE_R5 -DUPGRADE_EDGE -DUPGRADE_R4_FS1 -DINTEL_UPGRADE_GSM_CRL_IF -DUPGRADE_EGPRS_M -DINTEL_UPGRADE_EGPRS_M -DINTEL_UPGRADE_RF_PARAMS_IN_CF_TDS -DINTEL_UPGRADE_2SAMPLES_PER_SYMBOL -D"GPRS_MULTISLOT_CLASS=12" -D"EGPRS_MULTISLOT_CLASS=12" -DMARVELL_UPGRADE_BSIC_REDESIGN -DMSL_INCLUDE -DINTEL_HERMON_SAC -DCRANE_CUST_BUILD -DL1_SW_UPDATE_FOR_DIGRF -DFLAVOR_COM -DSILICON_PV2 -DSILICON_SEAGULL -DSILICON_TTC_CORE_SEAGULL -DPCAC_INCLUDE -Otime -DBUILD_DATE=""06 21 2024"" -DBUILD_TIME=""10:56:09"" -Iatcmdsinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyyugeinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalUARTinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalcoreinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalPMUinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalGPIOinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xosposixinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xdiagdiag_logicsrc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswSysCfginc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswplatforminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xenvwin32inc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswBSPinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswplatformdev_platbuild -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xososainc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xosthreadxinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xosnu_xscaleinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacpsminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcachttpclientsrc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xdiagdiag_logicinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptimerinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopintcinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswPMinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoppminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilTickManagerinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopBSPinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyatcmdsrvinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyatparserinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonysdkinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcachttpclientinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacciinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcinclude -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludearch -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludeipv4 -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludeipv6 -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludelwip -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludenetif -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopmmi_matinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xtavorArbelinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xtavorenvinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonymodeminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacdusterinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacfotainc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalI2Cinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalACIPCinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfatsysflash -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcINCLUDE -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalMMUinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcFDI_ADD -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcFM_INC -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfatsysfshdr -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutillittlefsinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacttsinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacdialinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilcsw_memoryinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoputilitiesinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopcommpminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilnvminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilEEhandlerinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilEEhandlersrc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopRTCinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyci_clientinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalBT_deviceinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalUARTinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopmrdinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopdmainc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilsoftutilinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalSPIinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacwebsocketinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacatnet_srvinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfotacomminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swAudioinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swACM_COMMinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swaudio_stubsrc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopaaminc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swAudioHALinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhaldbgshellinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacopencpuinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFamaziot_bloom_os_sdkutils -IF:/3.asr-b/cat.1-asr1606/1.software/BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/3rd/1.1_SCCK33112H6Aaminc -IF:/3.asr-b/cat.1-asr1606/1.software/BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/3rd/1.1_SCCK33112H6Aatcmdsinc -IF:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFamaziot_bloom_os_sdk3rd_drivesSCCK33112H6A -o buildobj/ext_at_cmds.o F:/3.asr-b/cat.1-asr1606/1.software/BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/3rd/1.1_SCCK33112H6A/atcmds/src/ext_at_cmds.c armlink.exe buildobj/main.o buildobj/ext_at_cmds.o buildobj/ext_at_controller.o buildobj/drv_scck33112h6a.o -o F:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutbinArbel_PMD2NONE_40M.axf --via F:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFprebuilt_1606lArbel_PMD2NONE_targ_objliblist.txt --elf --scatter F:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFprebuilt_1606lCrane_DS_4M_Ram_2M_Flash_XIP_CIPSRAM_Common_SingleSIM.sct --predefine="-DLTEONLY_THIN_SINGLE_SIM" --map --symbols --info sizes,totals --list F:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutbinArbel_PMD2NONE_40M.map --keep init.o(Header) --keep init.o(Vectors) --diag_suppress 6312,6314,6319,6329 --feedback F:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutfeedbackLinkOptLteonlyThin_SingleSim_NoSMS.txt F:3.asr-bcat.1-asr16061.softwareBlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFtoolsbuildimage_1606l.bat SDK_PROD_TYPE : [DM] SDK_CUST_SKU : [THIN_SINGLE_SIM_NO_SMS] SDK_PS_MODE : [LTEONLY] SDK_CHIP_VER : [Z2A0] SDK_OS_TYPE : [TX] Platform Convertion Tools v4.01 with PS option extension Convertion done! |INPUT |outbincp_1606L.bin |MARK |NAME |EXEADDR .LOADADDR.LENGTH .CPZLADDR|COMPRESS STASTIC | |--------|--------|--------.--------.--------.--------|------------------------------| |This Is LteOnly 4M| |RW_CPZ_1|DDR_RW_ |7e119000.80064ea8.0000ce04.80065000|0000ce04->00003000 |This Is LteOnly 4M| |RW_CPZ_2|PS_NCAH |7e388000.80071cac.00001300.80068000|00001300->00001000 |This Is LteOnly 4M| |RW_CPZ_3|ITCM |7e3dac00.80072fac.0000f51c.80069000|0000f51c->0000a000 |This Is LteOnly 4M| |RW_CPZ_4|CODE_PS |7e1aa000.800824c8.0002fe38.80073000|0002fe38->0001e000 |This Is LteOnly 4M| |RW_CPZ_5|CODEPSB |7e1dc000.800b2300.000339c0.80091000|000339c0->0001b000 |This Is LteOnly 4M| |RW_CPZ_6|CODEPSC |7e213000.800e5cc0.000323ec.800ac000|000323ec->0001b000 |This Is LteOnly 4M| |RW_CPZ_7|CODEPSD |7e249000.801180ac.00028d88.800c7000|00028d88->0001a000 |This Is LteOnly 4M| |RW_CPZ_8|CODEPSE |7e277000.80140e34.0002e310.800e1000|0002e310->0001a000 |This Is LteOnly 4M| |RW_CPZ_9|CODEPSF |7e2a9000.8016f144.0001c948.800fb000|0001c948->00011000 |This Is LteOnly 4M| |RW_CPZ_A|CODE_PL |7e2ca000.8018ba8c.0002fa44.8010c000|0002fa44->0001e000 |This Is LteOnly 4M| |RW_CPZ_B|CODEPLB |7e2fa000.801bb4d0.00039058.8012a000|00039058->00021000 |This Is LteOnly 4M| |RW_CPZ_C|CODEPLC |7e337000.801f4528.000268d4.8014b000|000268d4->00011000 |--------|--------|--------.--------.--------.--------|------------------------------| | | 0x00203dfc -> 0x00145000| | | 2.015(MB) -> 1.270(MB)| |------------------------------------------------------------------------------------| cp_1606L.axf cp_1606L.bin cp_1606L.map gnumake: Leaving directory `F:/3.asr-b/cat.1-asr1606/1.software/BlOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/3rd/1.1_SCCK33112H6A' "copy NEZHAC_CP_CNR_MIFI_TX.bin to ./ " 已復制 1 個文件。
4.9 生成固件
參考入門中開發工具,生成工具。
4.10 測試
測試步驟:
參考編譯教程,和文檔開頭的編譯指令,進行編譯
按照編譯教程選擇對應的選項
燒錄
4.11 固件
上電后,串口助手會打印出當前獲取到的溫度,以及芯片寄存器原始信息;
點擊下載 SCCK33112H6A Demo 固件
5 生態組件鏈接
數字溫度傳感器(芯片)
五、如何了解更多數字式溫度傳感器功能
本文章源自奇跡物聯開源的物聯網應用知識庫Cellular IoT Wiki,更多技術干貨歡迎關注收藏Wiki:Cellular IoT Wiki 知識庫(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)
歡迎同學們走進AmazIOT知識庫的世界!
這里是為物聯網人構建的技術應用百科,以便幫助你更快更簡單的開發物聯網產品。
Cellular IoT Wiki初心:
在我們長期投身于蜂窩物聯網 ODM/OEM 解決方案的實踐過程中,一直被物聯網技術碎片化與產業資源碎片化的問題所困擾。從產品定義、芯片選型,到軟硬件研發和測試,物聯網技術的碎片化以及產業資源的碎片化,始終對團隊的產品開發交付質量和效率形成制約。為了減少因物聯網碎片化而帶來的重復開發工作,我們著手對物聯網開發中高頻應用的技術知識進行沉淀管理,并基于 Bloom OS 搭建了不同平臺的 RTOS 應用生態。后來我們發現,很多物聯網產品開發團隊都面臨著相似的困擾,于是,我們決定向全體物聯網行業開發者開放奇跡物聯內部沉淀的應用技術知識庫 Wiki,期望能為更多物聯網產品開發者減輕一些重復造輪子的負擔。
Cellular IoT Wiki沉淀的技術內容方向如下:
奇跡物聯的業務服務范圍:基于自研的NB-IoT、Cat1、Cat4等物聯網模組,為客戶物聯網ODM/OEM解決方案服務。我們的研發技術中心在石家莊,PCBA生產基地分布在深圳、石家莊、北京三個工廠,滿足不同區域&不同量產規模&不同產品開發階段的生產制造任務。跟傳統PCBA工廠最大的區別是我們只服務物聯網行業客戶。
連接我們,和10000+物聯網開發者一起 降低技術和成本門檻
讓蜂窩物聯網應用更簡單~~
哈哈你終于滑到最重要的模塊了,
千萬不!要!劃!走!忍住沖動!~
歡迎加入飛書“開源技術交流群”,隨時找到我們哦~
點擊鏈接如何加入奇跡物聯技術話題群(https://rckrv97mzx.feishu.cn/docx/Xskpd1cFQo7hu9x5EuicbsjTnTf)可以獲取加入技術話題群攻略
Hey 物聯網從業者,
你是否有了解過奇跡物聯的官方公眾號“eSIM物聯工場”呢?
這里是奇跡物聯的物聯網應用技術開源wiki主陣地,歡迎關注公眾號,不迷路~
及時獲得最新物聯網應用技術沉淀發布
(如有侵權,聯系刪除)
審核編輯 黃宇
-
溫度傳感器
+關注
關注
48文章
2912瀏覽量
155888 -
物聯網
+關注
關注
2903文章
44270瀏覽量
371233 -
開源物聯網
+關注
關注
0文章
4瀏覽量
2404
發布評論請先 登錄
相關推薦
評論