2024年1月17日 星期三

[Arduino] Arduino 開發板 Upload 問題的排除

有不少初學者因為不熟悉 Arduino 相關開發板,在 Upload 程式時出現許多問題,本文旨在提供一般的問題排除方案。


1. 有選對正確的 USB 傳輸線嗎?

玩家希望將程式由電腦 Upload 到開發板,需要有一條可以傳輸數據的 USB 線。

有些 USB 線只有提供電源的功能,並不具備能傳輸資料,您需要先確認您的 USB 線是可以傳輸資料的。


2. 請確認 USB 線的品質是否合乎開發板的需求?

有些開發板(例如 ESP32 ...)功能較多,他們可能需要同時作動 Wifi 和 BLE 功能,因此需要較穩定的電壓以及較大的電流。

有些品質不好的 USB 線無法提供較大的電流,或是沒有屏蔽電磁波功能,因此建議您選擇一條品質較好的 USB 線,如此對您在使用開發板方面是有幫助的。

另外,過長的 USB 線也會影響到開發板的使用,因為電線的電阻比較大會使電壓和電流降低,讓傳輸數據時產生不穩定的現象。


3. 請確認是否已使用 USB 線正確連接開發板和電腦?

有些開發板(例如 ESP32-S3)具有 2 個 USB 連接頭,其中一個是作為供電使用,並不具有傳輸資料的功能。


4. 是否已經安裝正確的 USB 驅動程式?

目前市面上最常見的有 CH340、CP2102、CH9102...這幾種 USB2TTL 晶片,請先確認您的開發板上的 USB2TTL 晶片是哪一款,並安裝正確的驅動程式。

如果已經安裝 USB 驅動程式,請用 USB 線連接開發板和電腦,並打開電腦的「裝置管理員」,查看是否有出現類似下面的連接埠畫面(您的連接埠可能跟我們的不一樣)。



值得一提的是,目前 CH34x 系列的晶片有許多款,例如 CH340E、CH340G、CH340T...,而他們也都已被使用在市面上各類的開發板上面。

在實務上,我們有遇到下列情況,已經安裝 CH340 驅動程式,也使用 USB 線正確連接 ESP32-CAM 開發板和電腦,Arduino IDE 裡的開發板型號和連接埠也選了,看似一切都沒問題,可是在 Upload 時卻發生錯誤。

經過反覆測試,最終發現是 CH340 驅動版本的問題,我們當時是重新安裝 CH341SER 這支驅動才解決了這個問題。


5. 是否已選擇正確的開發板型號和序列埠?

如果玩家不知道您的開發板該選擇哪一個型號,可以詢問您的賣家。

以 Arduinp Nano 開發板為例,開發板型號應該選擇「Arduino Nano」。

這裡要注意的是市售的 Arduino Nano 開發板處理器安裝有兩款 Bootloader,一款是 ATmega328P,另一款是 ATmega328P (Old Bootloader),您可以先試試選用 ATmega328P,如果 Upload 有錯誤時,可以再選擇 ATmega328P (Old Bootloader),如下圖所示。


還要提醒您的是,新版的 Arduino IDE 裡,或是其他開發平台,其處理器的選項並不明顯,如果您沒有辦法找到「處理器」這個選項,建議您使用 Arduino IDE version 1.8.19。

最後,則是需要選擇正確的序列埠。