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