總網頁瀏覽量

顯示具有 實務技術 標籤的文章。 顯示所有文章
顯示具有 實務技術 標籤的文章。 顯示所有文章

2021年1月19日 星期二

【8051 MCU】關於外部中斷旗標(IEx)被觸發的條件探討──Intel MCS-51官方手冊、Bible原文書與AT89S51/AT89S52實際狀況之差異

歡迎透過合法的方式分享此文內容,若要轉載/轉貼,請明確貼出此原始連結並標示作者基本資訊請勿抄襲及非法轉貼(例如擷取內文但並未註明出處)

不論是Intel早期的MCS-51 PROGRAMMER'S GUIDE AND INSTRUCTION SET(如下圖),或者8051界的Bible原文書: The 8051 Microcontroller and Embedded Systems (2nd Edition)原文課本(作者為Mazidi, Muhammad Ali, Mazidi, Janice G., McKinlay, Rolin D.)內容中的P.326的Figure 11-4.及P.329的Figure 11-6.內文敘述都表示外部中斷旗標(flag)也就是IEx(x是0或1)是在偵測到外部輸入falling edge signal trigger 的時候才被set(設為1)。

(註: x為0或1)

Intel的MCS-51 PROGRAMMER'S GUIDE AND INSTRUCTION SET之對應內容


也就是如下圖狀況所示(按其原意並自行繪製):

Intel MCS-51手冊與8051原文書所述之中斷旗標觸發方式/機制


但是,從近代實際在課堂上常使用的8051 MCU款式AT89S51/AT89S52的Atmel AT89S51/AT89S52 datasheet裡面可看到,無論是選擇falling edge trigger或者low level trigger(藉由對ITx暫存器位元的寫入設定值來選擇)觸發,當這兩種條件之中的任一種條件達成時,都會使得外部中斷旗標(Flag)也就是IEx(x是0或1)被set(設為1),如下圖(圖片來源為Atmel AT89S51/AT89S52 datasheet)。


AT89S51/AT89S52的Atmel AT89S51/AT89S52 datasheet之對應內容


(註: 當然了,這幾年在許多大學的MCU或名稱為微處理機系統及介面技術的相關課程上,其教材都被改為Arduino的淺層使用,但是卻沒深入MCU的細節原理了,故相對沒辦法太紮實)


由上述內容可看出差異,或許是後來的8051(AT89S51/AT89S52等款式)被改良了。因為如果按照早期那樣的方式/機制(官方手冊與原文書所示),在希望使用low level trigger方式的情況下就只能使用中斷而無法藉由去輪詢(polling)旗標狀態的方式去偵測外部輸入到INTx腳位的low level signal,在開發使用上相對就沒有那麼的自由。


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

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

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

2020年12月31日 星期四

大學系所的招生問題遠比我想像中的快? 以中字輩大學工程系所碩士班系所組報名狀況為例, 但其實少子化的影響還沒有真正到來

 最近稍微看了一下一些大學碩士班的招生簡章和報名人數統計,才猛然發現

沒想到已經有國立中字輩大學的理工相關科系的碩士班組別考試報名人數掛0了,也有系所的報名人數和招生人數相當接近(例如要收3人而只有2人報名)...而且還是相對好找工作的理工相關科系(例如戊組的考科所對應的領域,如果自己有好好將實務技術學好,應該還是會找到不錯的工作)。

圖片來源: [1]



圖片來源: [2]


這不是個案,只是因為新聞報導,所以我剛好看到這間學校碩士班的報名人數,一定還有許多類似狀況的大學碩士班系所組別也有這樣的問題

中字輩的學校以及許多國立科大都已經在網路上大打招生廣告(如中山大學、雲科大、高科大等校)。在未來,台清交成也大打招生廣告的日子或許也不遠了?

(少子化的結果其實還沒有真正的影響大學,幾年以後就真的會有了)

個人認為,相較於過去的台灣社會,在未來,文憑學歷、校名的影響力有可能會隨著這些趨勢而大幅減少,個人能力的實際累積才是最重要的


圖片來源: 

[1] 國立中興大學110學年度碩士班考試入學招生簡章, http://recruit.nchu.edu.tw/grade-exam/master/110/110M_PAPER.pdf?fbclid=IwAR0Nn7WbIg--UqrQCgcmCBNvL8nP2lItuMvVSKTWK9Psq_E5V11BS6VRyUQ

[2] 國立中興大學110 學年度碩士班考試入學招生報名人數表, http://recruit.nchu.edu.tw/grade-exam/master/110/110M_EnterData.pdf?fbclid=IwAR0CmVn0HyciFwexDlSaACusrtSEyRXL9uW5Za6OSjskhBSyObABOXfqmWo


什麼是文憑學歷和產業公司之間的惡性循環? 一張圖告訴你

一張圖告訴你 什麼是文憑學歷和產業公司之間的惡性循環(花了五分鐘想了一下然後就畫了這張圖) 

(1) 許多人在大學除了修課之外(大多是量多而質不精),沒累積什麼職場上能用到的實務經驗和做人處事共同合作的能力 

-> (2) 許多產業界公司為了選到有基本能力的人,所以只好從至少多活了兩年人生的碩士畢業生之中去挑人,開始看重文憑學歷/校名等項目

註: 這裡的所謂的多活兩年,指的是至少有被指導教授交付過一些任務(當然也未必和專業領域內容直接相關)、至少有學位論文口試表達報告過自己做的ppt,很多人在大學時期連這些基本的磨練機會都未必有,但這些問題的根源其實一樣是出自於大學教授們(重心擺在研究生幫自己產出績效,而對於大學生的教育和訓練當然輕忽,個人認為這不是重研究而輕教學,而是重個人升遷績效而輕教學,大多也不太關心學生畢業後的實際出路)。

-> (3) 所以許多學生們認為,既然須要碩士學歷才能找到好工作(公司要看),那大學時期就乾脆不需要累積職場所需要的能力了,反正等到考上碩班再努力就好(但是很多壞習慣和觀念已養成)

-> (4) 因為學生有(3)這種等到讀碩士班再去努力的觀念,所以導致許多產業界公司認為更沒辦法從大學畢業生挑到適合的人才,所以公司認為更該看重碩士學歷文憑

-> (5) 因為許多公司太看重學歷(如(4)所述)來進行人力招募,許多學生開始認為能洗到好看的碩士學歷才是重點,而實際的職場能力養成則是其次,基本上認為能拿到文憑就好

-> 回到(1) 開始惡性循環下去








2020年11月30日 星期一

【 Repeat】為何學術論文績效不適合許多工程領域

 對於須要實務驗證的工程研究領域來說,只看到論文是真的不太可信

以許多包含軟硬體實作驗證論文所提方法的領域來說,必須能看到所有實際的程式碼與電路圖之類的東西

才能知道到底有沒有真的按照論文裡面提出(包裝)的方法去做?有沒有做正確?實驗結果有沒有和論文實驗數據差不多?甚至到底有沒有做?

可是這些東西,經常都是學術期刊論文裡面所沒有的,論文大多只把方法數學式子寫出來,但是實際上程式碼和電路是怎麼做的,卻沒辦法從論文內容去得知,是根本看不太出來的。

到這些實作成果的實際內容,或者只有隨便呼嚨隨便貼個大概的流程或簡易的電路架構示意圖,然後就跳到實驗結果(當然多數論文都是漂亮的實驗數據),很難可以重現驗證,而審查的人大多也未必有實務經驗與能力可以判斷實際的狀況

這就是傳統學術論文在工程領域的明顯問題

2020年11月14日 星期六

個人產業經歷相關證明 & 若有技術基礎輔導需求的產業公司與個人,都歡迎來信洽談合作

我是孫文良,因為希望能實現一些理想和分享一些理念

所以開設了 阿良的嵌入式系統技術學習區

如同我的簡歷所示,個人在學生時期就開始接觸一些實作專案並且也有許多參賽獲獎的經驗。而自研究所畢業後,有些在產業界工作的經驗,也曾在一些科技大學擔任業界講師

目前也持續和產業界公司合作,兼任產品研發顧問

相關的證明照片如網址(權限公開,不必登入也可看到): 

https://www.facebook.com/media/set/?set=a.161265529036225&type=3

一直以來,由於個人的求學與產業經驗,看過許多事,有著許多感慨,一直希望能 減少產學落差 以及 振興技職教育體系(國內的大學都不做,而許多號稱技職體系的科技大學大多也不重視產業實務,那我就自己想辦法來做,專業技職/技術教育本來就是國家產業之所需。雖然我個人經常是在做狗吠火車的事情,但是這裡畢竟是自己的國家/家鄉,那就堅持繼續做這些有意義的事吧,這樣日子也會過得踏實且開心點)

故,若有技術基礎輔導需求的產業公司單位 或 個人,都歡迎來信洽談合作

2020年11月13日 星期五

MPU/MCU/Embedded Microprocessor/Embedded Processor名詞定義探討與整理

歡迎透過合法的方式分享此文內容,若要轉載/轉貼,請明確貼出此原始連結並標示作者基本資訊請勿抄襲及非法轉貼(例如擷取內文但並未註明出處)

在嵌入式系統的技術領域,某些與處理器或控制器相關的名詞因為常被混合使用,所以常使許多人對於這些名詞感到模糊以致觀念不清,所以這裡繼續寫這篇文章來作整理分析探討(過去我曾寫過[6]和[13]這兩篇Blog文章來解釋一些名詞定義上的觀念差異)

許多人可能較不會注意到,STM32系列其實除了MCU(Microcontroller Unit)產品之外,也有出MPU(Microprocessor Unit)系列的產品[1],例如ST公司的這顆STM32MP151A[2],這顆IC裏頭除了有有雙核心(ARM Cortex-A7和一顆ARM Cortex-M4)的CPU Cores (當然其實ARM處理器單元之中其實不只包含CPU core,以Cortex-M為例,還會有一些相較於一般周邊裝置而言與CPU更有緊密關係的周邊如NVIC、Systick timer之類的裝置)之外, 還有一些週邊單元(如I2C、SPI、UART、Ethernet MAC、USB、Camera interface、ADC、DAC等等)

須注意的是,上面提到的這款MPU指的是Embedded Microprocessor,而不是傳統所稱的微處理機/微處理器(General-Purpose Microprocessor),單一顆內部主要內容只有CPU單元的IC,而沒有包含週邊單元,如Z80或8086)[3][4]

在某些對於名詞定義較嚴謹書籍裏頭有這樣較明確的定義和解釋去區分上述所提及的Microprocessor和Microcontroller之間的差異,如台科大電子系教授林銘波或者國外的Muhannad Ali Mazidi或者Sencer Yeralan等人寫的書[7][8][9][10]

關於Embedded Microprocessor(嵌入式微處理器),除了上面提到的STM32MP151A之外,像是國內廠商新唐的NUC980[5][12]或者國外廠商Microchip/Atmel公司的SAM9G20[11]也是同類的產品

而Embedded Microprocessor(嵌入式微處理器)這個詞,有時與Z80/8086這種只有內含CPU的IC被放到嵌入式系統之中作為運算核心的狀況下所稱的Embedded Processor(嵌入式處理器),在名詞方面也會有在某些技術手冊或甚至一些書籍中被混用的狀況

Ref:
[3] Wikipedia -Zilog Z80: File:Z80_arch.svg https://en.wikipedia.org/wiki/Zilog_Z80#/media/File:Z80_arch.svg
[4] Wikipedia - Intel 8086: Intel_8086_block_scheme.svg , https://en.wikipedia.org/wiki/Intel_8086#/media/File:Intel_8086_block_scheme.svg
[6] 阿良的嵌入式系統技術學習區, "Arduino到底是什麼? MCU又是什麼?", https://jimsun-embedded.blogspot.com/2019/01/arduino-mcu.html
[7] 林銘波, 微算機原理與應用:x86/x64微處理器軟體、硬體、界面與系統 六版 (精裝本), 全華圖書
[8] 林銘波, 8051微算機原理與應用(精裝本), 全華圖書
[9] Muhammad Ali Mazidi, Janice G. Mazidi, Rolin D. McKinlay, The 8051 Microcontroller and Embedded Systems (2nd Edition), Pearson Education Inc.
[10] Sencer Yeralan, Ashutosh Ahluwalia, Programming and Interfacing the 8051 Microcontroller, Addison-Wesley Publishing Company
[11] Microchip 32-BIT ARM-BASED MICROPROCESSORS: SAM9G20, http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001516A.pdf
[12] 新唐科技(Nuvoton) NUC980 Series Datasheet, https://www.nuvoton.com/resource-files/NUC980_Datasheet_EN_Rev1.0.pdf
[13] 阿良的嵌入式系統技術學習區, "現代計算機系統核心硬體常見平台的分類與簡介概述", https://jimsun-embedded.blogspot.com/2019/11/blog-post_22.html?fbclid=IwAR2-G5oveNJ-esTn7SCrBm_rxnF0IHOSoEorJFGzejbInLd5uBvfrANbilU

2020年9月9日 星期三

市場上最流行的嵌入式平台(Raspberry Pi/Arduino/STM32)都是外國貨? 台灣的去哪了?


台灣有聯發科、聯詠、瑞昱等這些有擅長做網路多媒體類的SoC晶片的公司;也有新唐、盛群、笙泉、松翰等擅長做 MCU晶片的公司

結果台灣自己的學校,特別是許多大學校院,不管是系所開課、研究單位或者起碼九成以上的學校實驗室用到網路多媒體類的嵌入式平台大多都選用Raspberry Pi(板子是英國廠商的,而上面的SoC晶片是博通的);用到MCU類的嵌入式平台時大多選擇用STM32(ST的MCU) 或Arduino(最普遍的款式的板子上面的MCU是Atmel的,Atmel已經在幾年前被Microchip併購),全都是用國外的晶片,且這不是在學界才有的現象,這幾年來也開始有了不少系統廠公司直接或間接地去使用這些平台之中的相關元素來做成自家的產品或者產品其中的一部分(特別是指Raspberry Pi和Arduino板子,而STM32則是本來就是業界愛用的晶片)
上述這狀況代表什麼呢?代表這些國外的平台比較先進或好用,而且因為已經太多人在使用和討論,正向循環之下,其技術資料很多,會造成更多屬於正循環結果的現象。而台灣的廠商大多可能還是只能辛苦地緊跟其後,辛苦地做costdown,要求員工辛苦地增加工時以即時達成客戶的各種要求
在台灣學術界每年產出一大堆論文之後還是如此,只有提到代工成果時才會明顯地想到其代工是由台灣廠商所負責的。這表示台灣的學術和產業發展很成功嗎??為何多數的自己人的第一選擇就不會是台灣自家研發的平台?
事實上,與Arduino系列之中最普及的uno/nano/mini/micro等板子上面的MCU主晶片也就是Atmega328相關的Atmega8 MCU晶片(一樣是基於AVR CPU的Atmega系列MCU,有內建ADC和SPI、I2C等周邊IP)是早在Arduino平台開始流行的很久之前就已經存在很久了的MCU晶片(按照datasheet的資訊顯示這款MCU在2002年就已經在市場上賣了(*參考資料1),被拿來開發Arduino初期的版本(*參考資料2與*參考資料3),也有不少公司將Atmega系列MCU用來開發產品。晶片都有了,就缺乏好的開發生態系去提升其開發便利性和普及性,但這樣的開發平台的生態系就是無法先由台灣的學術界去整合開創出來,所以最後Arduino這類的東西還是外國人先搞出來,而這樣的平台也確實影響了世界,畢竟這確實大大降低了多數初學者對於MCU的入門應用門檻
台灣從來不缺乏濫用創新這個詞的人,真正的實用創新絕對不是不懂專業技術且光喊口號就能做得到的 *參考資料1: ATmega8 datasheet, https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2486-8-bit-AVR-microcontroller-ATmega8_L_datasheet.pdf *參考資料2: https://www.arduino.cc/en/Main/ArduinoBoardSerialSingleSided3 *參考資料3: https://www.arduino.cc/en/Main/ArduinoBoardSerial



2020年8月29日 星期六

樹莓派Raspberry Pi 3 B+環境建置基礎環境建置

 

將過去和朋友討論相關內容時的樹梅派應用基礎環境建置過程筆記分享出來供大家參考


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