成为订阅者(免费)

加入29,000名其他订阅者以获得用户销售折扣和 其他免费资源。
:
:
大学教师'担心 - 您的邮件地址完全是 安全的。我保证使用它 只要 to send you MicroZine.

arduino. Nano.. ISP : Using a Nano as an ISP programmer


如何使用NANO作为Arduino Nano ISP:没有AVR程序员我想要编写ATMEga328P以供使用 作为一个裸露的arduino,一个方便的方式是使用 Arduino Board作为ISP:在系统程序员中。

使用程序员的目的是放回引导加载程序, 所有Arduino Boards都需要使用之前上传程序 arduino. IDE.

您可能会购买一个未编程的芯片,需要一个引导加载程序 让它与IDE一起使用,在这种情况下,您可以使用此方法 重新编程设备(当然您需要至少一个设备 引导加载程序已安装)。

如果你不't至少有一个引导加载编程芯片,然后是您 will need to use a "real"程序员和Avrdude为 编程软件。

面包板纳米作为ISP到ATMEGA328P

您可以选择许多差异arduino板来编制目标板(Arduino.cc 建议Atmega,32U4或Attiny - 常见的是"Arduino Uno" and "Arduino Nano"作为编程设备)。

IDE可能只是 为不同的电路板更改引导加载程序草图中的引脚(暗示 在引导加载程序草图中)以获得正确的SPI引脚唯一的其他 所需的信号是一般的I / O引脚,用作复位 signal.

ISP.编程方法只需使用SPI接口将程序员和目标连接到4个信号线:

  • RST - 重置。
  • 莫斯(SPI) - 掌握奴隶。
  • 味噌(SPI) - 奴隶硕士。
  • SCK.(SPI) - 串行时钟。

笔记: 莫斯,MISO和SCK是在使用的芯片中使用的相同SPI销 您自己的项目中的SPI接口。 RST是来自任何I / O的信号 PIN(它不是Arduino Lanset信号)。

这些(SPI)信号连接到编程器(NANO)上的相同引脚和 目标(这里是无可焊接面包板上的Atmega328p)。注意这件事怎么样 信号的名称允许在不同的芯片之间直接连接 因为它们包括来源和目标名称。这是非常的 different to RS232 您必须记住交叉RX和TX信号!

程序员和目标板始终相同。 所以所有你需要将Bootloader重新编程到Arduino中,是 另一个arduino! (引导加载程序已编程到芯片中)

步骤一 - 程序员

这听起来有点奇怪,但你需要编程arduino nano 用作ISP编程草图的Arduino Nano ISP程序员。这回合 arduino进入ISP程序员。

这里纳米用作程序员。

从IDE中的示例程序中选择Arduino ISP:

    Menu > File > Examples > 11.ArduinoISP > ArduinoISP

arduino.作为ISP选择ISP素描

从“工具”菜单中选择四个选项:
  • 木板:"Arduino Nano"。这是程序员使用的程序员。
  • 处理器:ATMEGA328P。
  • 端口:COMNN。您的纳米附加的港口。
  • 程序员:"Arduino as ISP".
它们都应该匹配下面的屏幕 - 除了端口号之外 您可以通过单击端口条目(如下所示)找到。


arduino. ISP板港口和Arduino Nano的芯片设置

将草图编程到纳米中。

    Menu > Sketch > Upload

步骤二 - 将程序员连接到目标

编程后,将董事会创建Arduino Nano ISP 程序员,断开USB电缆并建立连接 target board.

您必须连接所有SPI线(见下面的面包板布局) but you don't really need to 连接LED。一个你可能会发现的是心跳LED但它 不是必不可少的。这将脉冲慢慢打开,显示出来的 ISP 程序在纳米中活跃。

在LED连接下方的面包板布局中:

  • PIN D7:黄色:编程。
  • PIN D8:红色:错误。
  • PIN D9:绿色:心跳。

提示: 大学教师't扰乱LED - 请参阅下面的IDE输出的屏幕镜头 - 您可以轻松查看编程状态。

您可以选择哪些销钉将用于MOSI,MISO和SCK 如果将PIN_MOSI,PIN_MISO和PIN_SCK设置为所需的引脚 - 素描(将草图另存为其他文件以允许编辑) - 在此 如果这些引脚是,则Ardino ISP草图将使用位撞击SPI 未设置为标准SPI引脚。

纳米到裸板连接,以及水晶+帽:

 Signal name         
纳米      
裸露的板子
  MOSI
D11 pin 17
  MISO D12
pin 18
  SCK
D13
pin 19
  RESET
D10
PIN 1(RSTN)
  5V
5V
引脚20(AVCC),引脚7(VCC)
  0V
GND.
销22,引脚8
  Cap1 to GND (22pF)
N / A.
pin 9
  Cap2 to GND (22pF)
N / A.
pin 10
  16 MHz Crystal
N / A.
销9和引脚10

arduino. Nano.. ISP programmer connected to
 目标裸牌Arduino芯片:
面包板纳米作为ISP到ATMEGA328P
这是上述原理图(10PF应在上面列表中为22pf)。

警告: Friczing使得改变组件非常困难 值(晶体电容器)所以我没有't! - 也是原理图工具 是坏的(单净操作)。我没有尝试过pcb但有 注意到它不适当地认为是'使用它。只用FRITZING 面包板图形如上所述。

arduino. Nano.. ISP programmer to
裸板Arduino芯片原理图:
纳米作为ISP原理图

第三步 - 选择引导加载程序类型

从中选择Arduino作为ISP"Programmer:" Option:

arduino. nano作为ISP选择程序员

第四步 - 将引导加载程序刻录到目标

下一步是使用Bootloader编程目标板(Arduino Nano ISP):

    Menu > Tools > Burn Bootloader

将bootloader刻录到ATMEGA328P

IDE刻录Bootloader输出

Burn Bootloader失败:Arduino Nano ISP

作为一个实验,我在运行引导加载程序之前删除了水晶。结果是:

nano作为isp刻录引导加载程序错误

这很有趣,因为PIC微控制器不需要水晶 对其进行编程,但他们确实需要高电压与Arduino不同。它 也意味着Atmega328p将更容易受到砖块的影响 保险丝设置得差,并进行了糟糕的时钟配置。使用 有关此页面的信息,不能像Arduino IDE集一样发生 这些保险丝 - 我在谈论当你自己设置融合时 using AVRDude.

刻录Bootloader成功:Arduino Nano ISP

当您成功编程引导加载程序时,这是结果 (这也是你不喜欢的原因'真的需要尽可能地需要LED 请参阅IDE状态屏幕的成功或失败):

arduino. Nano.. as ISP bootloader burn success

使用裸牌Arduino

使用裸板Arduino要求您将USB串行 连接到Arduino芯片的Rx和TX引脚的适配器。

笔记: 信号Rx和Tx必须在Atmega328p上跨越。所以:

  • Adapter-Rx连接到328p-tx。
  • Adapter-Tx连接到328p-rx。

在许多情况下,串行接口适配器只有四个连接:

  1. 5V
  2. GND.
  3. RX.
  4. TX.

这提出了一个问题,因为Arduino示意图显示了 Arduino以串行使用DTR信号的特定重置 界面。没有DTR信号信号编程序列挂起。那 是,除非您在正确的时间进行手动重置 - 或者购买 具有DTR信号作为输出的串行适配器(并添加100nf 电容器 - 见下面的原理图)。

arduino.重置问题

在Arduino Boards上另一个外部信号启动引导加载程序 - 实际上 它重置板 - 此额外信号称为DTR(或数据终端 就绪) - 它是串行接口的单独输出。一个 bootloader is only 在上电时为活动,或重置后,活动 控制被传递给了'previously-loaded' program.

启动RS232传输时,发送设备断言 DTR且此信号用于执行目标 重置(使引导加载程序唤醒)。在Arduino示意图A 100nf 电容器位于此信号和Atmega328p的复位输入之间 (也通过10k电阻拉动 - 参见下面的电路中的C5)。

使用DTR信号重置Arduino

由于DTR仅在开始时才使用此组合 并结束一个字节传输。这个想法是当DTR 变低,重置输入暂时拉低,然后慢慢地 通过10K上拉(RN1D)拉到5V。这是一种作弊重置 使用电容器特性进行作业的方法。

下面的信号迹线显示了电容器动作 - 显示复位 arduino的销(这是1V / div和500us / div,电压之间 蓝色水平线是4.7V - 较低的蓝线是0V):

arduino.通过DTR重置输入电容C5

此重置系统有效,因为重置输入具有滞后 级别为0.1V(在5V供电),产生清洁信号 在微控制器中,忽略缓慢上升的输入上的噪音。

对于重置引脚vIL.= 0.1VCC. MAX and VIH. =0.9VCC. 闵。对于上述跟踪阈值,为0.1 * 4.7 = 0.47V和 0.9 * 4.7 = 4.23V,并给出持续时间〜1.5ms的低复位信号。

在下面的轨迹中,当DTR变高时,高压尖峰是 创建的峰值为9.12V!范围设置是:2V / div,5ms / div,高蓝 线为9.12V,黄色水平信号为4.7V:

arduino.通过DTR进行高度重置输入电容C5

笔记: Atmega328p可以处理该更高电压的原因 是,重置输入引脚被指定为最多13V的操作, 可能用于高压编程。你不能这样做 pins!

DTR低电平和DTR高之间的时间取决于编程所带来的时间 - 对于闪烁素描,它是1.9秒。

编程Arduino没有DTR

可以使用a编程裸板arduino 4连接 - 串行适配器,但仅当您使用手动重置按钮 目标板。正确的关键是要推动重置 在编程过程中正确的时间按钮。这有点 意味着你必须留意IDE和它在做什么!

或者:请记住购买具有A的USB适配器的串行适配器 突破引脚可用DTR信号 - 添加100nf电容器 在DTR和RESET引脚之间,以及从RESET引脚到的10K上拉 5V, and it's ready to go.

以下是将4-Connector USB的设置为连接到裸板Arduino的串行适配器:

裸板Arduino连接到USB到串行适配器

笔记: Atmega328p的引脚2是Rx,引脚3是Tx。

裸板编程失败

如果你不't按所有按下重置按钮,然后您将获得此IDE状态消息:

编程失败裸板Arduino

如果您超短了按钮,则编译器仍将编译和编程将失败。

如果您推出的按钮,您将获得编程失败消息。

裸板编程成功

但是,如果您推动并释放按钮"Uploading"文本出现在IDE中,然后您得到以下内容:

编程成功裸董事会Arduino

简单的裸板闪烁素描

您可以在裸板Arduino上尝试以下草图 (通过1k电阻连接到D13和地面 - 引脚19附接 ATmega328P):

// Simple slow-fast blink on built in LED Arduino D13.

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
   for (在t i=0;i<2;i++) {
      digitalWrite(LED_BUILTIN, HIGH);   // Turn the LED on.
      delay(200);
      digitalWrite(LED_BUILTIN, LOW);    // Turn the LED off.
      delay(200);
   }
   for (在t i=0;i<5;i++) {
      digitalWrite(LED_BUILTIN, HIGH);   // Turn the LED on.
      delay(50);
      digitalWrite(LED_BUILTIN, LOW);    // Turn the LED off.
      delay(50);
   }
   delay(400);
}





新的! Comments

让你说到你刚刚阅读的东西!留下下面的框中的评论。




隐私政策 | 接触 | 关于我

网站地图 | 使用条款



访问我们的Facebook页面:

   点击这里



最近的文章

  1. 如何使用ADS1115

    使用ADS1115精度16位ADC进行教程进行低功耗。

    阅读更多

  2. arduino.模拟输出...易模拟输出生成

    arduino.模拟输出:如何创建最精确的PWM模拟输出以及如何创建模拟PWM正弦波。

    阅读更多

  3. 数号和等效的快速宏。加快代码!

    了解DigitalWrite()的工作原理......现在使用17倍宏宏!

    阅读更多

  4. TCS230颜色传感芯片:如何运作以及如何使用它。

    如何使用TCS230(/ TCS3200)彩色检测器芯片并轻松将其添加到您的任何项目中。

    阅读更多

  5. 如何使用ADXL345进行运动感测等。

    使用ADXL345 Acellerometer,您可以检测到16G!您还可以了解如何使用它来点击检测等。

    阅读更多

  6. HMC5883L 3轴数字MAGENTOMTER如何运作

    HMC5883L - 如何制作数字罗盘,了解HMC5883L和QMC5883L之间的差异以及它们是否兼容。

    阅读更多



读者 Comments

"I wanted to thank
你这么好
对于所有信息
你已经提供了
你的网站's

高超极好的."

- 逃亡Potthath.

"This site really is
最好的和我最喜欢的。
我发现这里有很多很有用
项目和提示。"

- 米兰

Bursach.<at>gmail.com<

"Awesome site,
非常,非常容易和好
导航!"


-
镭_tr.<at>
wolf359.cjb.net.


学习微控制器

"Interested in
微控制器?"

注册
免费7天指南:

自由 GUIDE : CLICK HERE


"I am a newbie to PIC
我想说
 how great your
网站一直在为我。"


- 戴夫

de_scott.<at>bellsouth.net

"Your site is a great
和完美的工作。
恭喜。"


- SURESH.

IntegratedInfosys.<at>
Yahoo.com.

"I couldn't find the correct
要定义的词语
你的网页。

非常有用,揭开,
诚实明确。

非常感谢
你的时间和作品。
问候。"


- Anon.

回到顶部