總網頁瀏覽量

顯示具有 8051 標籤的文章。 顯示所有文章
顯示具有 8051 標籤的文章。 顯示所有文章

2025年8月5日 星期二

在Dcard論壇上面的軟韌體工程師求職資訊亂象? 求職者真的有深入了解軟韌體工程師職務嗎?

 

這幾年輔導許多工程師轉職或畢業生求職,有感而發。

大約這五到六年來,太多年青的學生/畢業生/工程師,太過盲目相信Dcard上面許多年青人所散播的不實的產業職位薪資資訊 ,以及錯誤的就業準備方向的錯誤資訊,而被誤導。

這些現象是源自於太多學生/畢業生的自卑心態,常在網路社群上面打腫臉充胖子(尤其像是Dcard這種匿名平台),謊報自己實際的收入與薪資 (例如才剛進公司沒多久,根本還沒被打考績、也還沒待到能拿分紅的時候,就在Dcard上面說自己年收入多少。又或者把自己「預估」的分紅/獎金均攤成月薪(灌水),然後去Dcard等平台上面去散播,或許是希望得到點讚/愛心數/關注,讓別人都覺得自己很厲害,希望可以得到讚賞)。

加上台灣社會偏好以訛傳訛及盲目相信的「一窩蜂」的風氣,導致大多數人都會信奉某一套流行說法,很多人被這些錯誤資訊給誤導,也缺乏去多方驗證的基本客觀判斷 (學歷大多在表面上提升到碩士/博士,結果基本的客觀多方查證 及 深度思考,其實依然很少人會去做)。

一些盲目用詞及粗糙的說法都會相當流行且被跟隨 (例如以為要能錄取/勝任軟韌體工程師的職務,只要面試前臨時抱佛腳準備C語言、計算機組織、大學教授愛用的OS bible課本(恐龍本)的內容「就好了」,或者為了所謂「side project」而搞出表面的「side project」(side project已成為年青人準備求職的流行名詞),結果其基礎方面根本是一問三不知。其實公司要的根本不是你的「side project」,而是你的「基礎」是否能勝任該研發工作。或者許多人連什麼是non-OS的系統軟韌體都沒聽過/沒概念,就誤以為軟韌體工程師一定是開發Linux/Android based的系統 (其實不少產業界的主管/工程師也有這個狀況)。事實上,軟韌體就是為了驅動微電腦電子產品而存在的,但許多純資訊相關背景科系的學生/畢業生/求職者卻連基本常見的I/O周邊裝置與其相關的基本介面電子電路都不太知道是什麼 (因為他們的大學老師們也不知道)。

或者看到一些想走純軟體技術的人跑去資策會的技術培訓補習班課程補習,就誤以為資策會就是專門開設軟體技術培訓課程的單位。

諸多的迷信或者錯誤的觀念充斥於匿名網路論壇平台,距離實際狀況有一段很大的落差 。

這些讓我想起大約13~14年前,一堆不懂電腦系統基礎學理(理論基礎/架構原理等)的 高海科大 及 成功大學 的 教授 和 研究生們,似乎很有默契的異口同聲(雖然彼此之間不認識),都說8051 MCU太老舊、沒用了、不要學。結果事實是到了十幾年後的這幾年,一堆IC設計公司依然在推出8051 MCU新產品。例如台灣知名IC設計公司 松翰科技(Sonix technology)到今年(2025年)還推出新款的車用8051 MCU IC)。實際上,在產業界,甚至連更老舊的6502 CPU/Microprocessor都還有少數部分產品在用(需維護其軟韌體),Z80 CPU/Microprocessor也是直到去年(2024年)才宣告停產(已經在市場上48年),而且這兩款還不是在消費性電子產品上面更通用的MCU (Microcontroller Unit) 而是General Microprocessor。

或者一些就讀名校一路直升的純資訊/純軟體背景學生,雖然在國高中時期修過物理、大學時期修過必修的物理及某些電子電路相關課程,但是就好像跟沒學過一樣,去盲目相信許多網路上(如PTT)的片面訛傳 (不懂何謂韌體,也有人以為做韌體就是做硬體,而除了IC設計以外的硬體都完全不值得學,以為這些都沒出路,覺得應該學純軟體 或者 演算法應用,才是高尚、有學問) 。

又或者其實是在寫App (注意: 實際上的App不一定是你認知中的App才叫App,可以有很多層次),結果因為是for target裝置的,就以為這都叫作「嵌入式系統」的系統軟韌體開發,或者實驗室號稱以「嵌入式系統」方向為主,卻誤以為「嵌入式系統」的「嵌入」是指「嵌入軟體」或者嵌入「OS」,這種完全錯誤的認知。

自從大約9年前的AlphaGo圍棋軟體打敗韓國棋士的影片新聞爆紅,科技部(現在又改回國科會並拆分出數發部)開始主打AI為主的計畫導向之後,全國的大學師生皆盲目的執著/糾結於AI,不分系所/領域、不分青紅皂白,學生們好傻好天真地以為做AI就會很有出路,凡是不知道要做什麼方向的學生,十之八九會跟你說想要做AI相關的論文題目或專題,而多數的大學教授們也不知其所以然的盲目追求AI相關計畫及開設相關課程。學生們在學校盲目(或被迫)做AI淺層應用,到了畢業、需要求職的時候,才發現產業界裡面真正的AI研發職缺數量其實非常的少 (但太多人都想要做AI相關的工作,僧多粥少),為了要找份工作,這時才回頭去找系統相關的研發職位(軟/韌/硬體等),畢竟系統開發才會需要比較多的工程師投入。

這些案例皆足以顯見, 並不是 博士/教授 或 一路就讀名校的學生 甚至業界人士/主管/高層/老闆等,就能具備最基本的 專業領域 基礎學理認知與判斷能力,這些都牽涉專業領域的基本學理(理論基礎)、思考能力與判斷邏輯,這些其實與個人的實質作為/實質累積 較為相關。

實際上,大多數人是盲目相信「訛傳」、「人云亦云」,相當缺乏獨立自主的批判性思考,這或許與台灣人從小到大所受到的教育方式/風氣文化有關。

資訊技術隨著時代進步,但每個時代中的大多數人們的認知/判斷能力大多沒有相對的實質進步,這也顯現從每個台灣人小時候所受到的基層教育到大學教育也沒有相對的實質進步。

三十年前的台灣社會是一窩蜂,而到了三十年後的現在,台灣社會依然是一窩蜂。即便多數人的學歷文憑已經從當年的高中職、專科、大學 畢業,提升到碩士/博士畢業,但這個一窩蜂盲目跟隨群眾的現象似乎依然沒有多少改變。

-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

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


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

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

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

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

2024年9月26日 星期四

用ARM based的MCU或SoC晶片平台,並不代表就是在學ARM

 在台灣,許多人用了ARM based的MCU/SoC為主晶片的板子,就以為自己在學ARM,其實一輩子都完全沒真正接觸過ARM processor的內容,所以可見很多人其實根本不曉得自己口中的ARM到底是是指什麼/講什麼,也沒有很清楚自己做了一堆周邊應用但到底在實作什麼挖糕,其理論基礎對應的學科我想應該是計算機概論。


十幾二十年下來,這早已經變成嚴重的以訛傳訛。這類似的觀念在台灣真的很多。

另一個例子,有不少人以為學80x86原理沒意義,但其實Intel 在2016年所推出的Inte lQuark系列微控制器(MCU) D2000就是基於1993年推出的Pentium CPU。平台和技術年份根本不是重點,哪時會被拿來套在新平台或衍伸出新技術都不一定。用什麼款式的平台去學基礎其實不是該執著的點,只要適合學習即可。


-----

歡迎各方洽談合作,務實/踏實追求共好。歡迎電機電子資工本科系學員,也很歡迎非電機電子資工本科系的學員加入學習嵌入式系統技術/尋求轉職成為研發工程師的行列。

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


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

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

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

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



2023年11月29日 星期三

Intel 8051 MCU的user manual有被MIT(麻省理工學院)的網頁給收錄

 如圖



-----

歡迎各方洽談合作,務實/踏實追求共好。

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


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

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

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

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

2023年7月5日 星期三

8051 MCU 在產業界仍歷久不衰! 證據實在太多了,再次舉例!

許多產業公司的MCU韌體工程開發相關職缺條件中,仍會強調8051基礎,在我過去的許多篇文章中也已有多次說明,在此再次舉例

以PC BIOS知名美商 鳳凰科技(PHOENIX TECHNOLOGIES INC)的 EC / MCU Firmware Engineer職缺內容為例,請參見下圖 (來源為該公司於104人力銀行網頁所刊登之 EC / MCU Firmware Engineer職缺內容 )




-----

歡迎各方洽談合作,務實/踏實追求共好。

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


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

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

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

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

8位元的MCU在嵌入式系統設計中是否重要? 可由MCU大廠Microchip公司的產品推廣貼文去看出!


MCU大廠Microchip持續很積極的在推廣 8-bit 的 MCU


圖片來源: Microchip公司官方IG貼文

從單晶片微電腦/微控制器大廠Microchip的推廣貼文可看出,8位元的MCU 在 嵌入式系統設計領域之中實在是重要的角色。

上述該原廠貼文的hashtag的關鍵字是:

#embeddedsystems #analog #software #microchip #microcontrollers #mcus #engineering #tech #technology #innovation #power

為什麼一直重複講?因為沒有深入思考了解導致觀念錯誤的人實在太多。

圖片來源: Microchip公司官方IG貼文


上方第二張圖(原廠官方貼文)之hashtag關鍵字如下:
#analog #embeddeddesigns #microchip #microcontrollers #mcus #engineering #tech #technology 
#innovation #power


甚至看過許多業界主管/工程師/教授們連對於「嵌入式系統」的「基本定義」都有所誤會。

-----

歡迎各方洽談合作,務實/踏實追求共好。

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


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

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

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

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


2023年2月11日 星期六

是 嵌入式系統「開發板」, 而不是「開發版」

有感而發,隨手寫個基礎小觀念分享。

長年來,看過不少背景較偏向純軟體的工程師、成大的學生、成大碩士論文裡面,常有人把嵌入式系統的板子的 「開發板」(development board) 給 誤寫成 「開發版」。

可參考下圖正確的字詞: 「開發板」。



對於不了解的朋友簡單說明一下,粗略來說,嵌入式系統的開發板就是適合產品雛型開發時期的用板子,大多會拉出大部分的I/O腳位和製作介面電路、接頭在板子上,提供軟韌體工程師做軟韌體開發或者學習之用,畢竟這階段還不確定開發者會想拿這種嵌入式電腦晶片去開發什麼產品,所以這階段的電路板還不是產品精簡客製化的樣子,而是較偏向屬於開發、或學習驗證階段所使用的板子(board) 。

 ( 在學校方面,從2013年接觸成大相關系所的同儕們就常發現這種小問題,直到去年2022年看到成大碩士班的學生的學位論文口試,還是一堆這種錯誤,且很少教授和學生本身會去注意到,原因大概是因為資訊領域太多人都沒有去了解自己在使用的板子的一些基本觀念,板子對自己來說是現成的,所以這情況越來越多。實例我就不貼出來了,以免傷到一些人的心。當然也看過許多電機資工出身但是背景偏向軟體的工程師也都常有這種狀況,所以有感而發。

從過去在我的貼文所分享一堆學界或業界常見的字詞錯誤案例的分享中大家可以發現很多人在論文中的常見字詞錯誤並不是因為打錯字,而是來自於基本的觀念不清楚所導致。

或許這些小地方無傷大雅,或許不是大問題,但個人是覺得既然大學的研究所碩士學位論文號稱是做「學術研究」的「學術」論文,當然應該對這種基本的字詞要有基本的嚴謹程度才是,畢竟「板」和「版」 兩個字雖然只差在部首,但意思差很遠 ) 

-----

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


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

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

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

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

2023年1月7日 星期六

近期接受韌體工程師學員的諮詢,各廠牌的嵌入式晶片/軟硬體平台都可諮詢合作!

近期接受韌體工程師學員的諮詢,以MCU大廠 瑞薩 ( Renesas ) 的 網路/多媒體產品類型的核心單元 ARM-Cortex Ax based系統晶片(System on Chip, SoC)/較大型的MCU 為實際解說目標範例。

連帶順帶介紹與討論到了Memory Mapped I/O、各式Boot Mode、linker script的一些相關觀念。


圖片來源: Renesas datasheet & website


圖片來源: Renesas datasheet & website

圖片來源: Renesas datasheet & website

本區接受工程師的顧問諮詢,可客製化諮詢內容針對工程師在自己的工作/公司中所使用的各家嵌入式系統晶片平台軟硬體作為諮詢/授課/教學目標。

瑞薩官網資訊: https://www.renesas.com/us/en/products/microcontrollers-microprocessors/rz-mpus/rza2m-image-processing-rtos-mpu-drp-and-4mb-chip-ram


-----

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


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

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

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

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



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年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年7月3日 星期日

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

 【感謝文】

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

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

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

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

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

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

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

-------

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

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


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

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

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

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


2021年12月16日 星期四

【嵌入式系統基礎原理與實務課程】ADC驅動應用基礎教學

昨天替一位有十幾年業界經驗的工程師學員上課 (嵌入式系統基礎課程,該學員希望未來有機會轉職嵌入式系統韌體程式開發),

到了ADC (Analog to Digital Converter)基礎應用原理與實作應用的單元。

實驗平台使用ADC0804 (沒想到在過了十年後,又接觸到這顆IC),雖然這顆IC的型號款式似乎停產(?) 目前在各大通路都缺貨導致價格昂貴 (似乎有些地方的賣價漲到單顆IC數百元),

且這顆ADC0804是並列輸出(Parallel Output),現在的產品或許應該已經很少會用這顆IC。現在許多ADC都已整入於MCU/SoC之中,就算外接通常也會使用串列輸出(SPI、I2C)類型的ADC chip(例如Microchip的MCP30XX系列ADC)。

但是,這顆ADC(ADC0804)拿來作為嵌入式系統韌體初學者的教材仍然很好用,其中許多基礎包含MCU IC 與 周邊IC 之間的整合,還是有值得初學者學習之處,

例如ADC上的CS(Chip Select)、RD(Read)、WR(Write)、INTR(Interrupt)等腳位(Pin)的驅動存取 與 整合應用、ADC IC Datasheet內容(包含訊號的電氣特性、時序 等等)、與輸出類比訊號的感測器sensor(如光敏電阻作為環境亮度感測器之間的基礎整合應用)。

嵌入式系統軟韌硬體的初學者可藉此學習到以核心處理單元(如各式MCU/SoC)存取像是這類周邊裝置IC(如ADC)的一些相關基礎。

本單元課程內容包含ADC基礎應用原理(A/D的取樣、量化、解析度規格等),實驗方面以8051 MCU與這顆ADC0804之間的整合應用為主,以C語言撰寫MCU韌體去擷取ADC0804輸出的數位訊號教學,實驗方式包含透過MCU的GPIO與中斷控制器,去針對ADC0804 INTR訊號與轉換完畢的數位輸出訊號作輪詢(Polling) 與 中斷(Interupt),這兩種機制都會作完整介紹並且帶學員進行實驗。

黑線IC的部分修改自TI ADC080X Datasheet的general schematic來進行教學實驗中的電路繪製

TI ADC080X Datasheet

TI ADC080X Datasheet

TI ADC080X Datasheet

TI ADC080X Datasheet


註: 此課程專注在嵌入式系統韌體的ADC應用基礎教學,而不是在純硬體電路設計,所以該課程實驗教學沒有到去區分各種接地的差異。 

此外,課程也提供使用 別種形式的ADC實驗平台的教學選擇,例如使用MCU/SoC內部的ADC (例如: 該單元可用Atmega328P MCU內部ADC進行實驗教學)。

------

‼課程進一步詳情請參見下方blog網頁的課程介紹👇:

2021年10月14日 星期四

【嵌入式系統基礎原理與實務課程】初學者到底該學習哪款MCU? Subroutine/Function call實際上做了哪些事?

 👇延伸上次的GPIO基礎學習說明


❓許多初學者或工程師朋友們常會問我,想學好嵌入式系統基礎,到底該學ARM、8051還是PIC? 該學習幾位元的CPU平台?

🥸首先,我建議應該先了解這個問題是在「問什麼」,什麼是ARM?
ARM是CPU,而8051和PIC是MCU,朋友們可自行想想看,CPU和MCU是一樣的東西嗎?

又,假設初學者只有呼叫過(複製貼上、頂多改參數/引數) 人家所寫好的API (例如開源社群 或者 IC Design公司的軟韌體單位 所提供的API Library函數庫)來驅動MCU作事(完成功能)的話,

🔎我們以呼叫下列函數為例子 (不針對特定平台,但看函數名稱應該很清楚這在做啥):
GPIO_Setup(Pin_number, Output);
GPIO_Output(Pin_number, High);

無論你是使用什麼CPU based的MCU/SoC晶片為核心的板子(無論CPU是ARM、8051、MIPS、AVR、PIC MCU內的CPU),上述code確實能讓MCU的GPIO Port輸出數位訊號的1(高電位),

但是,如果只是呼叫這些函數的話,有讓你接觸到CPU架構嗎? 和CPU有什麼關係? 甚至很多人可能沒思考過,到底什麼是CPU?

初學者或沒思考過這些問題的工程師朋友們,也有可能會連上述這些範例程式碼,在MCU上電開始動作時,到底是被存放在哪裡的狀態下被CPU給提取和執行,可能都不清楚 。

🧐但我們試想一個問題,如果只是呼叫函數,而從來沒了解過背後的原理基礎,那是否一位受過基本實驗訓練的國中生、高中生就能作這些了? 對於系統開發設計的基礎知識與深度是否足夠?

恐怕有許多朋友從來沒有思考過這些問題。

‼本園區的 「嵌入式系統基礎原理與實務課程」,能藉由適合初學者奠定基礎觀念的8051 MCU (架構相對簡易清晰的微電腦平台) 作為教材,讓你了解CPU到底做了些什麼? 當然每款CPU之間會有差異,但是建立基礎觀念之後,許多觀念都是通用且可延伸的。

再次重申‼ 這個課程並不是只教你8051 MCU怎麼用,也不是只教8051,
而是以8051這款 架構相對簡易清晰的微電腦平台 (且資料完整豐富)作為實作/實驗/理論觀念驗證的實驗平台,

期望學員能在學習完課程後能奠定嵌入式系統(更精確來說是電腦底層觀念,不只是嵌入式系統)基礎,包含CPU指令集/行為、記憶體存取、基礎常見周邊裝置驅動應用、基本介面電子電路(類比&數位),

希望學員將這些學習內容消化吸收後,在未來於職場工作上遇到其它微電腦晶片平台時,可以有清晰的架構觀念,能舉一反三、能藉由紮實的基礎而在未來工作之中遇到其它平台時,能有自行舉一反三、擁有自學熟悉新平台的能力。

-------

🥸 再延伸上述的說明內容,以subroutine call或者function call為例

👉無論是哪款CPU,基本上都會有一些必須的暫存器,例如PC (Program Counter register,程式計數器)、 SP (stack pointer register,堆疊指標)、PSW (Program Status Word register,程式狀態字組),這些暫存器的用途為何?

👉堆疊(stack)是什麼時候需要使用? 呼叫subroutine(這邊是指組合語言的副程式)或者在C語言作function call時是如何被使用? 是如何被實現? CPU在此時做了哪些事?

👉當撰寫C語言去呼叫函數、或者撰寫組合語言呼叫副程式,CPU所執行的程式流程是怎麼跳 過去執行subroutine的?

👉中斷(Interrupt)發生時,又是如何使用堆疊來完成中斷機制? CPU所執行的程式流程是怎麼跳 過去執行ISR (Interrupt Service Routine,中斷服務程式)的?

👉以8051內的CPU指令集為例,CALL指令分為ACALL和LCALL,差別在哪? 而和Stack(堆疊)相關的PUSH/POP/RET/RETI指令是在做什麼的? 實際上做了哪些相關的事?

👉CPU在執行完subroutine或者ISR(中斷服務程式)之後要如何回家(回到主流程?) 如果堆疊之中這些被存放的值被意外地改掉,會發生什麼事?

再講些題外話,
👉如果用C語言撰寫MCU程式,你知道main()函數被執行之前做了什麼事嗎?

👉如果用C語言撰寫MCU程式,例如宣告變數 unsigned char i=1; 你知道這個i變數的物理實體設備空間實際上是什麼嗎? 知道實際上這個i=1是如何被實現的嗎?




🥸 再強調一次,如果只有經歷過呼叫現成的API的經驗,讓MCU會動就滿足,而從來沒了解過這些API背後的底層原理基礎的話,那是否一位受過最基本的實驗步驟訓練的國高中生就能做這些了? 讀到大學甚至碩、博士畢業,或者身為工程師的專業度在哪裡呢?

我想這些是很值得大家思考的事! 我認為專業領域的視野和深度,可以決定一位工程領域人員的實際專業價值。

‼課程進一步詳情請參見下方blog網頁的課程介紹👇: