以下型號的Arduino主板,使用Atmega16U2 或 Atmega8U2 晶片作為 USB-to-serial轉換器:
Arduino UNO
Arduino UNO Rev3
Arduino Mega
Arduino Mega2560 Rev3
Arduino MegaADK Rev3
將主板設定為DFU 模式(裝置韌體更新)時,即可使用電腦刷新轉換器晶片韌體。
請注意,本文不適用於Uno WiFi Rev2,因為此板使用的是closed source韌體晶片。
1.取得韌體
此韌體包含在Arduino AVR board平台中。
此平台預設安裝了Arduino IDE,可以在Arduino15目錄中找到:Arduino15/packages/arduino/hardware/avr/。
或者,您可以從GitHub 頁面(程式碼 > 下載 ZIP)下載並解壓縮資源庫。
在平台目錄中,USB-to-serial韌體位於firmwares/atmegaxxu2/arduino-usbserial
選擇適合您的主機板的固件如下:
Board | Firmware |
Arduino Mega2560 Rev3 | Arduino-usbserial-atmega16u2-Mega2560-Rev3.hex |
Arduino MegaADK Rev3 | Arduino-usbserial-atmega16u2-MegaADK-Rev3.hex |
Arduino UNO Rev3 | Arduino-usbserial-atmega16u2-Uno-Rev3.hex |
Arduino UNO | Arduino-usbserial-uno.hex |
Arduino Mega | Arduino-usbserial-mega.hex |
2.使用韌體對晶片進行編程
使用 dfu-programmer (macOS/Linux 系統)
從GitHub 儲存庫下載dfu-programmer或使用
homebrew (macOS) 或
apt-get (Ubuntu)等套件管理器安裝套件。
dfu-programmer將開發板連接到您的電腦。
將開發板設定為 DFU 模式。
打開終端機。
透過嘗試以下命令來識別晶片型號:
dfu-programmer atmega16u2 read
dfu-programmer atmega8u2 read
注意:對於舊版的 dfu-programmer,請將上述指令read替換為dump
清除記憶
dfu-programmer erase刷新韌體
dfu-programmer flash 中斷開發板與電腦的連接,再重新連接。
使用 FLIP (windows 系統)
將開發板連接到您的電腦
將開發板設定為 DFU 模式
找到ATmega USB-Serial 處理器的Reset和GND 引腳,可用公對公杜邦線, 同時觸碰Reset + GND 引腳後放開,開發板將重設為 DFU 模式
開啟裝置管理員
展開libusb-win32-devices類別,如果沒有看到的話,請依照以下步驟操作後再繼續
記下設備名稱,應該是ATmega16U2或ATmega8U2
接下來我們將使用 FLIP 刷新驅動程式
打開翻轉FLIP
開啟應用程式可能會提示「找不到 Java 虛擬機器」錯誤。在這種情況下,請使用Windows Online選項安裝 Java 執行環境。
選擇裝置名稱(ATmega16U2 或 ATmega8U2)
按一下“cable”按鈕,選擇“USB”,然後按“open”
點選File > > Load HEX File
選擇驅動程式.hex檔案並按一下“OK”
操作流程,預設選取Erase、Program和Verify
點擊Program Target Device Memory
點擊後韌體很快就會被刷新。可查看左下角,會顯示「已編程完成」訊息。
中斷開發板與電腦的連接並重新連接。
在“其他裝置”下尋找未知裝置。如果有多個未知裝置可用,請先斷開除了Arduino開發板外的設備。
右鍵點擊並選擇更新驅動程式。
瀏覽檔案: C:\Program Files (x86)\Atmel\Flip 3.4.7
點擊“安裝”並等待安裝完成。
安裝完成後,系統就能辨識到「libusb-win32-devices」下的裝置