Arduino ICSP

  1. 使用 ICSP 引脚对 AVR 和 Arduino 进行编程
  2. 使用 ICSP 引脚在两个或更多 Arduino 板之间进行通信

在本教程中,我们将讨论 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 引脚进行通信。