0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用串行輸出的ATtiny84/85在線調(diào)試

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-15 09:48 ? 次閱讀

步驟1:軟件概述

串行通信支持已添加到標(biāo)準(zhǔn)的Blink Arduino示例程序中使用SoftwareSerial類和分配用于接收/發(fā)送的兩個設(shè)備引腳。該程序使用Arduino IDE和Sparkfun Tiny AVR編程器從PC/筆記本電腦上傳到面包板ATtiny84(ATtiny85)。在執(zhí)行期間,程序會生成串行消息,并通過Adafruit USB至TTL串行電纜將其發(fā)送到PC上的COM窗口。將串行電纜插入PC的USB端口之一并創(chuàng)建該COM端口后,該端口會自動提供給IDE。

需要Arduino IDE編譯并啟動應(yīng)用程序草圖的上傳。還需要支持ATtiny84和ATtiny85的第三方IDE板程序包。我使用并推薦Spence Konde(又名Azzy博士)的ATTinyCore電路板定義包。我還看到了David Mellis對董事會支持包的引用。 Adafruit提供了有關(guān)向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 創(chuàng)建一個COM終端窗口并傳輸串行顯示消息

ATtiny84和/或ATtiny85 運行已編譯的代碼 LED 程序執(zhí)行驗證 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來接收和顯示串行消息則不需要。請參閱“其他”部分中的相關(guān)注釋。

步驟3:Tiny AVR編程器設(shè)置

Tiny AVR編程器具有SPI的現(xiàn)有引腳分配接口信號,但必須將6針接頭連接到輸出,以將信號擴展到面包板。

焊接后,請遵循Sparkfun連接指南安裝所需的USBtinyISP驅(qū)動程序( 之前,將Programmer插入USB端口。要完成Programmer設(shè)置,請將跳線連接到新焊接的接頭上。信號名稱和推薦的電線顏色為小號

請注意,Sparkfun編程器具有用于ATtiny85編程的板載插槽。該插座與兩側(cè)的4針訪問接頭一起允許為tiny85/45/25下載和制作原型。但是,此方法僅限于tinyx5設(shè)備。另一方面,SPI接口允許對大多數(shù)ATmega,AT90和ATtiny微控制器進行編程和在線測試/調(diào)試??梢栽诖颂幷业接嘘P(guān)SPI接口用于AVR微控制器編程的精彩討論。雖然這是一個供Equinox程序員使用的應(yīng)用筆記,但結(jié)論同樣適用于Tiny AVR程序員。

步驟4:ATtiny84的面包板布局

現(xiàn)在,用上面的ATtiny84的裝飾圖中所示的硬件組件填充面包板。為了減少將SPI或串行信號連接到錯誤的引腳的風(fēng)險,最好將組件和連接的方向與圖中的位置盡可能地接近。 (請注意,圖中列出的引腳號是Arduino引腳號,而不是設(shè)備物理引腳號。)

所有6條Tiny AVR SPI信號導(dǎo)線均已連接

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)

電源(紅色)不應(yīng)連接,因為由編程器供電

步驟5:程序說明

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

《表border =“ 1” cellpadding =“ 0” cellspacing =“ 0” class =“ users” style =“ border-width:1.0px; border-style:實體;邊框顏色:rgb(189,189,189);字體大?。?5.0%;“》 聲明 目的 #include 可以訪問軟件序列類功能 #如果已定義。..#else 本節(jié)分配設(shè)備特定的引腳號功能 #error 僅為tiny84/85定義引腳,如果不是其中之一,則停止編譯 軟件序列mySerial(rxPin,txPin); 實例化一個SoftwareSerial變量以用于串行輸出 mySerial .begin(9600); 以9600波特初始化/啟動SoftwareSerial通信 mySerial.println( text ); 將文本發(fā)送到串行輸出窗口以進行顯示

表示安裝已完成

要顯示cate Led剛剛打開

以指示Led剛剛關(guān)閉

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

// 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);“》 將板子設(shè)置為ATtiny84 將編程器設(shè)置為USBtinyIsp(ATTinyCore)

環(huán)境現(xiàn)已完成。請按照以下步驟運行程序:

將示例程序復(fù)制到Arduino IDE

為ATtiny84配置IDE(如上所示)并編譯

電路板:“ ATtiny24/44/84”

引腳映射:“順時針(如damellis核心)”

這是默認(rèn)設(shè)置,但無意更改它會產(chǎn)生災(zāi)難性后果

芯片:“ ATtiny84”

程序員:“ USBtinyISP(ATTinyCore)”

將插件插入將微型AVR編程器連接至PC USB端口

將Adafruit USB至TTL的串行電纜插入第二個USB端口

已創(chuàng)建一個COM端口,并將其添加到Arduino IDE端口列表中

選擇在步驟4中創(chuàng)建的端口(在我的系統(tǒng)上為COM6),然后啟動COM窗口

單擊以下位置的上傳程序(向右箭頭)按鈕Arduino IDE的頂部

程序?qū)⒈患虞d到微控制器并開始運行

led每隔2秒閃爍一次

串行輸出將消息寫入COM窗口

設(shè)置完成-SoftwareSerial示例

LED點亮

LED熄滅

…點亮,熄滅消息序列一致并重復(fù)閃爍

步驟7:ATtiny85的設(shè)置和運行程序

前面各節(jié)中有關(guān)ATtiny84的所有步驟也適用于ATtiny85。由于此時已經(jīng)設(shè)置了軟件環(huán)境,因此僅需要如上面的ATtiny85 Fritzing圖中所示配置硬件,在Arduino IDE中將處理器更改為ATtiny85,按照步驟4中的說明編譯并運行程序。/p》

第8步:其他

可以將Arduino UNO用作串行輸出串行電纜的連接:

將UNO的專用接收(引腳0)和發(fā)送(引腳1)引腳連接到微控制器的接收和發(fā)送引腳。請注意,連接是使用串行電纜時的接收-接收,發(fā)送-發(fā)送,而不是接收-發(fā)送,發(fā)送-接收。

在UNO上運行Arduino示例Minimum program(空設(shè)置;空循環(huán))

從IDE(我的筆記本電腦上的COM3)啟動COM窗口(已可用)

在tiny84/tiny85上上傳并運行串行輸出程序

串行輸出消息將出現(xiàn)在Arduino COM窗口中

通過從面包板上斷開SPI接口并將電源線從串行電纜連接到面包板電源導(dǎo)軌,串行電纜可以支持獨立運行。必須使用終端仿真器實用程序(如PuTTY)連接到串行電纜的關(guān)聯(lián)COM窗口,而不是Arduino IDE。 PuTTY配置概述如下。完整的解釋可以在這里找到。

下載PuTTY,然后雙擊關(guān)聯(lián)的圖標(biāo)以啟動PuTTY配置窗口。

通過單擊串行連接類型按鈕為串行輸出配置PuTTY

插入USB串行電纜會創(chuàng)建一個COM端口,該端口在Windows設(shè)備管理器à端口(COM和LPT)下列出

在PuTTY-》“串行線路”配置窗口中輸入COM端口的名稱

默認(rèn)波特率是9600,這對于該應(yīng)用程序是正確的

單擊在PuTTY配置窗口底部的“打開”按鈕上,以啟動串行輸出窗口

串行輸出消息將顯示在COM窗口中
責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 串行
    +關(guān)注

    關(guān)注

    0

    文章

    237

    瀏覽量

    33913
  • ATtiny
    +關(guān)注

    關(guān)注

    3

    文章

    128

    瀏覽量

    19611
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6477

    瀏覽量

    187511
收藏 人收藏

    評論

    相關(guān)推薦

    使用DAC38J84的config47和config48輸出一個固定的數(shù)據(jù)時沒有輸出,為什么?

    我使用DAC38J84的config47和config48輸出一個固定的數(shù)據(jù)時沒有輸出,我的配置如下: sifdac_ena =1;When asserted the DAC output
    發(fā)表于 01-03 07:09

    請問DAC39J84EVM板怎么多路輸出?

    DAC39J84EVM板子上有A到D四個輸出,本人在使用時,通過TSW14J56EVM讀取數(shù)據(jù),軟件配置只能實現(xiàn)四個輸出端口中選擇一個輸出。 現(xiàn)在實際使用中需要做到多路
    發(fā)表于 12-27 08:09

    調(diào)試sn65dsi84圖像顯示鋸齒,是什么原因?

    調(diào)試sn65dsi84,圖像顯示鋸齒,是什么原因?是soc dsi輸出參數(shù)的原因,還是dsi84寄存器設(shè)置問題?多謝
    發(fā)表于 12-02 06:07

    DAC38J84的NCO模式,可以調(diào)整AB輸出之間的相位嗎?

    DAC38J84的NCO模式,可以調(diào)整AB輸出之間的相位嗎? 如何調(diào)整A 和 B 之間的輸出的相位?
    發(fā)表于 11-15 06:01

    TPS84A20并聯(lián)操作

    電子發(fā)燒友網(wǎng)站提供《TPS84A20并聯(lián)操作.pdf》資料免費下載
    發(fā)表于 10-09 09:46 ?0次下載
    TPS<b class='flag-5'>84</b>A20并聯(lián)操作

    GD32用Embedded軟件debug在線調(diào)試失敗的原因?

    請問GD32用Embedded軟件debug在線調(diào)試失敗可能是什么原因?
    發(fā)表于 09-27 07:13

    MCUXpresso IDE下在線聯(lián)合調(diào)試雙核MCU工程的三種方法

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是MCUXpresso IDE下在線聯(lián)合調(diào)試i.MXRT1170雙核工程的三種方法。
    的頭像 發(fā)表于 08-08 15:18 ?642次閱讀
    MCUXpresso IDE下<b class='flag-5'>在線</b>聯(lián)合<b class='flag-5'>調(diào)試</b>雙核MCU工程的三種方法

    DS90UB927Q-Q1 5MHz至85MHz 24位彩色FPD-link III串行器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《DS90UB927Q-Q1 5MHz至85MHz 24位彩色FPD-link III串行器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 07-05 10:09 ?0次下載
    DS90UB927Q-Q1 5MHz至<b class='flag-5'>85</b>MHz 24位彩色FPD-link III<b class='flag-5'>串行</b>器數(shù)據(jù)表

    DS90UB925Q-Q1 5到85MHz 24位彩色FPD-link III串行器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《DS90UB925Q-Q1 5到85MHz 24位彩色FPD-link III串行器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 06-29 14:15 ?0次下載
    DS90UB925Q-Q1 5到<b class='flag-5'>85</b>MHz 24位彩色FPD-link III<b class='flag-5'>串行</b>器數(shù)據(jù)表

    tc377在線調(diào)試和離線調(diào)試的區(qū)別是什么?

    在使用icu模塊對輸入的pwm頻率和占空比回采時,發(fā)生了在線調(diào)試可以正?;夭桑x線調(diào)試則無法回采的問題,想請教一下,在線調(diào)試和離線
    發(fā)表于 05-21 07:20

    STM32 SBSFU的APP程序怎么配置在線調(diào)試?

    STM32SBSFU的APP程序怎么配置在線調(diào)試 目前SBSFU的APP程序都是串口燒錄,直接調(diào)試會有異常
    發(fā)表于 04-10 06:01

    CW-DAPLINK調(diào)試工具

    CW-DAPLINK是武漢芯源半導(dǎo)體有限公司專為CW32系列MCU的在線調(diào)試和編程工具而設(shè)計的。 它通過SWD接口和應(yīng)用單板的MCU進行在線通信。通過CW-DAPLINK的全速USB接口,CW32
    的頭像 發(fā)表于 04-09 17:16 ?823次閱讀
    CW-DAPLINK<b class='flag-5'>調(diào)試</b>工具

    8位串行輸入/串行輸出或并行輸出移位寄存器74LVC595A產(chǎn)品數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《8位串行輸入/串行輸出或并行輸出移位寄存器74LVC595A產(chǎn)品數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 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產(chǎn)品數(shù)據(jù)表

    AURIX Development Studio支持在線調(diào)試自制的最小系統(tǒng)嗎?

    AURIX Development Studio支持在線調(diào)試自制的最小系統(tǒng)嗎?看到的都是調(diào)試英飛凌官方的board,沒見到其他的。
    發(fā)表于 02-19 07:48

    開關(guān)電源調(diào)試內(nèi)容與四大調(diào)試方法分享

    開關(guān)電源調(diào)試是指根據(jù)設(shè)計的輸入輸出規(guī)格對其電器性能、保護功能等進行調(diào)試。調(diào)試開關(guān)電源主要調(diào)試低壓高壓工作狀態(tài)、
    的頭像 發(fā)表于 01-23 16:35 ?1585次閱讀