0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样执行Atmel Studio中的编码与将代码部署到AVR微控制器之间的全面平滑集成

454398 来源:网络整理 作者:网络整理 2019-11-18 09:08 次阅读

步骤1:准备Arduino

怎样执行Atmel Studio中的编码与将代码部署到AVR微控制器之间的全面平滑集成

由于我们将Arduino Uno用作ISP程序员,因此我们首先必须上传一个草图,该草图将负责通过串行端口(USART)接收数据,并且通过它们的SPI端口将其正确输出到目标微控制器

因此,打开Arduino IDE,转到File》 Examples》 ArduinoISP。

打开草图后,在在文件顶部,对引脚名称和连接进行了一些注释。下一步将解决这些问题,但请确保它们与本教程匹配。

连接您的arduino并单击“上传”按钮。

第2步:将ArduinoISP编程器连接到AVR

对于第一步,您将需要以下材料:

》色的跳线(是的,很重要);

01红色LED

01黄色LED

02个不同颜色的LED,您可以选择(我们使用蓝色和白色)

01 10uF电解电容

04 200 ohm 1/8W电阻

这些其他材料取决于项目。在我们的情况下,我们将寻求一个使用8 MHz晶振和具有相同值的内部时钟的解决方案。因此:

01 8 MHz晶体

02 20 pF陶瓷电容器

根据图片将所有组件连接在一起。

请注意,对于每个接收到晶体引线之一的路径,都有一个陶瓷电容器将该路径连接到地面路径。

LED的阳极由他们的线索略有弯曲。注意白色LED,该白色LED将被加载的代码闪烁。由于软件的限制,不允许组件翻转,导致LED交叉。

电解电容器是极化的,因此请确保将较长的引线连接到RESET,而将较小的引线连接到RESET。连接到GND。

一个很好的建议是使跳线的颜色代码与图片中所示的颜色相同。这有助于进一步的硬件调试。

步骤3:集成Atmel Studio

将ArduinoISP草图加载到Arduino板上的Arduino IDE,这意味着您已经在计算机中安装了AVRDUDE。

AVRDUDE是一个命令行应用程序,可在计算机端进行固件加载过程。长话短说,AVRDUDE读取由编译和转换过程生成的.hex文件,并将其排队,以便通过串行端口正确输出。从那里,您的Uno板上的USB串行转换器(USB端口旁边的黑色正方形)从USB线读取它,将其发送到Arduino Uno板上的ATMEGA,最后通过SPI将其输出到目标微控制器。/p》

Atmel Studio最酷的功能之一就是对外部工具(如AVRDUDE本身)的支持。基本上,Atmel Studio对此开放了足够的定制空间,只需按一下按钮,您就可以执行完整的命令行程序调用,并将固件部署到目标微控制器。

足够了,

打开Atmel Studio 6。

转到“工具”》“外部工具”

在字段中填充,如图所示。在我的情况下,“命令”字段将使用您机器中的位置avrdude填充:C:\ Program Files(x86)\ Arduino \ hardware \ tools \ avr \ bin \ avrdude.exe

在“参数”字段中,填充以下行:

-U lfuse:w:0xe6:m -U hfuse:w:0xd9:m -e -v -patmega328p -carduino -PCOM2 -b19200 -D -Uflash:w:“ $(ProjectDir)Debug \ $(ItemFileName).hex”:i -C“ C:\ Program Files(x86)\ Arduino \ hardware \ tools \ avr \ etc \ avrdude.conf”

这些是AVRDUDE解释并转换为写操作的固件部署参数或信息

在这一行中,有三点需要更改:

您正在使用Arduino Uno的COM端口。为了检查,请去设备管理器》 COM&LPT端口,并且您应该看到列出的Arduino。

找到avrdude.conf的文件路径。一个简单的Windows搜索应该可以帮助您解决这个问题。

保险丝的位值,取决于您计划项目配置的方式。只需更改-U lfuse:w:0xe6:m中间的十六进制值和要配置的保险丝名称即可。

请注意带有.hex的行部分在中间。这是AVRDUDE将在其中查找文件的参数中的引用。 $(ProjectDir)和$(ItemFileName)是bash脚本变量,一旦调用&Deploy动作,就会根据您的项目名称和位置适当替换。

其他参数只是AVRDUDE关于目标的准则微控制器以及在何处可以找到固件文件和AVRDUDE配置文件。

基本上,这一行参数使AVRDUDE执行4个写操作:

第一个写低熔丝AVR

第二,高保险丝

第三项操作是完全擦除闪存,以避免写错误

,第四项是使用固件写入完整的闪存

有关参数的完整列表,请访问:https://asensar.com/blog/2013/programming-arduino-using-avrdude/

步骤4:编译并部署它!

所有配置一次完成,就该进行测试了!

将一个简单的LED闪烁固件写入目标微控制器,如

完成后,转到“工具”》“部署”。

您应该在输出窗口的图片上看到类似屏幕的内容。这是AVRDUDE的详细输出,告诉您它执行了什么。

首先显示一些部署信息,然后显示一些内存统计信息,这些信息对于大型项目确实非常有用,最后输出写操作摘要。在这里,您可以观察到前面提到的4个写入中的3个。这两个保险丝加上闪光灯。

完成后,您已经可以通过闪烁的LED看到代码在工作!恭喜!

此配置对于您随后的所有项目都是永久的,因此不必介意再次进行所有操作。您可能会在项目之间更改的一件事是必须在上一步的arguments字段上重新配置保险丝配置。

有关最佳保险丝计算器,请访问:http://www。 engbedded.com/fusecalc/

故障排除:

您可能会遇到AVRDUDE找不到或打开COM端口的情况。如果发生这种情况,请确保您没有打开Arduino IDE。这将导致AVRDUDE在连接到Arduino IDE时尝试声明COM端口。为解决此问题,请关闭Arduino IDE,将开发板与计算机断开连接,关闭Atmel Studio,重新连接开发板,然后重新启动Atmel Studio 6。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Arduino
    +关注

    关注

    188

    文章

    6468

    浏览量

    186940
  • AVR微控制器
    +关注

    关注

    0

    文章

    11

    浏览量

    6806
收藏 人收藏

    评论

    相关推荐

    嵌入式系统微控制器与微处理的区别

    它们在现代电子设备的核心作用,并探讨它们如何持续推动技术创新的未来。什么是嵌入式微控制器?嵌入式微控制器是设计用于在电子系统执行特定任务
    的头像 发表于 10-14 11:02 404次阅读
    嵌入式系统<b class='flag-5'>中</b><b class='flag-5'>微控制器</b>与微处理<b class='flag-5'>器</b>的区别

    ESP32 微控制器系列指南

    Systems 创建了功能强大且价格实惠的片上系统 (SoC) 设备, Wi-Fi、蓝牙和中央处理单元 (CPU) 集成一个微控制器封装
    的头像 发表于 10-02 18:21 2583次阅读
    ESP32 <b class='flag-5'>微控制器</b>系列指南

    微控制器内部的存储有哪些

    微控制器(MCU)内部的存储微控制器系统的重要组成部分,它负责存储程序代码、数据以及控制逻辑等信息。这些存储
    的头像 发表于 08-22 10:41 739次阅读

    微控制器的结构和应用

    微控制器(Microcontroller Unit,简称MCU)作为嵌入式系统的核心部件,其原理和应用在现代科技发展占据了举足轻重的地位。本文将从微控制器的原理、基本结构、工作原理、性能特点以及广泛的应用领域等方面进行详细阐述
    的头像 发表于 08-22 10:40 980次阅读

    伺服控制器编码器反馈数值为负数怎么回事

    伺服控制器编码器反馈数值为负数是一个相对复杂的问题,涉及多个方面。在这篇文章,我们将从以下几个方面进行详细分析:伺服控制器
    的头像 发表于 06-05 15:00 2320次阅读

    微控制器的定义和工作原理

    微控制器,作为现代电子技术的核心部件,其发展历程与电子技术的进步息息相关。自20世纪70年代中期诞生以来,微控制器凭借其高度集成化、低成本、高性能等优势,已广泛应用于电机
    的头像 发表于 05-24 17:17 1613次阅读

    如何CYKIT-028 TFT模块与Raspberry Pi和ESP32微控制器结合使用?

    我目前正在探索如何 CYKIT-028 TFT 模块与 Raspberry Pi 和 ESP32 微控制器结合使用。 不过,在选择集成开发环境(IDE)和使用 PSOC Creator 的必要性
    发表于 05-21 07:36

    8位Atmel 微控制器ATMEGA325V-8AU技术手册

    电子发烧友网站提供《8位Atmel 微控制器ATMEGA325V-8AU技术手册.pdf》资料免费下载
    发表于 05-06 14:59 0次下载

    嵌入式微控制器的自动代码生成

    然而,在工作,电气工程师经常被分配对嵌入式微控制器进行编程的任务,这是有充分理由的:他们在如何控制电力电子电路方面拥有经验,并且了解整个系统的要求。此外,他们对微控制器的片上外设(例
    发表于 05-03 17:33 443次阅读
    嵌入式<b class='flag-5'>微控制器</b>的自动<b class='flag-5'>代码</b>生成

    深入探讨微控制器的内部结构和工作机制

    中央处理单元(CPU): CPU是微控制器的核心部分,负责解析和执行程序的指令。它的性能直接影响整个微控制器的运行效率。
    发表于 04-10 14:41 1086次阅读
    深入探讨<b class='flag-5'>微控制器</b>的内部结构和工作机制

    针对 C2000™ 微控制器集成微控制器 (MCU) 电源解决方案数据表

    电子发烧友网站提供《针对 C2000™ 微控制器集成微控制器 (MCU) 电源解决方案数据表.pdf》资料免费下载
    发表于 03-04 14:12 0次下载
    针对 C2000™ <b class='flag-5'>微控制器</b>的<b class='flag-5'>集成</b><b class='flag-5'>微控制器</b> (MCU) 电源解决方案数据表

    Wdg_17_Scu与BSW集成,如果没有调试微控制器停止运行的原因?

    时,如果没有调试微控制器停止运行。 移除 JTAG 后,微控制器停止并无法重新启动。 相关详情: 我正在使用带有 Trace32 Powerview 的劳特巴赫调试
    发表于 01-23 08:27

    编码器脉冲信号丢失怎么处理

    通常使用计数微控制器来计量编码器的脉冲信号。可以通过编码器的输出信号接收到计数
    的头像 发表于 01-18 14:44 2476次阅读

    继电器光耦在微控制器的应用

    继电器是电子系统的重要组件,用作使用低功率信号控制高功率电路的开关。继电器与微控制器集成在各种应用变得越来越普遍。该领域的一个重大进步
    的头像 发表于 01-05 16:09 450次阅读
    继电器光耦在<b class='flag-5'>微控制器</b><b class='flag-5'>中</b>的应用

    Microchip AVR DD系列微控制器产品特性

    的功能集,包括多电压输入/输出(MVIO),非常·适合复杂应用,或在具有多个功率域的复杂设计作为配套微控制器(MCU)使用。
    的头像 发表于 12-28 09:38 698次阅读