步驟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瀏覽量
33834 -
ATtiny
+關注
關注
3文章
128瀏覽量
19595 -
Arduino
+關注
關注
188文章
6468瀏覽量
186952
發布評論請先 登錄
相關推薦
評論