Arduino ICSP

Ammar Ali 2023年1月30日
  1. 使用 ICSP 引腳對 AVR 和 Arduino 進行程式設計
  2. 使用 ICSP 引腳在兩個或更多 Arduino 板之間進行通訊
Arduino ICSP

在本教程中,我們將討論 Arduino 中存在的 ICSP 引腳的使用。ICSP 代表線上序列程式設計器(in-circuit serial programmer),也稱為 ISP

使用 ICSP 引腳對 AVR 和 Arduino 進行程式設計

Arduino 是一塊具有微控制器,程式設計器和一些安全元件的電路板。Arduino 團隊本身提供的每個 Arduino 中都有一個 bootloader,它與 PC 通訊並向微控制器提供指令以執行某些任務,例如主機板中的 BIOS。bootloader 已預程式設計,位於微控制器的快閃記憶體中。當你將 Arduino 與 PC 連線時,bootloader 等待將草圖上傳到微控制器,如果未提供草圖,則 bootloader 將執行微控制器快閃記憶體中已經存在的草圖。有時,這個 bootloader 崩潰了,並且 Arduino 無法與 PC 通訊。如果是這種情況,或者你想對 bootloader 進行程式設計或對另一個微控制器進行程式設計,則可以使用另一個 Arduino 板來來完成。首先,你需要檢查 Arduino 板上 ICSP 引腳的位置。你可以為此檢查 Arduino 板的引腳配置。例如,如果你想用另一個 Arduino UNO 對 Arduino UNO 的 bootloader 進行程式設計。如圖所示,連線兩個 Arduino UNO。

Arduino ICSP

第一步是將程式設計器 Arduino 設定為 ISP。為此,請進入 Arduino IDE 中的工具選項卡,並將 programmer 設定為 Arduino,並將其設定為 ISP。下一步使用 Arduino 示例一節中的示例程式碼 ArduinoISP。在此示例程式碼中,你可以看到許多註釋,這些註釋將指導你設定不同的引數。該程式碼還支援三個 LED,用於檢查過程的執行情況。例如,中間的 LED 指示程式設計是否出錯。下一步是燒錄 bootloader。為此,你可以轉到工具選項卡,然後選擇燒錄 bootloader。你可以設定 bootloader 的不同引數,例如為 bootloader 保留多少記憶體並禁用復位。因此,在執行此操作之前,請確保已閱讀 Arduino 開發板的文件。你還可以使用這種方法對其他 AVR 微控制器進行程式設計,因為在某些專案中,你不需要板子,取而代之的是,你只需要一個像 PIC 微控制器之類的微控制器。

使用 ICSP 引腳在兩個或更多 Arduino 板之間進行通訊

假如你正在做一個專案,其中需要多個 Arduino 板,並且需要它們彼此通訊,或者如果你想用一個主 Arduino 板來控制某些 Arduino 板。在這種情況下,你可以使用 ICSP 引腳進行通訊。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook