我不明白 Arduino 的概念

电器工程 Arduino 引导加载程序
2022-02-07 06:40:32

我一直在努力制作 Arduino(成功地使用ISP编程器电缆制作了面包板版本)。他们说 Arduino 引导加载程序的制作不需要外部电路来对ATmega8进行编程。但是当我查看原理图时,串行连接所需的正常电路。那么引导加载程序实际上做了什么?

4个回答

引导加载程序是 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 编程。

其它你可能感兴趣的问题