在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

454398 ? 來源:wv ? 2019-10-24 15:08 ? 次閱讀

步驟1:計數問題

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

使用ATtiny84或ATtiny85時,很可能使用自己設計的試驗板或電路。與Arduino Uno不同,標題上的插腳編號與Arduino IDE中的插腳編號匹配,您必須將“微小的東西”連接到實際的物理插腳。

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

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

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

步驟2:使用Arduino軟件出現毛刺

在具有Arduino v1.0 +的Mac上,如果輸入“ A1”的變量語句,則會出現錯誤“未聲明A1”,請參見下面的代碼。奇怪的是,在編程Arduino Uno時,模擬引腳引用為“ A1”,“ A2”等。

int AnalogPin1 = A1;//驗證

int AnalogPin1 = 1時,這將產生錯誤;//而是選擇A1,物理引腳7

int val = 0;

void loop()

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

這是令人困惑的事情;您還可以調出數字引腳1。

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

void setup()

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

void loop()

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

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

步驟3:使用SoftwareSerial進行通信

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

對于下面的ATtiny85示例,刻錄引導程序以使用8 MHz內部晶體。否則,晶體需要相同的串行引腳。

首先,必須通過在開始時使用#include將庫包含在草圖中。

#include“ SoftwareSerial.h”

然后為該函數創建變量并調用該函數。

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

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

SoftwareSerial mySerial(Rx,Tx);

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

void setup()

{pinMode(Rx,INPUT);

pinMode(Tx,OUTPUT);

mySerial。開始(9600);//以9600位/秒的速度發送串行數據}

調用串行打印語句時,添加“ my”。

void loop()

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

現在,打開串行監視器以查看來自‘tiny’的值。

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

步驟4:示例代碼。 ATtiny85_SoftwareSerial_Test

//對于ATtiny85打開LED和模擬讀取

//RESET |針1針8 | 5V

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

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

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

//對于SoftwareSerial,您必須設置為內部時鐘//以釋放物理引腳2和3。

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

//模擬值發送到串行監視器以進行顯示。

#include“ SoftwareSerial.h”

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

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

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

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

SoftwareSerial mySerial(Rx,Tx);

int val = 0;//用于存儲天線讀數的變量

void setup()

{

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

pinMode(Rx,INPUT);

pinMode(Tx,OUTPUT);

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

}

void loop()

{

digitalWrite(LED,HIGH) ;//打開LED燈

延遲(500);

digitalWrite(LED,LOW);//關閉

delay(500);

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

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

digitalWrite(LED,HIGH);//打開LED燈

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

delay(500);

}

步驟5:示例代碼,ATtiny84_SoftwareSerial

//對于ATtiny84,打開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

//對于SoftwareSerial,您可以使用外部時鐘,因為物理引腳2和3是免費的。

#include“ SoftwareSerial.h”

const內置LED = 5;//這是LED的物理引腳8

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

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

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

SoftwareSerial mySerial(Rx,Tx);

int val = 0;//用于存儲天線讀數的變量

void setup()

{

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

pinMode(Rx,INPUT);

pinMode(Tx,OUTPUT);

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

}

void loop()

{

digitalWrite(LED,HIGH) ;//打開LED燈

delay(500);

digitalWrite(LED,LOW);//關閉

delay(500);

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

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

digitalWrite(LED,HIGH);//打開LED燈

delay(10);

digitalWrite(LED,LOW);//關閉

delay(500);

}

第6步:電氣問題

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

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

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

如果有人知道這樣做的充分理由,請發布。

我還看到在Uno板上的復位和接地之間增加了一個電容器。我不確定這應該做什么。它可以使Uno板上的ATmega328P保持復位狀態,以便Uno不會使用串行線。我認為跳線可能會起作用。

如果您使用Arduino Uno橋接與計算機的串行通信,則需要加載一個不會干擾的草圖。如果串行監視器上出現奇怪的字符,則表明信號損壞。您只需將串行線隔離為“微小”即可。如果您使用的是Reactor Core編程器,請斷開串行跳線。

步驟7:其他

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    458

    文章

    51425

    瀏覽量

    428737
  • Arduino
    +關注

    關注

    188

    文章

    6478

    瀏覽量

    188273
收藏 人收藏

    評論

    相關推薦

    請問如何將DLP lightcrafter連接成為普通的投影儀使用?

    請問如何將DLP lightcrafter連接成為普通的投影儀使用? 通過mini HDMI連接到我的電腦后,電腦能顯示一個叫LCr 4500的屏幕,但是lightcrafter不能顯示屏幕內容,請問怎么操作,謝謝。
    發表于 02-21 09:43

    使用插件Excel連接到MySQL/MariaDB

    使用插件 Excel 連接到 MySQL/MariaDB 適用于 MySQL 的 Devart Excel 插件允許您將 Microsoft Excel 連接到 MySQL 或 MariaDB
    的頭像 發表于 01-20 12:38 ?190次閱讀
    使用插件<b class='flag-5'>將</b>Excel<b class='flag-5'>連接到</b>MySQL/MariaDB

    開源項目!基于 Arduino 的 MIDI 架子鼓

    : 使用四顆螺絲 Arduino 連接到墊子上,使其與頂部對齊,如圖所示。 第 10 步:安裝 Arduino 代碼 上傳代碼:
    發表于 11-25 12:00

    labview與西門子SMART通訊并上傳至MYSQL數據庫在什么情況下會導致PLC觸點抖動

    也會啪啪響,此時程序停止運行或拔掉連接PLC的網線,PLC就會恢復正常.... 此程序僅從PLC讀取M11.0-M12.7及VD浮點數約40個,
    發表于 10-22 17:41

    如何將LVDS/OLDI橋接到HDMI/DVI

    電子發燒友網站提供《如何將LVDS/OLDI橋接到HDMI/DVI.pdf》資料免費下載
    發表于 09-27 09:35 ?1次下載
    <b class='flag-5'>如何將</b>LVDS/OLDI橋<b class='flag-5'>接到</b>HDMI/DVI

    求助,如何將定制的2級引導加載程序上傳到指定的2級引導區?

    如何將定制的 2 級引導加載程序上傳到指定的 2 級引導區? 我的設備從 SPI 閃存啟動。 在閃存中,2 級引導
    發表于 09-26 06:54

    如何將ESP2866更新到正確的AT Command固件?

    /mega-wifi-r3-atmega2560-esp8266-flash-32mb-usb-ttl-ch340g-micro-usb.html 在通電時,它會創建一個 WiFi AP,而不會被告知這樣做(Arduino 草圖什么都不做)。 我猜它在ESP8266上安
    發表于 07-19 08:37

    使用ESP8266arduino連接到thinkspeak云,無法將其連接到任何網頁,為什么?

    我正在嘗試使用 ESP8266 arduino 連接到 thinkspeak 云。所以我能夠 esp 模塊連接到我的家庭 wifi,但
    發表于 07-16 07:43

    ESP8266為什么不響應Arduino

    arduino,其中從串行監視器接收的任何命令都會轉發到連接到 esp8266 的串行器(mega 有 4 個硬件串行端口)。然而,即使是一個簡單的“AT”命令也不會從 wifi 芯片產生響應。 請幫忙。我在網上搜索了很多
    發表于 07-16 06:39

    如何將GPIO16連接到CHIP_PD獲得深度睡眠模式?

    為了方便PCB布局(GPIO16 / PIN 8接近CHIP_PD / PIN 7),我們想知道是否可以GPIO16連接到nRESET / PIN 32以外的CHIP_PD,在退出深度睡眠模式
    發表于 07-08 06:34

    CYUSBKIT-003引導加載程序從主機接收固件后,引導加載程序是否會斷開與主機的連接重新識別?

    連接重新識別? 是引導加載程序還是下載的固件? 2.當控制權從引導程序轉移到固件時,固件是否
    發表于 05-29 06:42

    如何將Littlefs安裝到通過qspi連接到電路板的外部串行閃存上?

    一款 PSoC6 套件,并將 mtb-littlefs 子程序添加到我的項目和 XMC7100 套件中。 能行嗎? 如何將 Littlefs 安裝到通過 qspi 連接到電路板的外部串行閃存上? 我
    發表于 05-27 06:03

    電源芯片的工作原理 電源芯片怎么測好壞 電源芯片如何接到pcb板上

    等。本文詳細介紹電源芯片的工作原理、如何測試電源芯片的好壞以及如何將電源芯片連接到PCB板上。
    的頭像 發表于 03-28 15:37 ?8482次閱讀

    如何將TX模式設備MULTICH_CONNECT_PCB連接到RX模式設備?

    好的,正在查看 I2S 接口。 I2S 模塊具有 tx/rx 模式。 如何將 TX模式設備MULTICH_CONNECT_PCB連接到 RX 模式設備? 在 RX 模式下,有沒有時鐘輸入或幀輸入?
    發表于 03-04 07:53

    CAN如何將雙通道ADC連接到FX3控制器?

    我想用 FX3 控制器直接連接具有 250MSPS 的 14 位雙通道 ADC 的并行 LVDS 輸出。 從器件的數據表中可以清楚地看出,我 CAN ADC輸出連接到GPIFII接口的引腳
    發表于 02-27 06:25
    主站蜘蛛池模板: 亚洲男人天堂手机版 | 日本免费一区二区三区视频 | 午夜精品一区二区三区在线视 | 国内自拍露脸普通话对白在线 | 国产三级日本三级日产三级66 | 日本久久久 | 欧美日韩一区二区视频图片 | 操你啦网站 | 豆国产97在线 | 欧洲 | 天堂中文在线网 | 久青草国产观看在线视频 | 中文字幕一二三区 | 男女爱爱爽爽福利免费视频 | 免费我看视频在线观看 | 日韩免费一区 | 国产无套视频在线观看香蕉 | 午夜精品国产 | 美女黄色在线看 | 久久草在线视频播放 | 色色色色色色色色色色色色色色 | 亚色影视 | 色免费看 | 2021最新久久久视精品爱 | 国产精品久久久久久久久久妇女 | 手机在线观看视频你懂的 | 天天综合天天综合 | 一级毛片 在线播放 | 黄黄网| 四虎影酷 | 亚洲a毛片 | 成人免费无毒在线观看网站 | 一本到卡二卡三卡视频 | 天天干精品 | 视色4setv.com| 日本黄色电影在线 | 欧美成人午夜影院 | 色综合天天操 | 一道精品视频一区二区三区男同 | 国产特黄特色的大片观看免费视频 | 国内视频一区二区三区 | 亚洲 欧美 成人 |