總網頁瀏覽量

2022年12月14日 星期三

【 嵌入式系統(Embedded System) 到底是什麼? 】

【 嵌入式系統(Embedded System) 到底是什麼? 】

關於這方面,許多台灣的大學學術界資深老師(無論名校或者非名校)、產業界資深主管/工程師,常會誤以為嵌入式系統就是指有嵌入Linux的系統,其實這是個明顯的認知錯誤。個人應該已經不只十次在企業職缺或者大學校院內的論文看到這個問題,直到今年(2022)我還是有在國內的研討會論文中看到這個錯誤。

這情況類似之前提過的微處理機/微控制器的名詞常被混用的狀況,而許多歐美的相關技術書籍對此名詞有較嚴謹的說明。如果大家很重視「學術」,那就應該要對這些名詞的基本定義有一定的嚴謹程度。

同時讓我們看一下 Wikipedia英文版頁面內容(較詳細)對於嵌入式系統(Embedded system)的基本定義[1]:  「An embedded system is a computer system—a combination of a computer processorcomputer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system.  It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. 

簡單來說,嵌入式系統就是被嵌入到電子/機械/機電硬體系統內、具備特定/專用功能的 計算機(電腦)系統。 這個「嵌入」並不是 在指Linux OS軟體被嵌入到一個系統。

就算是跑non-OS類型的軟韌體的MCU為核心的系統產品,基本上也都是嵌入式系統。並不是只有那些有跑(執行)嵌入式Linux或Android的系統才叫做嵌入式系統。

對於專業名詞定義認知落差,有時候就是造成工程開發過程中的溝通問題的來源。

Ref: 

[1] Wikipedia, Embedded system, https://en.wikipedia.org/wiki/Embedded_system .


-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2022年12月8日 星期四

【關於本園區之嵌入式系統韌體基礎課程導向】「建立紮實基礎的本質面,不是軍備競賽,也不是花拳繡腿的應用」

【關於嵌入式系統/韌體 基礎課程的導向】

「建立紮實基礎的本質面,而不是如同比規格的軍備競賽,也不主打花拳繡腿的應用」

這幾年開始嘗試用系統結構相對簡單的實驗平台、簡單的方式,來教學/說明背後相對較深層、較複雜的電腦軟硬體原理。其實有些內容隨著逐年教學經驗累積與思考,雖然可能使用著一樣或類似的平台,但又會有不同的、更深層的體會,一直還是有不同的收穫與視野。

在基礎課程內容的方面,回歸最重要的基礎紮根本質面向。不去追求表面花拳繡腿的應用功能、不去依賴現成library及高度現成花俏的硬體模組,也不好高騖遠,而是主打紮實的基礎原理及驗證,包含帶學員去了解 組合語言/C語言背後的一些電腦軟硬體基礎原理、MCU原理架構、Datasheet內容(電氣特性、訊號時序、周邊控制操作、描述內容的閱讀理解方式)、基本電路 等等。

輔導多位軟韌體工程師的經驗發現,發現這些基礎原理其實才是許多工程師真正缺乏的東西(很多人工作是使用較新規格強大的MCU/SoC,但對於原理方面基礎沒有掌握,不知其所以然,突然遇到問題時也沒有時間去慢慢從頭學習或複習,只能用粗淺概念搭配 try and error的方式去撞牆/debug)。如果是表面的功能,某些工程師學員在耗費時間嘗試之後,或許有能力讓功能勉強動起來 (但是動得如何、能動幾次、是否有bug,就很難說了),但是一旦情境條件複雜化,出現較複雜的bug時,卻是未必有能力去分析,其實許多關鍵就在於基礎是否足夠紮實,而這個基礎紮實度其實需要原理和實驗兩者緊密配合。而若要能讓學員快速掌握重點、著重於學員對於深層原理細節的理解吸收程度與視野,其實教學課程必須用心設計,不能蜻蜓點水,更不能用比較實驗教材規格高低的軍備競賽的觀念去看待。

下方是一些課程原理內容驗證實驗簡易展示,為MCS51 MCU外部中斷的幾個相關原理驗證教材中的影片,在簡單現象背後的詳細原理分析方面會花較多的時間在課程內說明。





課程內容中會帶學員閱讀了解IC/MCU Datasheet相關內容 :

圖片來源: [1]


圖片來源: [1]


圖片來源: [2]


圖片來源: [2]

8051到今年都還有IC design house公司在推出新款,例如 偉詮電子(WELTREND) 在 今年(2022年)還有持續推出數款8051系列MCU的新版本。但因應教學需求(不是針對應用)所以我選擇使用架構更簡易的較舊式的基本款來做教學。

圖片來源: [3]


再次強調,這個基礎課程的目標是: 「建立紮實基礎的本質面,而不是如同比規格的軍備競賽,也不主打花拳繡腿的應用」

----

此外,課程內容也可客製針對學員們在工作上遇到的相關內容諮詢,協助分析並給予明確方向/建議。


資料/規格技術手冊圖片來源:

[1] INTEL, MCS51 MICROCONTROLLER FAMILY USER’S MANUAL.

[2] Nuvoton(新唐科技), W78E516D/W78E058D Data Sheet.

[3] WELTREND(偉詮電子), 首頁 >產品資訊>微控制器>8-bit MCUs,  http://www.weltrend.com.tw/zh-tw/product/index/13

-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2022年11月10日 星期四

協助共同指導成功大學碩士生榮獲2022第27屆大專校院資訊應用服務創新競賽,分別獲得 第一名、優勝與佳作!

賀!!🎉 我的老師 成功大學 工程科學系 黃悅民 講座教授指導碩士生參加由教育部等單位所主辦的2022第27屆大專校院資訊應用服務創新競賽,分別榮獲:資訊應用組(IP6)第一名、AIoT創新應用組(TQC+)優勝 與 資訊應用組(IP5)佳作,共榮獲三個獎項。

https://innoserve.tca.org.tw/award.aspx


競賽官方網頁 活動成果 -> 榮譽榜(屆別選擇27之第1頁): https://innoserve.tca.org.tw/award.aspx


競賽官方網頁 活動成果 -> 榮譽榜(屆別選擇27之第5頁): https://innoserve.tca.org.tw/award.aspx

而晚輩我實在不敢居功,只是以大學兼任教師身份擔任共同指導老師,協助分享自身過往長期以來的參賽經驗、初賽計畫書修訂、分析與指導作品內容於決賽的呈現表達方式。

https://innoserve.tca.org.tw/


-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章


2022年8月30日 星期二

又有產業公司來洽談MCU嵌入式系統韌體課程合作事宜,歡迎!

 


-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章


2022年8月23日 星期二

又有產業界的RD工程師,因為需要用到8051 MCU做產品開發,來洽談上課輔導合作。很歡迎!

近期,又有一間設備商使用到8051 MCU在做設備產品開發,該司之中有機械(電機電子/機構/控制) 和 資訊工程背景 的幾位工程師來洽談上課輔導合作,

主要希望奠定MCU/嵌入式系統軟韌硬體(從MCU架構、軟韌體 到 介面電子電路)的相關基礎,以及針對現在的產品開發現況進行諮詢。

很歡迎~! 🙏🎉

-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:
本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2022年8月15日 星期一

看到國內知名的IC設計公司於2022年持續推出新的8051系列MCU產品


下圖是 偉詮電子(老牌知名Fabless IC設計公司)網頁 ,列出他們於2022年6月推出的8051 (52)系列MCU產品 (http://www.weltrend.com.tw/zh-tw/product/index/13)



http://www.weltrend.com.tw/zh-tw/product/index/13

 
下一張圖則是 鉅亨網新聞: "MCU廠固產能 笙泉擬發公司債2億元" (記者魏志豪 台北2021/06/15) https://news.cnyes.com/news/id/4661532 的內容
https://news.cnyes.com/news/id/4661532


過去我已經說過N次了,8051系列的MCU,依然活耀於產品市場[1]-[3],

主要是其產品開發生態系要消失也不是那麼容易的事,連更老舊的6502 based的MCU都還有些產品在用[2][4]...

更何況因為8051基本款的MCU因架構單純適合初學者走紮實學習導向 (打一些電腦底層軟硬體基礎),MCU的應用本來就是掌握基礎精隨之後,其餘都只是延伸,拿哪一款去學的差異不大,但8051基本款的好處是架構單純,且其技術資料、學習資源及開發工具易於取得與使用,所以適合學習基礎 (才不會因複雜的架構而忽略了一些重點的學習而變成"只會"直接呼叫API來用而沒有去紮實理解周邊應用和操作原理,以及晶片內的架構觀念、理論基礎)。

即便有這麼多客觀的證據,仍然還是一直會有以訛傳訛的外行說法(例如說學8051沒用了之類的,其實有沒有用的關鍵根本不在於學哪款MCU,而8051適合的原因只是在於架構簡單適且學習資源豐富,適合初學者打穩基礎)。

Ref: 

[1] 偉詮電子(老牌知名Fabless IC設計公司)網頁 http://www.weltrend.com.tw/zh-tw/product/index/13

[2] 鉅亨網新聞: "MCU廠固產能 笙泉擬發公司債2億元" (記者魏志豪 台北2021/06/15) https://news.cnyes.com/news/id/4661532

[3] 笙泉科技(老牌知名Fabless IC設計公司)網頁 http://www.megawin.com.tw/zh-tw/product/index/8051_MCU

[4] 笙泉科技(老牌知名Fabless IC設計公司)網頁 http://www.megawin.com.tw/zh-tw/product/series/IO_Type_6502_MCU?fbclid=IwAR1luT_oLjiHkvwWiBNr7pZwgsEJvVwkMrVa9Dyu4YzOBCJwUSwpNsf_bVA

-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:


本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2022年8月9日 星期二

收到一位過去的大學生學員的正面response

 


-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:


本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2022年7月24日 星期日

「Arduino語言」(Arduino Language) 的本質之簡易說明

 把一些對「Arduino語言」(Arduino Language) 的本質是什麼程式語言的相關內在此簡單分享一下,為了簡單說明也會寫得粗略(rough)一些,供有在玩Arduino的朋友們參考。

https://www.arduino.cc/reference/en/



其本質就是C/C++沒錯,Arduino的許多library code也都是C++或C code,看副檔名就會知道,而若改過一些Arduino library code去做實驗,就會發現在Arduino最上層的code在層次上(就是所謂使用者應用程式層)的code和這些.cpp/.c的library code基本上也是在使用者按下Arduino IDE的驗證鈕或上傳鈕時被一起編譯的。

了解的方式很多,例如可以看一下main.cpp,去看setup()和loop()是怎麼來的。https://github.com/....../blob/master/cores/arduino/main.cpp

而另一個角度,可從Arduino cross-compilation  toolchain是什麼(以avr based的MCU款式的Arduino board例如UNO來說可了解一下avr-g++)去了解,就會比較知道其本質。

-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:


本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2022年7月17日 星期日

感謝成功大學的侯廷偉教授,讓我能有回學校協助指導碩士班研究生的機會

回顧過去的幾年,很感謝國立成功大學工程科學系 (資訊工程與應用組&系統整合組)的 侯廷偉教授,讓我從成大畢業數年且從產業界(聯發科技集團&晶豪科技)離開之後,還能有回學校協助指導碩士班研究生(包含碩士一般生 及 在職碩專班生)的碩士論文/實務競賽/科技部產學計畫/分享業界技術經驗的這些合作機會,並讓我深入參與產學合作並能有機會擔任研發顧問。在這些過程中學到很多,目前這些過程都已結束一年左右,但還是非常感謝侯教授,這些過程也讓我有了能實現減少產學落差的機會。

以下是我在這兩三年內曾實際參與協助內容指導/內容修訂/研究題目規劃的碩士學位論文和學位論文內的誌謝內容。這些碩士畢業生都很優秀,謝謝他們的積極和配合。

 設計與實作支援Modbus指令優先排序功能的協定轉換物聯網閘道器
/ 工程科學系 /109/ 碩士
研究生: 劉川榮 指導教授: 侯廷偉  
https://thesis.lib.ncku.edu.tw/thesis/detail/535a60eaa2986ae5bdfe709c2e06e29a/?seq=13


• 基於嵌入式Linux比較與評估I/O事件通知機制
/ 工程科學系 /109/ 碩士
研究生: 詹凱程 指導教授: 侯廷偉  
https://thesis.lib.ncku.edu.tw/thesis/detail/fd8a75a88aa861be0bb1b0d3aadcc721/?seq=11


• 實作具MQTT協定的安全物聯網閘道器
/ 工程科學系 /109/ 碩士
研究生: 杜晉瑋
https://thesis.lib.ncku.edu.tw/thesis/detail/b3bf69104c87c233ef6fa02964a3ed69/?seq=10


• 設計實作基於狀態的過濾機制用於監控與資料採集系統
/ 工程科學系 /109/ 碩士
研究生: 林正益 指導教授: 侯廷偉  
https://thesis.lib.ncku.edu.tw/thesis/detail/63f2df92c7687ff12ea9a4e422a10e91/?seq=12



• SD記憶卡與NAND型快閃記憶體寫入機制之研究
/ 工程科學系 /109/ 碩士
研究生: 許富淞
https://thesis.lib.ncku.edu.tw/thesis/detail/2bacc1c5a20a104e80ba7ed1e8e11b2b/?seq=9



• 六自由度機器手臂設計實作與軌跡規劃
/ 工程科學系碩士在職專班 /108/ 碩士
研究生: 劉昇宏 指導教授: 侯廷偉
https://thesis.lib.ncku.edu.tw/thesis/detail/66f462e65be448914455118a9064cea6/?seq=17


• 於嵌入式系統中利用深度學習進行螺絲鎖附之異常偵測
/ 工程科學系碩士在職專班 /108/ 碩士
研究生: 柯勛耀 指導教授: 侯廷偉 鄧維光  
https://thesis.lib.ncku.edu.tw/thesis/detail/3f40075a5e151650916e420adfc14856/?seq=16


• 使用光體積變化描記圖偵測飢餓狀態
/ 工程科學系碩士在職專班 /108/ 碩士
研究生: 黃明志 指導教授: 侯廷偉  
https://thesis.lib.ncku.edu.tw/thesis/detail/07ef9435fafa77c85e8fa6457a771815/?seq=15


image

未提供相片說明。

未提供相片說明。

image

(註1: 其中有些人的碩士論文因牽涉到產學合作案的相關內容,所以暫時無法公開。)
(註2: 還有些過屬於純機械機構設計領域的題目的研究生,因為非我專長所以沒有指導到太多,就沒列出。)
(註3: 
主要只列出近兩三年的部份)


希望未來自己能更有能力去回饋母校母系及這些我所感恩的老師們。

---------------------

2022年7月15日 星期五

2年前回成大帶碩士生執行產學合作案的足跡



台灣的業界和學界各自還是有很多不同的文化和想法,要促成兩者合作成功,是真的要花不少心力。


----------------

個人簡歷: https://sites.google.com/view/wenliangsun/

‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:


本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2022年7月3日 星期日

【感謝文】感謝給予肯定的各界朋友們

 【感謝文】

近期希望來上課的韌體工程師的學經歷背景越來越多元,

包含擁有頂尖大學工學博士學位的韌體工程師、大型知名網通設備系統廠的軟體工程師、美商BIOS工程師、網頁工程師、頂大工程系所研究生、資訊科教師等等,

幾乎都是看到部落格的課程介紹文章與技術文章而來。

很感謝這些朋友的捧場🙏,

讓小弟我有機會在教學的過程中能更了解除了IC設計公司(IC design house)以外的更多產業的工程師現況(因為小弟我過去除了擔任顧問的經驗之外,本身專職工程師的時期都是在IC設計公司任職)。

最大宗旨還是希望課程內容/諮詢內容都能直接對所有學員的產業工作有所幫助。

也很感謝許多正向表示欣賞與肯定的各方朋友們🙏,例如很榮幸在前陣子能受邀參與勞動部&工研院所舉辦的韌體職訓課綱專家會議,提供自己的經驗看法與建議,並且讓小弟我能有機會能舉薦後續審查委員的學界代表。以及所有曾經來洽談合作的所有科技新聞媒體與產業公司和工程師學員們 🙏

-------

個人簡歷: https://sites.google.com/view/wenliangsun/

‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:


本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章


2022年6月29日 星期三

收到專門刊登科技業經驗文章的 網路社群媒體 來信洽談合作

今天收到一個專門刊載科技業經驗文章的網路社群媒體來信洽談合作,


我們這裡是專業的韌體教學社群,很歡迎&感謝 各界單位 若有合適機會來合作!

-------

個人簡歷: https://sites.google.com/view/wenliangsun/

‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:


本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2022年6月1日 星期三

收到 勞動部&工研院的「韌體設計工程師課程」專家諮詢會議邀請

 
近期很榮幸能收到  勞動部&工研院的「韌體設計工程師」技術課程綱要 專家諮詢會議 邀請,希望能貢獻自己的所知所學以幫助到更多人! 

主辦單位是 勞動部勞動力發展署,執行單位是 財團法人工業技術研究院 (工研院)



---

---

個人簡歷: https://sites.google.com/view/wenliangsun/

2022年3月31日 星期四

以訛傳訛 是很常見的情況!

即便你只要隨便看一下 維基百科(Wikipedia)上面有關8051 MCU的介紹,就會馬上看到:

The Intel MCS-51 (commonly termed 8051, typically pronounced eight-oh-five-one) is a single chip microcontroller (MCU) series developed by Intel in 1980 for use in embedded systems [1]. 

或者隨便查一下嵌入式系統(embedded systems)的介紹,同時也會知道MCU(微控制器)與傳統所稱「微處理機」(ordinary/general microprocessors)的差異: 

Modern embedded systems are often based on microcontrollers (i.e. microprocessors with integrated memory and peripheral interfaces), but ordinary microprocessors (using external chips for memory and peripheral interface circuits) are also common, especially in more complex systems[2]. 

即便上述資料是如此的詳細且易於查詢,但還是會有許多人會誤以為有跑Linux之類的OS的系統才算是嵌入式系統(embedded systems)、誤以為許多跑Non-OS firmware的MCU based的系統就不是嵌入式系統;還有很多大專院校的電機電子資訊相關系所教授和許多業界主管/老闆們還是一天到晚「微處理機」、「微處理機」的去稱呼MCU。這些就是所謂的以訛傳訛,而這些以訛傳訛呢,可能幾十年來皆存在於許多學生、大學教授、業界工程師、業界高階主管之間。

很多人就是不喜歡去把一些基本的工程名詞定義給查清楚,看來...稍微用心思考+查一下資料真的是太難了。

Ref:

[1] Intel 8051, Wikipedia, https://en.wikipedia.org/wiki/Intel_8051

[2] Embedded system,  Wikipedia, https://en.wikipedia.org/wiki/Embedded_system


-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:


本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章


2022年2月17日 星期四

【 DFROBOT SKU:SEN0165 ORP氧化還原度感測器之sample code重點部分分析記錄】

延續上一篇的DFROBOT SKU:SEN0165 ORP氧化還原度感測器之訊號處理電路設計分析文章,這邊主要來延續介紹這款感測器套件之官方sample code重點部分分析記錄,某些較容易看出的部分就先暫時省略過。

註解: 這裡是隨意拿紙來寫的簡單計算過程,下標符號大小寫並不嚴謹,請見諒~

上篇文章主要介紹 的簡易電路分析計算過程 (使用克希荷夫電流定律)

註解: ORP是Oxidation-Reduction Potential的縮寫,表示溶液的氧化還原電位

該感測器套件的MCU端的軟韌體sample code於該DFROBOT SKU:SEN0165 ORP氧化還原度感測器感測器套件之官方說明網頁

(...省略部份)

#define VOLTAGE 5.00    //system voltage

(...省略部份)

orpValue = ((30*(double)VOLTAGE*1000)-(75*avergearray(orpArray, ArrayLenth)*VOLTAGE*1000/1024))/75-OFFSET;

//convert the analog value to orp according the circuit

注意上面的code的VOLTAGE我故意用兩個不同的顏色標記(紅色、藍色)是有原因的,看完下面內容就會知道。

其實可由下圖推導整理看出,上述code的orpValue就是如同其變數名稱,就是要還原出sensor端子輸出電壓訊號 (未經訊號處理電路模組處理的原始感測器輸出電壓訊號值) 的值,並且透過UART印出該值的字串形式以便觀看。

眼尖的看倌一定會發現其實主要是這款感測器套件的官方sample code寫得太長,其實不需要寫這麼長

sample code之中的1000就是K (1K);

sample code之中VOLTAGE/1024的部分,基本上就是ADC step voltage,而avergearray(orpArray, ArrayLenth)就是經過一些平均處理後的Vout

那為何上面的code的VOLTAGE故意用兩個不同的顏色標記?

要注意這個sample code可能比較是針對是Atmage328p(或其它ADC的類比輸入範圍電壓Vref預設為5V的) MCU based 的Arduino,所以sample code是把 提供給感測器輸出訊號處理電路模組的電壓 以及 你使用的ADC step voltage的Vref看成是一樣的。但實際上這兩者在實際應用上可能不同,例如你的嵌入式處理器晶片如果是用吃3.3V的,而卻又供5V給感測器輸出訊號處理電路模組,那麼情況就與sample code去define同一個VOLTAGE的狀況不同了。

舉例來說,從電路分析式子可以看出,假設你所使用的MCU/SoC內的ADC(或者外接的獨立的ADC IC)的Vref是3.3V,而若提供給感測器輸出訊號處理模組的電源則是5V的話,其實上面兩個VOLTAGE可能必須是不同的值

第一個(30*(double)VOLTAGE*1000)VOLTAGE是你提供給感測器訊號模組的電源電壓;

而後面的(75*avergearray(orpArray,ArrayLenth)*VOLTAGE*1000/1024)裡面的VOLTAGE/1024這個部分就是就是你所使用的MCU/SoC內的ADC(或者外接的獨立的ADC IC)的step voltage,所以其實這個(第二個)VOLTAGE就是ADC的類比輸入範圍電壓(Vref)。而1024就是精度10 bits的ADC的狀況 (如果你用的ADC的精度不同就要改)。

但如果 所使用的MCU/SoC內的ADC(或者外接獨立的ADC IC)的類比輸入範圍電壓Vref就 等同提供給感測器輸出訊號處理模組的電源的話 (就如同sample code預設的情況),那就如同sample code一樣去定義VOLTAGE是同一個值即可。

如果這兩篇文章你有看懂,就會發現,說穿了,上述sample code中的((30*(double)VOLTAGE*1000)-(75*avergearray(orpArray, ArrayLenth)*VOLTAGE*1000/1024))/75-OFFSET; 如果理解電路以及sample code的目的、原理和計算,其實sample code的這行code是可以簡化成另一種寫法,不一定要寫成這麼長,看倌們看懂了嗎?

(hint: 重點在上一篇文章的計算結果和這篇文章的計算結果,根本就是一樣的嘛,根本沒必要把這行code寫得如此落落長)。


此外,補充一下,這感測器套件的感測器輸出訊號處理電路模組中的LM2662M是一顆Switched Capacitor Voltage Converter IC(可參見TI的官方Datasheet ,部分如下圖)

 TI LM2662M Datasheet

-----

個人簡歷: https://sites.google.com/view/wenliangsun/


‼本園區開設之技術課程進一步詳情請參見下方blog網頁的課程介紹👇:


本學習區之Facebook粉絲頁如下:

--------------------------

孫文良 (阿良的嵌入式系統技術學習區)

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章