總網頁瀏覽量

顯示具有 電子系 標籤的文章。 顯示所有文章
顯示具有 電子系 標籤的文章。 顯示所有文章

2021年1月29日 星期五

【課程介紹】本學習區已開設之嵌入式系統軟韌體技術課程 簡介

本區於之前已開設之課程:

(一) 嵌入式系統基礎理論與實務課程(包含業界職缺介紹)

-> 以麻雀雖小五臟俱全之8051 MCU為實驗教材(以紮實基礎理論與實務觀念為課程核心,對於初學者而言,其實不會有8051太老舊的問題,希望初學者奠定紮實基礎以利初學者學習與至相關產業就業)。

(1) 嵌入式系統基本理論觀念(包含類別、業界職缺介紹)主要將以講師本身的產業任職 與 多年來輔導朋友們的經驗,希望帶領初學者認識一般學校比較不會教的知識(到底何謂嵌入式系統?有哪些分類?在產業常見的工程師職務類別有哪些?韌體可以找哪些工作?可以去挑戰哪些公司?有何限制?),甚至有需要的話都可以也可以在此課程內做相關產業職缺的求職輔導。 

(2) 在MCU實務的方面將包含基礎架構知識、指令集(組合語言實驗,包含各式定址法、8051記憶體系統架構、中斷機制等),標準8051內部各式周邊原理與驅動實驗(以C程式語言或組合語言實驗,視學員之基礎與學習狀況而定) 

該課程之介紹網頁連結請點此

 

同時也向大家介紹一下近期小弟我這邊已開始著手準備、於未來即將開設課程:

(二) STM32 (ARM Cortex-M CPU based MCU)韌體開發基礎課程

-> 預計將會包含STM32 MCU應用基礎觀念、ST工具軟體與KEILC IDE(MDK-ARM)開發環境建置、常見周邊驅動原理與應用(如GPIO、UART、TIMER、I2C、SPI等等,以及中斷機制)





(三) Embedded Linux on 嵌入式微處理器系統開發板(預計會是beaglebone black或類似的開發板)
-> 預計將會包含系統基礎觀念、開發環境建置、系統各階段軟韌體建置(bootloader、Linux kernel、filesystem、basic application program、裝置驅動程式(Linux device driver)基礎觀念 等項目)之教學


上述這些都是以現在國內多數的大學院校普遍教得比較隨便(或太淺,或缺乏業界實戰經驗觀念)、但是對任職韌體研發工程師相關職務相當重要的課程內容。

若有一定的學員需求和市場,上述課程將會於後續再拆分出更細緻的課程項目。

另外上述內容也可依學員自身的基礎、需求與學習狀況與講師共同討論客製化個人專屬課程內容方向。


  • Q&A

相關文章: 【這個學習區開設的課程目標是什麼? 要找科技業軟體開發相關的工程師工作,不是靠名校碩士學歷或者刷Leetcode比較快嗎?】 


  • 課程特色

講師個人學經歷簡歷: https://sites.google.com/view/wenliangsun/

- 講師本身具備 產業界開發經驗(兩間知名IC設計公司之 軟韌體公版 與 系統應用工程開發),兼具軟體、韌體與硬體開發相關技術背景,亦曾於中小企業擔任產品研發顧問,了解相關產業對於人才技術基礎方面的需求

- 講師長期接觸學術界,了解國內大學校院於嵌入式系統軟韌硬體技術教學方面的不足與缺漏

- 主要以 一對一家教模式極小班制 的方式授課 

- 可按照每位學員的不同狀況與需求(如就業內容需求)針對授課內容進行 客製化安排規劃

- 上課時間可自由動態調整(與講師雙方討論確認即可)

上多少課程付多少費用,上課費用每次結清,可自由決定上課時數,不必被強制綁死整個系列課程,不須要在事前就將系列課程的所有費用付清

不好高騖遠,從具體而微之較簡易之嵌入式硬體平台開始切入,著重重要基礎觀念與技術的養成,也並非只是手把手按照範實驗例照本宣科的那種表面上讓高規格的硬體平台功能能動就好的課程

可從嵌入式軟韌體相關產業職缺與狀況之相關觀念開始輔導,並非一般補習班之制式化課程

可協助產業界企業公司進行人員之嵌入式系統相關技術培訓輔導


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

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

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

【你所不知道的Arduino】Arduino UNO電源選擇電路之設計機制與動作原理分析 & 實際進行實驗量測結果之差異探討

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

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

有鑑於近年來許多學校師生、maker技術愛好者甚至產業公司都有許多人在拿開源的Arduino板子去作工程應用,但是卻比較少人(尤其是學校師生)藉由這個軟硬體都開源的平台去探討與學習一些軟硬體技術細節。許多人只拿板子來做應用,相當可惜。事實上,因為這是一款軟硬體開源的平台,所以可以從其函數庫的程式碼以及電路設計中去找到很多可以學習專業知識和技術觀念的地方。

小弟不才,希望分享一些內容供讀者們參考

這篇文章來針對板子上的進行簡單的分析/探討/說明/拿手上有的UNO板子進行量測實驗,以一個韌體開發人員對於嵌入式系統發所需的基本硬體觀念來闡述(或許不會太深入講解硬體細節,自己也不是專攻硬體電路的電路專家,過去幾年主要的工作是偏向嵌入式系統軟韌體,對硬體方面比較常接觸的就是一些基本的介面電路),希望藉由文章讓初學者不會太害怕了解較簡單的硬體電路原理。

P.S. 因為有時候整理校正這種字數很多的文章到想睡覺時會整理到腦子不清楚,有時會導致誤將自己在記事本寫好的某段文字貼到不對的段落,往往事後自己重複檢查時才會發現Orz...已經盡量檢查校正,若有明顯錯誤還請大家熱心提醒,感謝

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

如文章標題,這偏要探討Arduino UNO板子的電源選擇電路之動作原理分析 & 實際以手上的Arduino UNO板子(可能與官方版本UNO有差異)量測實驗,先從原理面來分析。

Arduino官方的Arduino UNO開發板的電路圖[1],請將此電路圖開啟並參照比對,為了方便說明,內文中的電路圖會截取[1]部分電路,並加上一些框線來配合說明。

如果要從Arduino UNO官方版本板子上面所提供的電源線接孔去輸入電源(當然是DC直流,這個應該不必多贅述),有兩種選擇

() USB供電,如下圖

圖1


(
) 7~12V DC電源輸入孔(DC5.5*2.1mm電源插座母座接頭,也被稱DC Power JackDC Jack,以下簡稱DC Jack),雖然這種供電給Arduino板子的方式現在應該比較少人用。

圖2

市面上其他一些進階版本/簡化版本可能有些不同,這裡以Arduino官方的版本的UNO電路圖為主來說明。

有些電學背景或經驗的讀者就會好奇,Arduino板子是如何藉由電路設計去決定哪一種電源作為ATMEGA328P MCU系統的電源

由圖3可看出 7~12V電源孔(DC Jack)母座的第2(PWRIN)即為電源正極輸出端,在經由編號為D1的二極體之後(可防止逆向電壓輸入以免導致板子上面元件因此毀損,因為當二極體於加上逆向偏壓時PN兩端是開路,也就是不導通狀態),會接到電路上標示為VIN端之處,並輸入NCP1117 LDO穩壓IC穩壓出5V,並且這5V然也有輸入另一顆LDO去穩壓輸出3.3V(如圖4LP2985-33DBVR穩壓IC)


圖3 ([1])


再來看到圖4,如果VIN7~12V,經由兩個10K的電阻(RN1ARN1B)分壓後,假設分到大約3.5V~6V(對應接到DC5.5VIN的電壓大小,分一半,也就是VIN/2)的壓降在編號為RN1B的電阻(下方的電阻)上面 (也就是TP_CMP點。可能有人會疑問中間不是也有接到LMV358嗎,但OPA的輸入阻抗極大,所以這邊可先這樣看)

圖4 ([1])


FDN340P是一顆PMOS(PMOSFET,不清楚的讀者可自行google參考相關基礎)[2],在這裡將其作為開關用圖(D極與S極的導通on與截止off)

圖5 ([2])


LMV358IDGKR是一款內含兩組OPA(Operational Amplifier)IC [3],如果我沒看錯或漏看的話,LMV358IDGKR這顆IC本身所吃的電源VCC+接點與板子電源的連接狀況主要是被標示在[1]電路圖的最左上角上(之前我眼花漏看了,經網友提醒後更正)。

圖6 ([3])

7~12V電源透過DC Jack接到VINRN1B分壓到3.5V~6V(對應7~12V)的電壓,而LMV358 OPA元件(U5A)在這裡是被用來作為類比電壓比較器,當第一組OPA的非反向輸入端(+端,也就是這顆OPA的腳位3),這個電壓如果大於加在反向輸入端(-端,也就是這顆OPA的腳位2)3.3V時,LMV358 OPA(U5A)作為比較器會輸出一個類似我們數位電路的邏輯1的電壓(high level voltage)FDN340P這顆PMOSGate(閘極),也就是TP_GATE點,這邊的設計原意和目的應該是希望VGS(也就是VG-VS) > Vth,讓這顆PMOSDrain(汲極)Source(源極)不導通(開路)但實際用手上的UNO板子進行量測的結果與此有落差(後續實驗結果與內容會敘述,如#1)

另外,因為這顆PMOSD極和S極之間還有一個二極體,所以我們要來分析看看這顆二極體是否會順向導通。從圖3可看出當7~12V電源如果有接上(DC Jack)NCP1117ST50T3G這顆LDO穩壓IC會穩壓並輸出5V,而這5V與上述PMOSS極,同時也是PMOS上面內藏的二極體(body diode)N極有相連,所以此時不論有無接上USBVCC時,該二極體都會因為無法得到足夠的順向偏壓而不會導通(矽二極體的順向偏壓所需導通的電壓也就是障壁電壓理論值是0.7V。FDN340P Datasheet內容來看,經過這個PMOS內藏二極體body diode的電流與順向偏壓的關係可參考圖7第一張的IV特性曲線圖)

7 ([2])

所以這狀況下(邏輯1的電壓(high level voltage)FDN340P這顆PMOSGate)FDN340P這顆PMOSDrain極和Source之間極仍為開路(不導通,所以來自USB的電壓源USBVCC不會連接到+5V(這應該是設計的用意,但實際用手上的UNO板子實際量測的結果與此有落差,後面內容會提及如#1。細心的讀者應該有注意到,穩壓IC輸出的5V同樣也會接到PMOSS)

圖8 UNO電路設計目的原意  (截取並修改自[1])


而板子上主要ICVCC都是接到這個+5V端,無論是拿來作為USB/UART轉換器的ATMEGA16U2(在某些UNO板子被替換成專用ICCH340而不是用ATMEGA16U2 MCU、或是讓使用者編寫程式進行控制的ATMEGA328 MCUVCC都是以這個+5V端的電壓做為電源),所以可看出在這種狀況下,Arduino UNO板子是選擇來自DC Jack7~12V電源並經穩壓後的5V作為電源。

而另一種狀況,也就是如果在沒有7~12V電源到DC Jack,而是接上USB電源線(USBVCC端有5V)的狀況下,RN1B電阻上面(TP_CMP端點)沒有壓降,LMV358 OPA的非反向輸入端被RN1B電阻pulled downGND,所以LMV358 OPA作為比較器輸出一個觀念上類似我們數位電路的邏輯0的電壓(low level voltage)0V去輸出到FDN340P PMOS的閘極(也是TP_GATE),按照一些書籍和網路資料的輔助說明,該處設計的原意目的似乎是希望這樣的狀況下讓VGS < Vth(但是實際上狀況也有落差,因為板子剛上電時,PMOSS極與D極還沒導通,此時VS應該是0V。所以實際上須要靠PMOS上面D極與S極之間的二極體協助完成目的,後面會有較詳細的相關說明如#1),按照PMOS特性,當VGS < Vth的時候,S極和D極導通,所以USBVCC可以藉由PMOS連接到+5V端做為UNO板子的系統電源(當然也有輸入另一顆LDO去穩壓輸出3.3V)

圖9 UNO電路設計目的原意  (截取並修改自[1])

: 包含上述提到的OPA元件作為比較器輸出的邏輯0與邏輯1的部分,其實實際上這仍然是屬於類比電壓,因為OPA是類比式的電子元件,所以這樣的敘述方式,就硬體電路設計而言可能沒有很嚴謹,但希望讓一些純軟體背景、頂多只懂數位硬體觀念的讀者有個基本的了解(許多相關文章也是這麼描述)。

以上是原理面的分析探討,某些國內外書籍和網路文章也有類似部分的教學(如[6]與[7])

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

重頭戲來了,實際以手邊Arduino UNO進行實驗量測狀況

我手上的幾塊Arduino UNO板子的FDN340P PMOS的部分是被HM2301B(IC標號A1SHB) PMOS所取代(如圖11[5]),不確定是否還有一些電路的部分與官方的UNO版本有差異(畢竟這些板子就算被改過也未必都方便拿得到修改細節後的確切電路圖),另外也曾經看過某塊UNO板子的RN1B(12照片中的R14)的部分,似乎直接被一顆電容器取代。

圖10

圖11 ([5])


圖12

@實驗1: 只接DC  Jack電源(DC 12V輸入或者USB電源以及DC Jack電源(DC 12V輸入)都接上

(註解: 因我手上應該的UNO板子應該不是官方版本的UNO,所以下面講的LMV358可能根本不是LMV358而是LM358,導致電路行為異常,下面會有#1針對[8]進行相關說明)

類比電壓比較器的反向輸入(LM358[和官方電路指定IC款式不同] 裡面第一組OPAPIN 2) = 3.3V

類比電壓比較器的非反向輸入(LM358 裡面第一組OPAPIN3) = 5.65V

類比電壓比較器輸出(LM358 裡面第一組OPA的輸出PIN 1) = 3.77V

HM2301B PMOSG極電壓VG = 3.77V

HM2301B PMOSS極電壓VS = 5V

HM2301B PMOSD極電壓VD = 5V

LMV358 裡面作為比較器的OPA的反向輸入端(PIN2)為板子上原先設計的給入電壓3.3V,而量測來自非反向輸入端(PIN3)RN1B的壓降為5.65V(也就是12V扣掉二極體D1的順向偏壓0.7V之後大約是11.3V的一半),所以理所當然的,LM358(和官方電路指定的LMV358是不同的款式) 裡面第一組OPA的輸出(PIN 1)約為3.77V(作為類比電比較器來應用),也就是TP_GATE,同時這個輸出也接到HM2301B PMOSG極,所以VG也約為3.77VVS5V(來自DC Jack再經過AMS1117穩壓IC輸出的5V,如圖13),因為VGS (-1.23V) < Vth,至於Vth是多少可參考HM2301B Datasheet[5]內Page 3左下方的IV特性曲線圖(如圖14,但要看懂這些需要一點經驗與思考)VGS如果是-1.23V其實已經足以讓這顆PMOS處於一定程度的導通狀態(若要讓PMOS截止,則VGS在相關條件下的合理範圍內要盡量大一些,以這邊的狀況來說就是希望讓OPA作為比較器輸出5V到PMOS的G極,所以比較器輸出電壓同時也就是VG,但現在該電壓的大小只有3.77V)所以此時HM2301B PMOSD極和S極是導通的,VSVD都是5V。
圖13 (截取並修改自[1])



圖14 ([5])

而在只接DC  Jack電源(DC 12V輸入而沒接USB電源線的狀況下是這樣的結果,這就是和上述原理所設計的目的不太一樣的地方了(後續內容#1之處會提及主因)照理說在有接DC  Jack電源(DC 12V輸入)的狀況下,設計原意應該是希望PMOSG極有高電壓(數位邏輯1)之下的D極和S極之間不導通(開路),以隔絕來自USB的電源(USBVCC)灌入+5V端。不確定這是否是接上PMOSG極之後才拖下來的電壓(3.77V)? 但從量測結果看起來,D極和S極確實沒截止(沒斷開)而是導通的。

不確定是否是因為有一些非官方版本的UNO電路設計的差異造成這些狀況(後續內容#1之處會提及主因),個人覺得關鍵是如果OPA 輸出(TP_GATE)PMOSG極的電壓夠大,這樣VGSVG -VS)就不會小於Vth PMOS導通條件是VGS < Vth,與NMOS的狀況相反),如此就會讓有接DC Jack電源的狀況下,PMOSD極與S極不導通(截止)。

(: 按照LMV358 Datasheet,這顆IC的最大Supply voltage5.5V,通常輸出電壓會有個Swing範圍,看是比VCC低多少)

否則本來就會因為OPA輸出3.77V而導致VGS (-1.23V) < Vth進而導致PMOSD極和S極導通,而失去了原本希望此時PMOSD極和S極應該是不導通(截止)的設計用意。

曾經想過,不知會不會是官方為了區分官方與非官方版本的UNO所故意留下的伏筆?但如果看官方給的UNOlayout應該也會得知才對

#1: 2020/12/04凌晨更新:

按照對岸網友的討論與實驗[8](和我上述遇到的狀況一樣,看起來也是一篇原創文章),似乎是因為我們手上的UNO板子上面的LMV358根本都被換成了LM358 ,所以在比較器高電位輸出時的電壓才會只有3.77V左右而導致VGS (-1.23V) < Vth進而導致PMOS沒辦法進入截止狀態,而網友將UNO板子上的OPA IC(原先官方指定的LMV358的位置)明確換成LMV358 IC,結果就正常了。

從外觀包裝表面上來看,LMV358和LM358是 Pin to Pin compatible(IC腳位兼容)。但在實際使用上,當然須去了解這兩顆IC之間的特性差異

這邊針對這部分做了一些基本的調查,LMV358有Rail to Rail軌對軌輸出特性(輸出的電壓範圍可和工作電壓的範圍相同),能輸出接近5V的電壓,能使得VGS > Vth,進而讓PMOS處於截止狀態,USBVCC端不會與S極的+5V端導通。

不過因為現在較少人會使用DC Jack供電給Arduino UNO,所以這件事情(LMV358經常被換成了LM358)就也沒那麼明顯(應該是因為比較不妨礙常用到的主要Arduino UNO應用功能),所以才會沒有經常被拿出來討論

(Ref[8]: 【原創】為什麼你的Arduino會漏電, https://www.arduino.cn/thread-90169-1-1.html )

而實際上,過去較舊版本的Arduino UNO官方版本電路圖[9]似乎也曾經拿LM358來做一樣的事情(當然當時的狀況可能也還會有些其他差異,或許當時這樣是OK的,詳情我不清楚),如圖15,可參照: https://www.arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf

整體來說大概是Arduino官方後來也逐漸改進了電路設計

圖15 ([9])


@實驗2: 只接USB電源

類比電壓比較器的反向輸入(LM358[和官方電路指定的LMV358不同款式] 裡面第一組OPAPIN 2) = 3.3V

類比電壓比較器的非反向輸入(LM358 裡面第一組OPAPIN3) = 2V

類比電壓比較器輸出(LM358 裡面第一組OPA的輸出PIN 1) = 0V

HM2301B PMOSG極電壓VG = 0V

HM2301B PMOSS極電壓VS = 5V

HM2301B PMOSD極電壓VD = 5V

這個情況之下的量測結果看起來就比較符合原先的設計目的。不過實際上,因為現在沒有了來自DC Jack(7~12V)電源電壓到+5V端點,而+5V端點是連接到PMOSS極,所以在電路剛上電的時刻,VS應該是0V,而VG也是0V,所以VGS(0V) > Vth所以PMOS的應該不會導通。但是PMOS上面的二極體的N極在電路剛上電的時刻如同VS0V(同一點),而二極體的P極是USBVCC5V(因為這時USB電源有接上),所以剛好在PMOS的body diode(內藏二極體)順向偏壓的狀況下讓這個二極體導通 (P極與N極導通,但這時這二極體的兩極前後的電壓會有落差,落差值就是順向偏壓)。這時候,S極有電壓了(此時VS電壓大小為USBVCC5V扣掉內藏二極體的順向篇壓),而G極依然0V,就使得VGS < Vth條件成立,導致PMOSD極和S極導通,所以這時候量測到的VSVD都一樣是5V而這時PMOS上面D極與S極之間的二極體變回不導通,因為這時候二極體的P和N這兩端的電壓就也都是5V(VSVD),所以VSVD之間也不會有因二極體須要克服障壁電壓所需之順向偏壓的壓差。

值得注意的是,若對照官方UNO電路圖的VIN(PC147uF電容器+極那一點的電壓),在這個沒有接電源到DC Jack的狀況下,量測到VIN仍有4.2V的電壓(還沒研究其原因),所以RN1B分到大約2.1V,並且連接到LM358裡面的第一組OPA比較器的非反向輸入端,這個2.1V小於反向輸入端的3.3V所以OPA作為比較器輸出0VPMOSG極,所以VG0V,按照PMOS特性,此時D極和S極導通,USBVCC灌入+5V端,作為UNO板子的系統電源。

也因為有做實際實驗量測,把UNO版子這些電源相關的部分的一些元件的位置都弄清楚了(沒看Layout),這邊標示出來給讀者們參考,如圖16 (PMOS左邊的那顆綠色的扁扁的元件是接在USB VCC電源端的保險絲,當然這類元件也不一定都是綠色的,當時標註照片時我沒標註到所以就在這裡用文字補充說明)

圖16

另外關於一些與官方UNO板子的IC型號的差異,官方UNO板子電路圖上的U1也就是NCP1117 穩壓IC,我手上的UNO板子是被替換為AMS1117,在一些細節之外,在Arduino UNO板子上面的基本應用方式大致上應該差不多(細節我沒去仔細深入比較)而再次如前述內容強調LMV358 IC在許多非Arduino官方的UNO板子是被用LM358 IC取代(這就是關鍵了,我手上的UNO板子應該都是如此,才導致上述的實驗結果,與[8]遇到的狀況一樣。但這狀況在大多數人的應用情況和使用習慣下,大概是因為不太妨礙到主要常用的功能,所以沒有經常被提出來討論)。


Ref:

[1] Arduino(TM) UNO Rev3 schematic, https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf

[2] FDN340P, http://www.farnell.com/datasheets/82023.pdf

[3] LM321, LMV324, LMV358 LMV3xx Low-Voltage Rail-to-Rail Output Operational Amplifier, https://www.ti.com/lit/ds/symlink/lmv358.pdf?ts=1606682102563&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FLMV358

[4] LMx58-N Low-Power, Dual-Operational Amplifiers, https://www.ti.com/lit/ds/symlink/lm158-n.pdf?fbclid=IwAR15LRas0SHAu_YLQ9BR_aURSs-LwSzO1-I6Ve3ihWZ0pwZmxKUEq3sQVU4

[5] HM2301B(A1SHB), https://datasheetspdf.com/pdf-file/1088456/H&MSemiconductor/A1SHB/1

[6] Understanding Arduino UNO Hardware Design(The Power part), https://www.allaboutcircuits.com/technical-articles/understanding-arduino-uno-hardware-design/

[7] answer-id.com(Jagat’s Question), https://answer-id.com/zh/50803415?fbclid=IwAR0Nbi0MwuorBLD3KbWaVrH4u-M9-qS7dT34JDJM-i7YI3Q1veN9liwGtIE

[8] 【原創】為什麼你的Arduino會漏電, https://www.arduino.cn/thread-90169-1-1.html

[9] Arduino UNO Reference Design, https://www.arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf

感謝各路網友交流分享經驗 與 內文筆誤內容提醒 (謝謝幾位網友/朋友)

如果有相關實驗經驗的朋友也歡迎分享交流,謝謝

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


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