91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

如何將芯片連接到Arduino 以刻錄引導(dǎo)程序并上傳草圖

454398 ? 來(lái)源:wv ? 2019-10-24 15:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:計(jì)數(shù)問(wèn)題

如何將芯片連接到Arduino 以刻錄引導(dǎo)程序并上傳草圖

使用ATtiny84或ATtiny85時(shí),很可能使用自己設(shè)計(jì)的試驗(yàn)板或電路。與Arduino Uno不同,標(biāo)題上的插腳編號(hào)與Arduino IDE中的插腳編號(hào)匹配,您必須將“微小的東西”連接到實(shí)際的物理插腳。

軟件中的物理引腳和引腳編號(hào)非常不同。例如,在ATtiny84上,物理引腳1用于Vcc,而在軟件中,數(shù)字引腳1實(shí)際上是物理引腳12。您必須從上下文中了解正在討論的是哪個(gè)引腳(物理或軟件)(提示,大多數(shù)參考文獻(xiàn))。用于軟件引腳)。在解釋過(guò)程中,最好參考圖表。

為了增加混亂,在相同的物理位置,模擬引腳可以具有與數(shù)字引腳不同的數(shù)字。 ATtiny85就是這種情況。例如,物理引腳7既是數(shù)字引腳2,又是模擬引腳1。數(shù)字引腳1是物理引腳6,它沒(méi)有模擬輸入。 (我只希望芯片設(shè)計(jì)人員為這可能造成的混亂為公司節(jié)省很多錢。)

這種情況是由于芯片設(shè)計(jì)人員而不是Arduino軟件引起的。引腳號(hào)基于端口B和ADC的映射方式。引腳7是PB2(數(shù)字引腳2)和ADC1(模擬引腳1)。

步驟2:使用Arduino軟件出現(xiàn)毛刺

在具有Arduino v1.0 +的Mac上,如果輸入“ A1”的變量語(yǔ)句,則會(huì)出現(xiàn)錯(cuò)誤“未聲明A1”,請(qǐng)參見(jiàn)下面的代碼。奇怪的是,在編程Arduino Uno時(shí),模擬引腳引用為“ A1”,“ A2”等。

int AnalogPin1 = A1;//驗(yàn)證

int AnalogPin1 = 1時(shí),這將產(chǎn)生錯(cuò)誤;//而是選擇A1,物理引腳7

int val = 0;

void loop()

{val = AnalogRead(analogPin1) ;//這給出了物理引腳7上A1的模擬讀數(shù)。}

這是令人困惑的事情;您還可以調(diào)出數(shù)字引腳1。

int digitalPin1 = 1;//這是物理引腳6

void setup()

{pinMode(digitalPin1,OUTPUT);//將引腳1聲明為輸出}

void loop()

{digitalWrite(digitalPin1,HIGH);//開(kāi)啟}

如果您的Windows或Mac帶有Arduino 1.5.6,則可以改用“ A1”并減少它與數(shù)字pin1之間的混淆。但是,如果您習(xí)慣了另一種方法,它應(yīng)該可以繼續(xù)工作。

步驟3:使用SoftwareSerial進(jìn)行通信

假設(shè)您想使用ATtiny85從其模擬引腳發(fā)送讀數(shù),您將如何處理?它具有有限的串行通信。 Arduino附帶有一個(gè)軟件庫(kù),可讓您向草圖添加串行通信,即SoftwareSerial。它很容易添加,但是它確實(shí)占用程序空間,您必須聲明一些細(xì)節(jié)。

對(duì)于下面的ATtiny85示例,刻錄引導(dǎo)程序以使用8 MHz內(nèi)部晶體。否則,晶體需要相同的串行引腳。

首先,必須通過(guò)在開(kāi)始時(shí)使用#include將庫(kù)包含在草圖中。

#include“ SoftwareSerial.h”

然后為該函數(shù)創(chuàng)建變量并調(diào)用該函數(shù)。

const int Rx = 3;//這是物理引腳2

const int Tx = 4;//這是物理引腳3

SoftwareSerial mySerial(Rx,Tx);

在setup()中,輸入引腳是輸入還是輸出,并指定波特率

void setup()

{pinMode(Rx,INPUT);

pinMode(Tx,OUTPUT);

mySerial。開(kāi)始(9600);//以9600位/秒的速度發(fā)送串行數(shù)據(jù)}

調(diào)用串行打印語(yǔ)句時(shí),添加“ my”。

void loop()

{ mySerial.println(VAL);//將值發(fā)送到串行監(jiān)視器^ Cmd-M}

現(xiàn)在,打開(kāi)串行監(jiān)視器以查看來(lái)自‘tiny’的值。

相同的指令可以應(yīng)用于ATtiny84。使用該芯片,您可以擁有更多的引腳來(lái)支持外部時(shí)鐘和串行通信。如果這樣做,則需要為串行線選擇其他引腳。

步驟4:示例代碼。 ATtiny85_SoftwareSerial_Test

//對(duì)于ATtiny85打開(kāi)LED和模擬讀取

//RESET |針1針8 | 5V

//3/A3 |針2針7 | 2/A1

//4/A2 |引腳3引腳6 | 1/PWM

//GND |引腳4引腳5 | 0/PWM

//對(duì)于SoftwareSerial,您必須設(shè)置為內(nèi)部時(shí)鐘//以釋放物理引腳2和3。

//這將使物理引腳6上的LED閃爍,讀取引腳7上的模擬值,并將

//模擬值發(fā)送到串行監(jiān)視器以進(jìn)行顯示。

#include“ SoftwareSerial.h”

const int LED = 1;//這是LED的物理引腳6

const int ANTENNA = 2;//這是物理引腳7,將導(dǎo)線連接為天線

const int Rx = 3;//這是物理引腳2

const int Tx = 4;//這是物理引腳3

SoftwareSerial mySerial(Rx,Tx);

int val = 0;//用于存儲(chǔ)天線讀數(shù)的變量

void setup()

{

pinMode(LED,OUTPUT);//告訴Arduino LED是輸出

pinMode(Rx,INPUT);

pinMode(Tx,OUTPUT);

mySerial.begin(9600);//以9600位/秒的速度發(fā)送串行數(shù)據(jù)

}

void loop()

{

digitalWrite(LED,HIGH) ;//打開(kāi)LED燈

延遲(500);

digitalWrite(LED,LOW);//關(guān)閉

delay(500);

val = AnalogRead(ANTENNA);//閱讀天線

mySerial.println(val);//將值發(fā)送到串行監(jiān)視器^ Cmd-M

digitalWrite(LED,HIGH);//打開(kāi)LED燈

delay(10); digitalWrite(LED,LOW);//關(guān)閉

delay(500);

}

步驟5:示例代碼,ATtiny84_SoftwareSerial

//對(duì)于ATtiny84,打開(kāi)LED和模擬讀取

//5V |針1針14 | Gnd

//10/X1 |引腳2引腳13 | 0/A0

//9/X2 |引腳3引腳12 | 1/A1

//RESET |引腳4引腳11 | 2/A2

//8 |引腳5引腳10 | 3/A3

//A7/7 |引腳6引腳9 | 4/A4

//A6/6 |引腳7引腳8 | 5/A5

//對(duì)于SoftwareSerial,您可以使用外部時(shí)鐘,因?yàn)槲锢硪_2和3是免費(fèi)的。

#include“ SoftwareSerial.h”

const內(nèi)置LED = 5;//這是LED的物理引腳8

const int ANTENNA = 1;//這是物理引腳12,將導(dǎo)線連接為天線

const int Rx = 7;//這是物理引腳6

const int Tx = 6;//這是物理引腳7

SoftwareSerial mySerial(Rx,Tx);

int val = 0;//用于存儲(chǔ)天線讀數(shù)的變量

void setup()

{

pinMode(LED,OUTPUT);//告訴Arduino LED為輸出

pinMode(Rx,INPUT);

pinMode(Tx,OUTPUT);

mySerial.begin(9600);//以9600位/秒的速度發(fā)送串行數(shù)據(jù)

}

void loop()

{

digitalWrite(LED,HIGH) ;//打開(kāi)LED燈

delay(500);

digitalWrite(LED,LOW);//關(guān)閉

delay(500);

val = AnalogRead(ANTENNA);//讀取天線

mySerial.println(val);//將值發(fā)送到串行監(jiān)視器^ Cmd-M

digitalWrite(LED,HIGH);//打開(kāi)LED燈

delay(10);

digitalWrite(LED,LOW);//關(guān)閉

delay(500);

}

第6步:電氣問(wèn)題

我發(fā)現(xiàn)串行通信只能在公共電源和地上工作。實(shí)際上,這意味著從USB –串行通信設(shè)備獲取電源。 USB –串行通信設(shè)備可以是Arduino Uno板,獨(dú)立的USB –串行板或AVR編程器,例如Reactor Core三合一編程器。

接線就像您期望的那樣。 Arduino/USB設(shè)備的電源打開(kāi)了“微型”電源(引腳1表示“ 84”,引腳8表示“ 85”)。相同的連接方式也適用于接地(“ 84”為引腳14,“ 85”為引腳4)。您分配給Rx的引腳(示例代碼中的引腳3)連接到Arduino上的Rx線,引腳0/Rx。對(duì)分配給Tx的引腳(示例代碼中的引腳4)執(zhí)行相同的操作,將其連接到Arduino上的Tx線,引腳1/Tx。

我已閱讀有關(guān)通過(guò)串行連接串聯(lián)添加電阻的信息。 。我認(rèn)為這不是必需的。 FTDI沒(méi)有列出使用電阻器連接FT232RL USB/串行芯片的信息。從“小工具”到USB/串行設(shè)備,它們都應(yīng)該是TTL。如果要格外小心,可以添加200 – 2K歐姆電阻。

如果有人知道這樣做的充分理由,請(qǐng)發(fā)布。

我還看到在Uno板上的復(fù)位和接地之間增加了一個(gè)電容器。我不確定這應(yīng)該做什么。它可以使Uno板上的ATmega328P保持復(fù)位狀態(tài),以便Uno不會(huì)使用串行線。我認(rèn)為跳線可能會(huì)起作用。

如果您使用Arduino Uno橋接與計(jì)算機(jī)的串行通信,則需要加載一個(gè)不會(huì)干擾的草圖。如果串行監(jiān)視器上出現(xiàn)奇怪的字符,則表明信號(hào)損壞。您只需將串行線隔離為“微小”即可。如果您使用的是Reactor Core編程器,請(qǐng)斷開(kāi)串行跳線。

步驟7:其他

您是否必須使用內(nèi)部時(shí)鐘進(jìn)行串行通信?否,對(duì)于Attiny85,可以使用另外兩個(gè)引腳代替外部時(shí)鐘所需的引腳3和4。如果兩個(gè)引腳用于串行,兩個(gè)引腳用于外部晶振,那么除非禁用復(fù)位,否則只有一個(gè)空閑引腳。這就是為什么最好使用內(nèi)部時(shí)鐘的原因。它將釋放兩個(gè)引腳。

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

    關(guān)注

    463

    文章

    54083

    瀏覽量

    467047
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6526

    瀏覽量

    197083
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    請(qǐng)問(wèn)如何在 i.MX RT1050 上從多個(gè)起始地址運(yùn)行相同的引導(dǎo)加載程序?

    )。 約束和設(shè)置: Only 一個(gè)引導(dǎo)加載程序映像存在于 Flash 中。 我想從運(yùn)行時(shí)的 RAM選擇不同的起始地址。 引導(dǎo)加載程序是當(dāng)
    發(fā)表于 03-04 07:52

    USBISP/USBasp編程器給Atmega32U4下載Arduino bootloader引導(dǎo)程序

    對(duì)于新出廠的ATmega32U4芯片內(nèi)部是沒(méi)有arduino引導(dǎo)程序的,需要用戶預(yù)先下載bootloader后才能用串口下載自己的應(yīng)用程序.
    的頭像 發(fā)表于 01-31 14:38 ?739次閱讀
    USBISP/USBasp編程器給Atmega32U4下載<b class='flag-5'>Arduino</b> bootloader<b class='flag-5'>引導(dǎo)</b><b class='flag-5'>程序</b>

    如何將SD卡驅(qū)動(dòng)模塊掛載至外設(shè)總線

    我們的隊(duì)伍編號(hào)是CICC2962,這是我們第五次分享,接下來(lái)我分享一下如何將SD卡驅(qū)動(dòng)模塊掛載至外設(shè)總線上,并且發(fā)送一條讀指令。 這是外設(shè)總線上被保留的接口信號(hào),我們所寫的代碼與之相連接
    發(fā)表于 10-30 06:12

    使用 LinkBoy 程序導(dǎo)出為 C 語(yǔ)言代碼并燒錄至 Arduino ESP32 開(kāi)發(fā)板

    以下是使用 LinkBoy 程序導(dǎo)出為 C 語(yǔ)言代碼并燒錄至 Arduino ESP32 開(kāi)發(fā)板的詳細(xì)步驟指南: 一、準(zhǔn)備工作 ? 硬件需求: 項(xiàng)目 要求 開(kāi)發(fā)板 Arduino E
    發(fā)表于 10-16 12:41

    請(qǐng)問(wèn)編譯程序時(shí)如何將數(shù)據(jù)放入Flash固定地址?

    編譯程序時(shí)如何將數(shù)據(jù)放入Flash固定地址?
    發(fā)表于 08-29 06:40

    編譯程序時(shí)如何將數(shù)據(jù)放入Flash固定地址?

    編譯程序時(shí)如何將數(shù)據(jù)放入Flash固定地址?
    發(fā)表于 08-27 13:16

    如何用Arduino Nano/UNO R3開(kāi)發(fā)板給另一個(gè)Arduino IDE不能下載的Arduino Nano/UNO R3開(kāi)發(fā)板重新燒錄引導(dǎo)程序bootlaoder

    本文介紹了如何用能夠Arduino IDE下載的Arduino Nano/UNO R3開(kāi)發(fā)板給另一個(gè)Arduino IDE不能下載的Arduino Nano/UNO R3開(kāi)發(fā)板重新燒錄
    的頭像 發(fā)表于 08-08 20:16 ?3673次閱讀
    如何用<b class='flag-5'>Arduino</b> Nano/UNO R3開(kāi)發(fā)板給另一個(gè)<b class='flag-5'>Arduino</b> IDE不能下載的<b class='flag-5'>Arduino</b> Nano/UNO R3開(kāi)發(fā)板重新燒錄<b class='flag-5'>引導(dǎo)</b><b class='flag-5'>程序</b>bootlaoder

    CY7C65223D-32LTXI 2 個(gè) UART 連接到芯片,但設(shè)備沒(méi)有響應(yīng)是怎么回事?

    我有 CY7C65223D-32LTXI 芯片 2 個(gè) UART 連接到芯片,但設(shè)備沒(méi)有響應(yīng),RX1_LED 和 RX0_LED 一直亮著。我一直嘗試在 Windows 和 Li
    發(fā)表于 08-04 07:56

    CYBLE-416045_EVAL BLE如何連接到Windows?

    Bluetooth_LE_Hello_Sensor 來(lái)PSoC?作為外圍設(shè)備,但當(dāng)我嘗試連接時(shí)它失敗了。 失敗意味著:在 Windows 中配對(duì)完成并連接,但在 Windows 中 5 秒內(nèi)顯示斷開(kāi)
    發(fā)表于 07-24 07:03

    STM32+esp8266連接機(jī)智云,上傳溫濕度數(shù)據(jù)并控制繼電器開(kāi)關(guān)(平臺(tái)配置、代碼生成、代碼移植)

    本教程詳細(xì)介紹如何將STM32微控制器與ESP8266Wi-Fi模塊連接到機(jī)智云平臺(tái),實(shí)現(xiàn)溫濕度數(shù)據(jù)的上傳與繼電器的遠(yuǎn)程控制。通過(guò)此過(guò)程,您將學(xué)會(huì)如何配置機(jī)智云平臺(tái),燒錄ESP826
    的頭像 發(fā)表于 07-15 18:54 ?1134次閱讀
    STM32+esp8266<b class='flag-5'>連接</b>機(jī)智云,<b class='flag-5'>上傳</b>溫濕度數(shù)據(jù)并控制繼電器開(kāi)關(guān)(平臺(tái)配置、代碼生成、代碼移植)

    無(wú)法固件刻錄到PFlash的原因?怎么解決?

    。 據(jù)我所見(jiàn),加載到 RAM 部分工作正常,當(dāng)它開(kāi)始閃存操作時(shí),設(shè)備會(huì)凍結(jié)并需要電源循環(huán),并且通常需要通過(guò) miniwiggler 重新編程。刻錄機(jī)功能通過(guò)鏈接腳本存儲(chǔ)在 RAM 中,允許成功編程
    發(fā)表于 07-15 07:39

    是否可以保持與 SOM 的數(shù)據(jù)連接并將連接到 CYPD3177 的 CC 線路同時(shí)設(shè)置 USB 電壓?

    我有一個(gè)應(yīng)用程序,我必須將數(shù)據(jù)線連接到 SOM 單元進(jìn)行 USB 高速連接,然后 CC 線路連接到
    發(fā)表于 05-27 08:04

    求助,關(guān)于FX3 ROM引導(dǎo)加載程序系統(tǒng)重啟問(wèn)題求解

    我們正在圍繞 FX3 進(jìn)行設(shè)計(jì),在此過(guò)程中,我們發(fā)現(xiàn)我們的電路板和使用開(kāi)發(fā)板(CYUSB3KIT-003)時(shí)都存在問(wèn)題。 當(dāng)我們 FX3 開(kāi)發(fā)板連接到系統(tǒng)并執(zhí)行系統(tǒng)重啟時(shí),就會(huì)出現(xiàn)此問(wèn)題,一旦內(nèi)核
    發(fā)表于 05-13 06:06

    如何使用EZUSB-CX3實(shí)現(xiàn)雙階段引導(dǎo)加載程序?

    我對(duì)如何使用 EZUSB-CX3 實(shí)現(xiàn)雙階段引導(dǎo)加載程序有點(diǎn)困惑。我想要的是,當(dāng)有新的 cx3 映像時(shí),我希望能夠從 cx3 固件引導(dǎo)到第二階段引導(dǎo)加載
    發(fā)表于 05-12 08:26

    S32K322能否V25 (2.5V) 連接到VREFH獲得精密ADC基準(zhǔn)電壓?

    我能否 V25 (2.5V) 連接到 VREFH 獲得精密 ADC 基準(zhǔn)電壓?
    發(fā)表于 04-07 06:37