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

电子说

1.3w人已加入

描述

步骤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编程器设置

Arduino

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的面包板布局

Arduino

现在,用上面的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

Arduino

Arduino

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

将示例程序复制到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的设置和运行程序

Arduino

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

第8步:其他

Arduino

Arduino

可以将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

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分