我没有Arduino的概念


8

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


1
没有外部电路是荒谬的主张……要通过串行端口与计算机通信,您至少需要RS232收发器,例如某种MAX232;或者像arduino一样,您可以将TTL UART直接与FTDI等USB接口芯片进行通信。
vicatcu,2010年

Answers:


12

引导加载程序是AVR闪存中的一个小程序,它永远不会被覆盖,并在加电时运行。引导加载程序的工作是从UART读取程序数据并将其写入内部闪存。没有引导加载程序,加载代码的唯一方法是使用ISP。

AVR ATMega8的闪存中没有代码。可以使用AVR ISP编程器(甚至是另一个Arduino)通过ISP(系统内编程)引脚上载代码。

对于Arduino,ISP(制造时)仅使用一次-上传一个小型引导程序。上电时,引导加载程序将运行并与串行UART(TX + RX引脚)通信。现在,可以使用STK500协议通过串行引脚对Arduino进行编程。

由于串行引脚(通常)已连接至FTDI USB至串行芯片,因此Arduino也可以通过USB进行编程。


因此,您是说,如果我烧掉了带有引导加载程序的atmega8芯片,那么我可以移除ISP的所有电路,而只需将适当的引脚从串行端口连接到arduino?此外,你能告诉我如何将我的串口与ATmega8的连接
Rick_2047

2
有了引导程序后,这是一个非常小的Arduino电路。将您的PC(通过TTL电平转换器)连接到TX / RX / GND引脚。 profmason.com/wp-content/uploads/2008/09/arduinopins.jpg 有关更多详细信息,请参阅此问题:chiphacker.com/questions/2512/ftdi-basic-breakout-5v
Toby

1
max232将RS232电平串行信号(来自PC的9针连接器)转换为适合与Arduino / AVR通话的TTL电平(5v)信号。可以用FTDI USB至TTL串行芯片代替max232电路以连接到PC。
Toby Jaffey

2
这里需要注意一点:Arduino引导加载程序在启动时仅在很短的时间内就在串行端口上侦听新代码。较早的Arduino引导加载程序在开始执行代码之前会等待几秒钟。较新的引导加载程序启动非常快,必须通过FT232的DTR线进行重置。如果您打算使用max232,请上传较早的引导程序。另请查看Sparkfun(sparkfun.com/commerce/tutorial_info.php?tutorials_id=104),以获得一些出色的AVR教程。
2010年

2
它是实际的AVR目标代码。Arduino击败了一些竞争对手的平台(例如Basic Stamp),因为它运行的是编译的目标代码而不是解释器。
托比·杰菲


1

它们可能意味着,如果您购买的是预制的,组装好的Arduino Uno,则也不需要购买程序员。与其他许多电子入门套件一样。您可以仅使用USB(A> B)电缆对Arduino Uno板进行编程。

但是,如果您要构建自己的Arduino,则当然需要外部电路(例如AVR ISP编程器)或Max232或FTDI。


0

Arduino引导加载程序背后的想法是,与最初的编程或较旧的微控制器(通常需要专用的编程器(例如用于PIC MCU的PicKit2))相比,您不需要任何专用硬件或电路即可对其进行重新编程。引导加载程序允许通过基本串行连接进行编程。

当然,当时您需要串行链接,通常是从TTL到RS232的rs232转换器。然后逐步淘汰了串行端口,usb到串行变得无处不在,从而可以用它代替max232或类似产品。现在,使用支持USB的Atmel微控制器甚至不需要这样做,因此具有最少无源部件的单个ic可以提供Arduino功能和USB到串行。现在,您只需要一根usb电缆和一些无源即可上传草图。自举程序的初始编程仍然需要传统的ICSP编程。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.