一个标准的 Arduino Uno上面有两个可以编程的IC,一个是负责USB转串口的ATmega16U2,一个主控芯片ATmega328P,下图红色标记的就是16u2,绿色标记的是328P. 然后对应的有三种Firmware: 16U2 中有一个,328P 中有两个。16u2的负责USB转串口;328P的一个Firmware是BootLoader,从功能上说主要是负责把16u2收到串口数据刷新到328P上;328P中的另外一个Firmware 就是我们平常写的程序,编译之后生成的,用来完成我们期望的功能。 一般情况下,如果想更新16u2,需要额外的设备,比如 USB IPS ; 我们IDE只能更新328P中的程序部分.328P的BootLoader也是需要额外的设备来进行更新的。
16u2的Firmware 可以在类似 \arduino-1.6.3\hardware\arduino\avr\firmwares\atmegaxxu2\arduino-usbserial的路径中找到 328P Bootloader 的Firmware 可以在\arduino-1.6.3\hardware\arduino\avr\bootloaders\atmega的路径中找到。
|