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

    文章

    256

    浏览量

    35194
  • ATtiny
    +关注

    关注

    3

    文章

    128

    浏览量

    20243
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195932
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入剖析Z80C30/Z85C30 CMOS SCC串行通信控制器

    深入剖析Z80C30/Z85C30 CMOS SCC串行通信控制器 在当今的电子通信领域,串行通信控制器扮演着至关重要的角色。Zilog公司的Z80C30和Z85C30 CMOS SC
    的头像 发表于 11-26 16:22 529次阅读
    深入剖析Z80C30/Z<b class='flag-5'>85</b>C30 CMOS SCC<b class='flag-5'>串行</b>通信控制器

    ATtiny3224/3226/3227:高性能低功耗的tinyAVR® 2系列微控制器

    Microchip Technology ATtiny3224、ATtiny3226与ATtiny3227 8位微控制器 (MCU) 采用带硬件乘法器的AVR® CPU,运行速率高达20MHz,具有
    的头像 发表于 10-14 16:26 336次阅读
    <b class='flag-5'>ATtiny</b>3224/3226/3227:高性能低功耗的tinyAVR® 2系列微控制器

    DS875替代AD9914/AD9958/AD9102/DAC38J84/LMK04828

    AD9914ADI1GSPS90dBc16-bitSPI快速跳频 AD9958ADI500MSPS85dBc14-bit串行双通道正交输 DAC38J84
    发表于 08-08 09:53

    Texas Instruments TPS7C84-Q1低压差(LDO)稳压器数据手册

    Texas Instruments TPS7C84-Q1低压差(LDO)稳压器设计用于连接汽车应用中的电池。该稳压器的输入电压最高可达40V,输出电压固定在3.3V和5V。TPS7C84-Q1稳压器
    的头像 发表于 07-10 15:30 575次阅读
    Texas Instruments TPS7C<b class='flag-5'>84</b>-Q1低压差(LDO)稳压器数据手册

    Texas Instruments F29H85X-SOM-EVM MCU评估板数据手册

    设计。要评估F29H85X-SOM-EVM,需单独购买Texas Instruments XDS110ISO-EVM调试探头。
    的头像 发表于 07-04 11:17 624次阅读
    Texas Instruments F29H<b class='flag-5'>85</b>X-SOM-EVM MCU评估板数据手册

    SEGGER J-Link调试器支持Allegro微控制器

    SEGGER领先的J-Link调试器现在可用于Allegro MicroSystems MCU的程序下载和在线调试。有了J-Link的支持,结合Ozone多平台调试器,以及Flashe
    的头像 发表于 06-10 09:29 891次阅读

    STM32H745XIH6不能进行双核调试,CM4不能进行在线调试怎么解决?

    你好, 问题: STM32H745XIH6不能进行双核调试,CM4不能进行在线调试软件:KEIL 5.41调试器STLINK V3按照手册文档AN5286双核
    发表于 06-09 06:58

    智多晶XSBERT让高速串行接口调试化繁为简

    高速串行接口(如PCIe、以太网、HDMI等)是芯片设计的“高速公路”,但调试过程却常让人抓狂——信号质量差、误码率高、眼图模糊……耗时耗力的测试流程,是否让你无数次想对屏幕喊“太难了”?
    的头像 发表于 05-30 14:30 817次阅读
    智多晶XSBERT让高速<b class='flag-5'>串行</b>接口<b class='flag-5'>调试</b>化繁为简

    瑞萨Cortext-M85内核RA8系列单片机的串口输出实现方法

    串口是最常见的通信方式之一,也是单片机调试最常见的通信接口,也是现在的单片机必备的通信接口,目前(2024-05)最新、最强的Cortext-M85内核的RA8系列单片机也不例外。
    的头像 发表于 03-21 09:58 1546次阅读
    瑞萨Cortext-M<b class='flag-5'>85</b>内核RA8系列单片机的串口<b class='flag-5'>输出</b>实现方法

    STM32CubeIDE在线调试时,如何配置擦除Flash的部分Page?

    STM32CubeIDE在线调试时,如何配置擦除Flash的部分Page
    发表于 03-13 08:02

    STM32CubeIDE在线调试的时候如何让watch的变量实时刷新?

    STM32CubeIDE在线调试的时候如何让watch的变量实时刷新
    发表于 03-07 16:27

    技术资料#TPS7C84-Q1 汽车级150mA 40V 低压差线性稳压器,具有电源良好和宽输出电压范围

    TPS7C84-Q1 是一款宽输入、低压差稳压器 (LDO),支持 2.1V 至 40V 输入电压范围和高达 150mA 的负载电流。TPS7C84-Q1 具有固定和可调输出类型。固定输出
    的头像 发表于 02-26 16:06 1127次阅读
    技术资料#TPS7C<b class='flag-5'>84</b>-Q1 汽车级150mA 40V 低压差线性稳压器,具有电源良好和宽<b class='flag-5'>输出</b>电压范围

    DCDC 芯片无输出的问题的调试经验

    该文档聚焦于 DCDC 芯片无输出的问题,分享调试经验,帮助工程师解决实际电路调试中的难题,主要内容包括:*附件:【调试经验分享】DCDC芯片没有
    的头像 发表于 01-24 16:02 2175次阅读

    使用DAC38J84的config47和config48输出一个固定的数据时没有输出,为什么?

    我使用DAC38J84的config47和config48输出一个固定的数据时没有输出,我的配置如下: sifdac_ena =1;When asserted the DAC output
    发表于 01-03 07:09

    请问DAC39J84EVM板怎么多路输出

    DAC39J84EVM板子上有A到D四个输出,本人在使用时,通过TSW14J56EVM读取数据,软件配置只能实现四个输出端口中选择一个输出。 现在实际使用中需要做到多路
    发表于 12-27 08:09