步骤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浏览量
33844 -
ATtiny
+关注
关注
3文章
128浏览量
19600 -
Arduino
+关注
关注
188文章
6469浏览量
187037
发布评论请先 登录
相关推荐
评论