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

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

3天内不再提示

使用串行输出的ATtiny84/85在线调试

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

步骤1:软件概述

串行通信支持已添加到标准的Blink Arduino示例程序中使用SoftwareSerial类和分配用于接收/发送的两个设备引脚。该程序使用Arduino IDE和Sparkfun Tiny AVR编程器从PC/笔记本电脑上传到面包板ATtiny84(ATtiny85)。在执行期间,程序会生成串行消息,并通过Adafruit USB至TTL串行电缆将其发送到PC上的COM窗口。将串行电缆插入PC的USB端口之一并创建该COM端口后,该端口会自动提供给IDE。

需要Arduino IDE编译并启动应用程序草图的上传。还需要支持ATtiny84和ATtiny85的第三方IDE板程序包。我使用并推荐Spence Konde(又名Azzy博士)的ATTinyCore电路板定义包。我还看到了David Mellis对董事会支持包的引用。 Adafruit提供了有关向IDE添加板支持包的直接指南,该指南倾向于添加Adafruit包,但通过代替令人眼花board乱的板包URL( http://drazzy.com/package_drazzy.com_index .json )代替Adafruit包URL。

步骤2:必需的硬件

《表border =“ 1 “ cellpadding =” 0“ cellspacing =” 0“ class =” users“ style =” border-width:1.0px; border-style:solid; border-color:rgb(189,189,189); font-size:85.0%;“》 Part 目的 小型AVR程序员

将编译后的代码上传到微控制器 USB至TTL串行电缆 1 创建一个COM终端窗口并传输串行显示消息

ATtiny84和/或ATtiny85 运行已编译的代码 LED 程序执行验证 330Ω电阻 保护LED免受烧毁 10KΩ电阻 用于RESET引脚的上拉电阻 USB 1脚延长电缆 使Programmer/微控制器连接更容易 半面包板 保存硬件组件和连接 6针公头(母头) 焊接到Tiny Programmer的SPI引脚上以扩展上传信号 7”母-公引线 连接Tiny Programmer将信号上传到微控制器;

red:VCC;黑色:GND;黄:RESET;紫色:MISO;绿色:MOSI;橙色:SCK

公对公,如果在上述步骤中使用母6针排针进行SPI引脚分配 3“公-公引线 扩展串行电缆信号,以便可以连接到微控制器;

黑-GND;白-RX;绿-TX

1 如果使用UNO来接收和显示串行消息则不需要。请参阅“其他”部分中的相关注释。

步骤3:Tiny AVR编程器设置

Tiny AVR编程器具有SPI的现有引脚分配接口信号,但必须将6针接头连接到输出,以将信号扩展到面包板。

焊接后,请遵循Sparkfun连接指南安装所需的USBtinyISP驱动程序( 之前,将Programmer插入USB端口。要完成Programmer设置,请将跳线连接到新焊接的接头上。信号名称和推荐的电线颜色为小号

请注意,Sparkfun编程器具有用于ATtiny85编程的板载插槽。该插座与两侧的4针访问接头一起允许为tiny85/45/25下载和制作原型。但是,此方法仅限于tinyx5设备。另一方面,SPI接口允许对大多数ATmega,AT90和ATtiny微控制器进行编程和在线测试/调试。可以在此处找到有关SPI接口用于AVR微控制器编程的精彩讨论。虽然这是一个供Equinox程序员使用的应用笔记,但结论同样适用于Tiny AVR程序员。

步骤4:ATtiny84的面包板布局

现在,用上面的ATtiny84的装饰图中所示的硬件组件填充面包板。为了减少将SPI或串行信号连接到错误的引脚的风险,最好将组件和连接的方向与图中的位置尽可能地接近。 (请注意,图中列出的引脚号是Arduino引脚号,而不是设备物理引脚号。)

所有6条Tiny AVR SPI信号导线均已连接

VCC(红色)到面包板电源线

MOSI(绿色)到tiny84针脚6(MOSI)

MISO(紫色)到tiny84针脚5(MISO)

重置(黄色)到tiny84引脚11(RESET)

SCK(橙色)到tiny84引脚4(SCK)

GND(黑色)到面包板接地

LED通过300欧姆电阻器连接到引脚4(SCK)

一个10K上拉电阻器连接电源到RESET

以确保上传后不会意外激活RESET。

已连接了USB到串行电缆上的四个信号中的三个:

接地(黑色)到面包板接地轨

传输(绿色)以接收分配给SoftwareSerial的引脚(pin9)

接收(白色)以传输分配给SoftwareSerial的引脚(针脚10)

电源(红色)不应连接,因为由编程器供电

步骤5:程序说明

串行输出示例程序(下面列出)基于Arduino Blink示例程序,并附加了对SoftwareSerial的支持。下表说明了其他串行支持语句:

《表border =“ 1” cellpadding =“ 0” cellspacing =“ 0” class =“ users” style =“ border-width:1.0px; border-style:实体;边框颜色:rgb(189,189,189);字体大小:85.0%;“》 声明 目的 #include 可以访问软件序列类功能 #如果已定义。..#else 本节分配设备特定的引脚号功能 #error 仅为tiny84/85定义引脚,如果不是其中之一,则停止编译 软件序列mySerial(rxPin,txPin); 实例化一个SoftwareSerial变量以用于串行输出 mySerial .begin(9600); 以9600波特初始化/启动SoftwareSerial通信 mySerial.println( text ); 将文本发送到串行输出窗口以进行显示

表示安装已完成

要显示cate Led刚刚打开

以指示Led刚刚关闭

//************************************************************************

// PART 1: Serial output setup and example output:

// 。 Modifies the example Blink code to illustrate serial output

// 。 Common code for ATtiny85 and ATtiny84

//************************************************************************

#include // Arduino SoftwareSerial class

// While the processing code is common, the pins used are device specific

#if defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny84A__)

#define ledPin 4 // Toggle to turn connected Led on/off

#define rxPin 9 // Pin used for Serial receive

#define txPin 10 // Pin used for Serial transmit

#elif defined(__AVR_ATtiny85__)

#define ledPin 1

#define rxPin 4

#define txPin 3

#else

#error Only ATiny84 and ATtiny85 are Supported by this Project

#endif

// Create instance of the Software Serial class specifying which device

// pins are to be used for receive and transmit

SoftwareSerial mySerial(rxPin, txPin);

//------------------------------------------------------------------------

// Initialize processing resources

//------------------------------------------------------------------------

void setup()

{

mySerial.begin(9600); // Start serial processing

delay(2000); // Give Serial class time to complete initialization.

// otherwise, 1st output likely missing or garbled

pinMode(ledPin, OUTPUT); // Configure led pin for OUTPUT

mySerial.println(“SETUP Complete - SoftwareSerial Example”);

}

//------------------------------------------------------------------------

// Toggle the led; document HIGH/LOW with serial output messages

//------------------------------------------------------------------------

void loop()

{

// Turn led on; display “it‘s on” message

digitalWrite(ledPin, HIGH);

mySerial.println(“LED ON”);

delay(2000);

// Turn led off; display “it’s off” message

digitalWrite(ledPin, LOW);

mySerial.println(“ LED OFF”);

delay(2000);

}

步骤6:运行程序

《表border =“ 1” cellpadding =“ 0” cellspacing =“ 0” class =“ users” style =“ border-width:1.0px; border -style:solid; border-color:rgb(189,189,189);“》 将板子设置为ATtiny84 将编程器设置为USBtinyIsp(ATTinyCore)

环境现已完成。请按照以下步骤运行程序:

将示例程序复制到Arduino IDE

为ATtiny84配置IDE(如上所示)并编译

电路板:“ ATtiny24/44/84”

引脚映射:“顺时针(如damellis核心)”

这是默认设置,但无意更改它会产生灾难性后果

芯片:“ ATtiny84”

程序员:“ USBtinyISP(ATTinyCore)”

将插件插入将微型AVR编程器连接至PC USB端口

将Adafruit USB至TTL的串行电缆插入第二个USB端口

已创建一个COM端口,并将其添加到Arduino IDE端口列表中

选择在步骤4中创建的端口(在我的系统上为COM6),然后启动COM窗口

单击以下位置的上传程序(向右箭头)按钮Arduino IDE的顶部

程序将被加载到微控制器并开始运行

led每隔2秒闪烁一次

串行输出将消息写入COM窗口

设置完成-SoftwareSerial示例

LED点亮

LED熄灭

…点亮,熄灭消息序列一致并重复闪烁

步骤7:ATtiny85的设置和运行程序

前面各节中有关ATtiny84的所有步骤也适用于ATtiny85。由于此时已经设置了软件环境,因此仅需要如上面的ATtiny85 Fritzing图中所示配置硬件,在Arduino IDE中将处理器更改为ATtiny85,按照步骤4中的说明编译并运行程序。/p》

第8步:其他

可以将Arduino UNO用作串行输出串行电缆的连接:

将UNO的专用接收(引脚0)和发送(引脚1)引脚连接到微控制器的接收和发送引脚。请注意,连接是使用串行电缆时的接收-接收,发送-发送,而不是接收-发送,发送-接收。

在UNO上运行Arduino示例Minimum program(空设置;空循环)

从IDE(我的笔记本电脑上的COM3)启动COM窗口(已可用)

在tiny84/tiny85上上传并运行串行输出程序

串行输出消息将出现在Arduino COM窗口中

通过从面包板上断开SPI接口并将电源线从串行电缆连接到面包板电源导轨,串行电缆可以支持独立运行。必须使用终端仿真器实用程序(如PuTTY)连接到串行电缆的关联COM窗口,而不是Arduino IDE。 PuTTY配置概述如下。完整的解释可以在这里找到。

下载PuTTY,然后双击关联的图标以启动PuTTY配置窗口。

通过单击串行连接类型按钮为串行输出配置PuTTY

插入USB串行电缆会创建一个COM端口,该端口在Windows设备管理器à端口(COM和LPT)下列出

在PuTTY-》“串行线路”配置窗口中输入COM端口的名称

默认波特率是9600,这对于该应用程序是正确的

单击在PuTTY配置窗口底部的“打开”按钮上,以启动串行输出窗口

串行输出消息将显示在COM窗口中
责任编辑:wv

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

    关注

    0

    文章

    237

    浏览量

    33749
  • ATtiny
    +关注

    关注

    3

    文章

    128

    浏览量

    19558
  • Arduino
    +关注

    关注

    187

    文章

    6455

    浏览量

    186377
收藏 人收藏

    评论

    相关推荐

    GD32用Embedded软件debug在线调试失败的原因?

    请问GD32用Embedded软件debug在线调试失败可能是什么原因?
    发表于 09-27 07:13

    MCUXpresso IDE下在线联合调试双核MCU工程的三种方法

    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是MCUXpresso IDE下在线联合调试i.MXRT1170双核工程的三种方法。
    的头像 发表于 08-08 15:18 382次阅读
    MCUXpresso IDE下<b class='flag-5'>在线</b>联合<b class='flag-5'>调试</b>双核MCU工程的三种方法

    DS90UB927Q-Q1 5MHz至85MHz 24位彩色FPD-link III串行器数据表

    电子发烧友网站提供《DS90UB927Q-Q1 5MHz至85MHz 24位彩色FPD-link III串行器数据表.pdf》资料免费下载
    发表于 07-05 10:09 0次下载
    DS90UB927Q-Q1 5MHz至<b class='flag-5'>85</b>MHz 24位彩色FPD-link III<b class='flag-5'>串行</b>器数据表

    DS90UB925Q-Q1 5到85MHz 24位彩色FPD-link III串行器数据表

    电子发烧友网站提供《DS90UB925Q-Q1 5到85MHz 24位彩色FPD-link III串行器数据表.pdf》资料免费下载
    发表于 06-29 14:15 0次下载
    DS90UB925Q-Q1 5到<b class='flag-5'>85</b>MHz 24位彩色FPD-link III<b class='flag-5'>串行</b>器数据表

    tc377在线调试和离线调试的区别是什么?

    在使用icu模块对输入的pwm频率和占空比回采时,发生了在线调试可以正常回采,离线调试则无法回采的问题,想请教一下,在线调试和离线
    发表于 05-21 07:20

    STM32 SBSFU的APP程序怎么配置在线调试

    STM32SBSFU的APP程序怎么配置在线调试 目前SBSFU的APP程序都是串口烧录,直接调试会有异常
    发表于 04-10 06:01

    8位串行输入/串行输出或并行输出移位寄存器74LVC595A产品数据表

    电子发烧友网站提供《8位串行输入/串行输出或并行输出移位寄存器74LVC595A产品数据表.pdf》资料免费下载
    发表于 02-25 09:22 0次下载
    8位<b class='flag-5'>串行</b>输入/<b class='flag-5'>串行</b><b class='flag-5'>输出</b>或并行<b class='flag-5'>输出</b>移位寄存器74LVC595A产品数据表

    AURIX Development Studio支持在线调试自制的最小系统吗?

    AURIX Development Studio支持在线调试自制的最小系统吗?看到的都是调试英飞凌官方的board,没见到其他的。
    发表于 02-19 07:48

    开关电源调试内容与四大调试方法分享

    开关电源调试是指根据设计的输入输出规格对其电器性能、保护功能等进行调试调试开关电源主要调试低压高压工作状态、
    的头像 发表于 01-23 16:35 1179次阅读

    OpenOCD在线下载调试报错的原因?

    由于我使用的是非官方的Flash,所以我需要重新编译OpenOCD,在编译完成过后,替换OpenOCD文件以后进行在线下载调试出现了如下的问题,我以为是我Flash命令的问题,知道我更换回原本的官方
    发表于 01-15 07:58

    串行线调试与JTAG有何区别?

    在基于ARM7的ADuC器件上,通过JTAG调试和下载到Flash。在AduCM360上,JTAG被串行线调试取代。 串行线调试与JTAG
    发表于 01-15 07:35

    MPLAB® PICkit™ 4 在线调试器用户指南

    电子发烧友网站提供《MPLAB® PICkit™ 4 在线调试器用户指南.pdf》资料免费下载
    发表于 01-07 10:57 6次下载

    ad7656串行输出代码

    ad7656串行输出代码是一段常见的嵌入式系统开发代码,用于控制外部设备进行串行通信。本文将详细介绍该代码的功能、结构、使用方法以及注意事项。 首先,了解ad7656是什么。 AD7656是一款16
    的头像 发表于 12-28 10:38 779次阅读

    keil5在线调试的时候能不能看到外设的时钟频率?

    使用keil4在线调试F1的时候可以看到时钟频率,今天第一次在KEIL5上用在线调试F4,但是没找到什么选项可以看到外设的时钟频率。这是请问下KEIL5
    发表于 11-08 08:25

    attiny连接电脑后无法烧录是怎么回事?

    attiny连接电脑后无法烧录
    发表于 10-31 07:34