我不明白 Arduino 的概念
引导加载程序是 AVR 闪存中的一个小程序,它永远不会被覆盖并在上电时运行。引导加载程序的工作是从 UART 读取程序数据并将其写入内部闪存。如果没有引导加载程序,加载代码的唯一方法是使用 ISP。
AVR ATMega8 在闪存中没有代码。可以使用 AVR ISP 编程器(甚至另一个 Arduino)通过 ISP(系统内编程)引脚上传代码。
对于 Arduino,ISP 仅使用一次(在制造时)——上传一个小型引导加载程序。上电时,引导加载程序运行并与串行 UART(TX + RX 引脚)通信。现在,可以使用 STK500 协议通过串行引脚对 Arduino 进行编程。
由于串行引脚(通常)连接到 FTDI USB 转串行芯片,因此 Arduino 也可以通过 USB 进行编程。
您可以在此处购买带有引导加载程序的 ATmega328 芯片。
他们可能意味着,如果您购买了一个预先构建的、组装好的 Arduino Uno,您也不需要购买一个编程器。与许多其他电子入门套件一样。您可以仅使用 USB (A > B) 电缆对 Arduino Uno 板进行编程。
但是,如果您要构建自己的 Arduino,您当然需要外部电路(例如 AVR ISP 编程器)或 Max232 或 FTDI 之类的东西。
Arduino 引导加载程序背后的想法是,与它的初始编程或通常需要专用编程器(如用于 PIC MCU 的 PicKit2)的旧微控制器相比,您不需要任何专用硬件或电路来重新编程它们。引导加载程序允许通过基本串行连接进行编程。
当然,当时您需要串行链路,通常是从 TTL 到 RS232 的 rs232 转换器。然后串行端口被逐步淘汰,usb 到串行变得无处不在,允许它取代 max232 或类似的。而现在,使用支持 USB 的 Atmel 微控制器甚至可以避免这种情况,因此具有最少无源部件的单个 ic 可以提供 Arduino 功能和 USB 转串口。现在您只需要一根 USB 电缆和一些无源即可上传草图。引导加载程序的初始编程仍然需要传统的 ICSP 编程。