42AVR單片機(jī)的主要內(nèi)部資源與應(yīng)用_第1頁
42AVR單片機(jī)的主要內(nèi)部資源與應(yīng)用_第2頁
42AVR單片機(jī)的主要內(nèi)部資源與應(yīng)用_第3頁
42AVR單片機(jī)的主要內(nèi)部資源與應(yīng)用_第4頁
42AVR單片機(jī)的主要內(nèi)部資源與應(yīng)用_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

§4.2AVR單片機(jī)的SPI接口一、SPI接口:串行外設(shè)接口SPI允許ATmega16和外設(shè)或其他AVR器件進(jìn)展高速的同步數(shù)據(jù)傳輸。1、ATmega16SPI的特點(diǎn)如下:全雙工,3線同步數(shù)據(jù)傳輸,SS#,SCK,MISO,MOSI;主機(jī)或從機(jī)操作LSB首先發(fā)送或MSB首先發(fā)送7種可編程的比特率傳輸終了中斷標(biāo)志寫碰撞標(biāo)志檢測可以從閑置方式喚醒2、SPI任務(wù)過程主機(jī)和從機(jī)之間的SPI銜接如以下圖所示。系統(tǒng)包括兩個移位存放器和一個主機(jī)時鐘發(fā)生器。經(jīng)過將需求的從機(jī)的SS#引腳拉低,主機(jī)啟動一次通訊過程。主機(jī)和從機(jī)將需求發(fā)送的數(shù)據(jù)放入相應(yīng)的移位存放器。主機(jī)在SCK引腳上產(chǎn)生時鐘脈沖以交換數(shù)據(jù)。主機(jī)的數(shù)據(jù)從主機(jī)的MOSI移出,從從機(jī)的MOSI移入;從機(jī)的數(shù)據(jù)從從機(jī)的MISO移出,從主機(jī)的MISO移入。主機(jī)經(jīng)過將從機(jī)的SS#拉高實(shí)現(xiàn)與從機(jī)的同步。配置為SPI主機(jī)時,SPI接口不自動控制SS#引腳,必需由用戶軟件來處置。對SPI數(shù)據(jù)存放器寫入數(shù)據(jù)即啟動SPI時鐘,將8比特的數(shù)據(jù)移入從機(jī)。傳輸終了后SPI時鐘停頓,傳輸終了標(biāo)志SPIF置位。假設(shè)此時SPCR存放器的SPI中斷使能位SPIE置位,中斷就會發(fā)生。主機(jī)可以繼續(xù)往SPDR寫入數(shù)據(jù)以移位到從機(jī)中去,或者是將從機(jī)的SS#拉高以闡明數(shù)據(jù)包發(fā)送完成。最后進(jìn)來的數(shù)據(jù)將不斷保管于緩沖存放器里。配置為從機(jī)時,只需SS#為高,SPI接口將不斷堅(jiān)持睡眠形狀,并堅(jiān)持MISO為三態(tài)。在這個形狀下軟件可以更新SPI數(shù)據(jù)存放器SPDR的內(nèi)容。即使此時SCK引腳有輸入時鐘,SPDR的數(shù)據(jù)也不會移出,直至SS被拉低。一個字節(jié)完全移出之后,傳輸終了標(biāo)志SPIF置位。假設(shè)此時SPCR存放器的SPI中斷使能位SPIE置位,就會產(chǎn)生中斷懇求。在讀取移入的數(shù)據(jù)之前從機(jī)可以繼續(xù)往SPDR寫入數(shù)據(jù)。最后進(jìn)來的數(shù)據(jù)將不斷保管于緩沖存放器里。SPI系統(tǒng)的發(fā)送方向只需一個緩沖器,而在接納方向有兩個緩沖器。也就是說,在發(fā)送時一定要等到移位過程全部終了后才干對SPI數(shù)據(jù)存放器執(zhí)行寫操作。而在接納數(shù)據(jù)時,需求在下一個字符移位過程終了之前經(jīng)過訪問SPI數(shù)據(jù)存放器讀取當(dāng)前接納到的字符。否那么第一個字節(jié)將喪失。任務(wù)于SPI從機(jī)方式時,控制邏輯對SCK引腳的輸入信號進(jìn)展采樣。為了保證對時鐘信號的正確采樣,SPI時鐘不能超越fosc/4。SPI使能后,MOSI、MISO、SCK和SS#引腳的數(shù)據(jù)方向?qū)凑障卤硭咀詣舆M(jìn)展配置。3、SPI控制存放器-SPCR〔1〕SPIE:使能SPI中斷。置位后,只需SPI形狀存放器SPSR的SPIF位和形狀存放器SREG的全局中斷使能位I置位,就會引發(fā)SPI中斷。(2)SPE:使能SPI。SPE置位將使能SPI。進(jìn)展任何SPI操作之前必需置位SPE。(3)DORD:數(shù)據(jù)次序。DORD置位時數(shù)據(jù)的LSB首先發(fā)送;否那么數(shù)據(jù)的MSB首先發(fā)送。(4)MSTR:主/從選擇。MSTR置位時選擇主機(jī)方式,否那么為從機(jī)。假設(shè)MSTR為“1〞,SS#配置為輸入,但被拉低,那么MSTR被清零,SPSR的SPIF置位。用戶必需重新設(shè)置MSTR進(jìn)入主機(jī)方式。所以,主機(jī)方式下,常用主機(jī)的SS#控制從機(jī)的SS#.CPOL:時鐘極性。CPOL=0,起始沿:上升沿,終了沿:下降沿;CPOL=1,起始沿:下升沿,終了沿:上降沿;CPHA:時鐘相位。SPR1,SPR0:SPI時鐘速率選擇。確定主機(jī)的SCK速率,對從機(jī)沒有影響。4、SPI形狀存放器-SPSRSPIF:SPI中斷標(biāo)志。串行發(fā)送終了后,SPIF置位。。進(jìn)入中斷效力程序后SPIF自動清零。或者可以經(jīng)過先讀SPSR,緊接著訪問SPDR來對SPIF清零。WCOL:寫碰撞標(biāo)志。在發(fā)送當(dāng)中對SPI數(shù)據(jù)存放器SPDR寫數(shù)據(jù)將置位WCOL。WCOL可以經(jīng)過先讀SPSR,緊接著訪問SPDR來清零。SPI2X:SPI倍速。置位后SPI的速度加倍。假設(shè)為主機(jī)那么SCK頻率可達(dá)CPU頻率的一半。假設(shè)為從機(jī),最高只能保證fosc/4。數(shù)據(jù)存放器-SPDR〔八位〕:讀/寫存放器,用來在存放器文件和SPI移位存放器之間傳輸數(shù)據(jù)。寫存放器將啟動數(shù)據(jù)傳輸,讀存放器將讀取存放器的接納緩沖器。數(shù)據(jù)方式:相對于串行數(shù)據(jù),SCK的相位CPHA和極性CPOL有4種組合。每一位數(shù)據(jù)的移出和移入發(fā)生于SCK不同的信號跳變沿,以保證有足夠的時間使數(shù)據(jù)穩(wěn)定。設(shè)置設(shè)置設(shè)置SPI主機(jī)方式下的寫、讀數(shù)據(jù)程序:.include"m16def.inc".org$00rjmpmain.org$20main:ldir16,high(ramend)outsph,r16ldir16,low(ramend)outspl,r16clisbiddrb,4;ss#_pb4sbiddrb,5;mosi_pb5sbiddrb,7;sck_pb7cbiddrb,6;miso_pb6cbiportb,4sbiportb,6ldir16,0outspsr,r16;SPI速度不倍增ldir16,0b01010001;0x51,or$51outspcr,r16

ldir16,0b10101010;0x55or$55,SPI要發(fā)送的數(shù)據(jù)outspdr,r16

loop:inr16,spsr;讀取發(fā)送形狀sbrsr16,7;判別發(fā)送能否完成rjmploop

inr16,spdrloop1:sbrsr16,7;判別接納能否完成rjmploop1inr16,spdr;讀取數(shù)據(jù)wait:rjmpwait二、16位定時/計(jì)數(shù)器1〔定時(事件管理)、波形產(chǎn)生和信號丈量〕1特點(diǎn):真正的16位設(shè)計(jì)(即允許16位的PWM)2個獨(dú)立的輸出比較單元雙緩沖的輸出比較存放器一個輸入捕捉單元輸入捕捉噪聲抑制器比較匹配發(fā)生時去除存放器(自動重載)無干擾脈沖,相位正確的PWM可變的PWM周期頻率發(fā)生器外部事件計(jì)數(shù)器4個獨(dú)立的中斷源(TOV1、OCF1A、OCF1B與ICF1)2、C/T主要功能引見〔1〕T/C時鐘源:可以來自內(nèi)部,也可來自外部,由位于T/C控制存放器B(TCCR1B)的時鐘選擇位(CS12:0)決議?!?〕計(jì)數(shù)器單元:16位T/C的主要部分是可編程的16位雙向計(jì)數(shù)器單元。〔3〕輸入捕捉單元:可用來捕獲外部事件,并為其賦予時間標(biāo)志以闡明此時間的發(fā)生時辰。外部事件發(fā)生的觸發(fā)信號由引腳ICP1輸入,也可經(jīng)過模擬比較器單元來實(shí)現(xiàn)。時間標(biāo)志可用來計(jì)算頻率、占空比及信號的其它特征,以及為事件創(chuàng)建日志?!?〕輸入捕捉觸發(fā)源:輸入捕捉單元的主要觸發(fā)源是ICP1。T/C1還可用模擬比較輸出作為輸入捕捉單元的觸發(fā)源。用戶必需經(jīng)過設(shè)置模擬比較控制與形狀存放器ACSR的模擬比較輸入捕捉位ACIC來做到這一點(diǎn)。要留意的是,改動觸發(fā)源有能夠呵斥一次輸入捕捉。因此在改動觸發(fā)源后必需對輸入捕捉標(biāo)志執(zhí)行一次清零操作以防止出現(xiàn)錯誤的結(jié)果?!?〕噪聲抑制器:經(jīng)過一個簡單的數(shù)字濾波方案提高系統(tǒng)抗噪性。它對輸入觸發(fā)信號進(jìn)展4次采樣。只需當(dāng)4次采樣值相等時其輸出才會送入邊沿檢測器。〔6〕輸出比較單元:16位比較器繼續(xù)比較TCNT1與OCR1x的內(nèi)容,一旦發(fā)現(xiàn)它們相等,比較器立刻產(chǎn)生一個匹配信號。然后OCF1x在下一個定時器時鐘置位。假設(shè)此時OCIE1x=1,OCF1x置位將引發(fā)輸出比較中斷。中斷執(zhí)行時OCF1x標(biāo)志自動清零,或者經(jīng)過軟件在其相應(yīng)的I/O位置寫入邏輯"1〞也可以清零。根據(jù)WGM13:0與COM1x1:0的不同設(shè)置,波形發(fā)生器用匹配信號生成不同的波形。波形發(fā)生器利用TOP和BOTTOM信號處置在某些方式下對極值的操作。輸出比較單元A的一個特質(zhì)是定義T/C的TOP值(即計(jì)數(shù)器的分辨率)。此外,TOP值還用來定義經(jīng)過波形發(fā)生器產(chǎn)生的波形的周期。〔7〕強(qiáng)迫輸出比較:任務(wù)于非PWM方式時,可以經(jīng)過對強(qiáng)迫輸出比較位FOC1x寫〞1〞的方式來產(chǎn)生比較匹配。強(qiáng)迫比較匹配不會置位OCF1x標(biāo)志,也不會重載/清零定時器,但是OC1x引腳將被更新,好象真的發(fā)生了比較匹配一樣(COMx1:0決議OC1x是置位、清零,還是交替變化)?!?〕寫TCNT1操作阻止比較匹配:CPU對TCNT1存放器的寫操作會阻止比較匹配的發(fā)生。這個特性可以用來將OCR1x初始化為與TCNT1一樣的數(shù)值而不觸發(fā)中斷。〔9〕比較匹配輸出單元:比較匹配方式控制位COM1x1:0具有雙重功能。波形發(fā)生器利用COM1x1:0來確定下一次比較匹配發(fā)生時的輸出比較OC1x形狀;COM1x1:0還控制OC1x引腳輸出的來源?!?0〕比較輸出方式和波形產(chǎn)生:波形發(fā)生器利用COM1x1:0的方法在普通方式、CTC方式和PWM方式下有所區(qū)別。對于一切的方式,設(shè)置COM1x1:0=0闡明比較匹配發(fā)生時波形發(fā)生器不會操作OC1x存放器?!?1〕任務(wù)方式任務(wù)方式:-T/C和輸出比較引腳的行為-由波形發(fā)生方式(WGM13:0)及比較輸出方式(COM1x1:0)的控制位決議。比較輸出方式對計(jì)數(shù)序列沒有影響,而波形產(chǎn)生方式對計(jì)數(shù)序列那么有影響。COM1x1:0控制PWM輸出能否為反極性。非PWM方式時COM1x1:0控制輸出能否應(yīng)該在比較匹配發(fā)生時置位、清零,或是電平取反?!?2〕普通方式:為最簡單的任務(wù)方式。在此方式下計(jì)數(shù)器不停地累加。計(jì)到最大值后(TOP=0xFFFF)由于數(shù)值溢出計(jì)數(shù)器簡單地前往到最小值0x0000重新開場。在TCNT1為零的同一個定時器時鐘里T/C溢出標(biāo)志TOV1置位。此時TOV1有點(diǎn)象第17位,只是只能置位,不會清零。但由于定時器中斷效力程序可以自動清零TOV1,因此可以經(jīng)過軟件提高定時器的分辨率。在普通方式下沒有什么需求特殊思索的,用戶可以隨時寫入新的計(jì)數(shù)器數(shù)值?!?3〕CTC(比較匹配時清零定時器)方式:在CTC方式里OCR1A或ICR1存放器用于調(diào)理計(jì)數(shù)器的分辨率。當(dāng)計(jì)數(shù)器的數(shù)值TCNT1等于OCR1A(WGM13:0=4)或等于ICR1(WGM13:0=12)時計(jì)數(shù)器清零。OCR1A或ICR1定義了計(jì)數(shù)器的TOP值,亦即計(jì)數(shù)器的分辨率。這個方式使得用戶可以很容易地控制比較匹配輸出的頻率,也簡化了外部事件計(jì)數(shù)的操作。〔14〕快速PWM方式:可用來產(chǎn)生高頻的PWM波形。快速PWM方式與其他PWM方式的不同之處是其單邊斜坡任務(wù)方式。計(jì)數(shù)器從BOTTOM計(jì)到TOP,然后立刻回到BOTTOM重新開場。對于普通的比較輸出方式,輸出比較引腳OC1x在TCNT1與OCR1x匹配時置位,在TOP時清零;對于反向比較輸出方式,OCR1x的動作正好相反。由于運(yùn)用了單邊斜坡方式,快速PWM方式的任務(wù)頻率比運(yùn)用雙斜坡的相位修正PWM方式高一倍。此高頻操作特性使得快速PWM方式非常適宜于功率調(diào)理,整流和DAC運(yùn)用。高頻可以減小外部元器件(電感,電容)的物理尺寸,從而降低系統(tǒng)本錢?!?5〕輸出的PWM頻率可以經(jīng)過如下公式計(jì)算得到:變量N代表分頻因子(1、8、64、256或1024)。3.定時器/計(jì)數(shù)器1存放器的闡明〔1〕控制存放器A-TCCR1ABit7:6–COM1A1:0:通道A的比較輸出方式Bit5:4–COM1B1:0:通道B的比較輸出方式COM1A1:0與COM1B1:0分別控制OC1A與OC1B形狀。假設(shè)COM1A1:0(COM1B1:0)的一位或兩位被寫入"1〞,OC1A(OC1B)輸出功能將取代I/O端口功能。此時OC1A(OC1B)相應(yīng)的輸出引腳數(shù)據(jù)方向控制必需置位以使能輸出驅(qū)動器。OC1A(OC1B)與物理引腳相連時,COM1x1:0的功能由WGM13:0的設(shè)置決議。Bit3–FOC1A:通道A強(qiáng)迫輸出比較Bit2–FOC1B:通道B強(qiáng)迫輸出比較FOC1A/FOC1B只需當(dāng)WGM13:0指定為非PWM方式時被激活。為與未來器件兼容,任務(wù)在PWM方式下對TCCR1A寫入時,這兩位必需清零。當(dāng)FOC1A/FOC1B位置1,立刻強(qiáng)迫波形產(chǎn)生單元進(jìn)展比較匹配。COM1x1:0的設(shè)置改動OC1A/OC1B的輸出。留意FOC1A/FOC1B位作為選通訊號。COM1x1:0位的值決議強(qiáng)迫比較的效果。在CTC方式下運(yùn)用OCR1A作為TOP值,F(xiàn)OC1A/FOC1B選通即不會產(chǎn)生中斷也不好去除定時器。FOC1A/FOC1B位總是讀為0。Bit1:0–WGM11:0:波形發(fā)生方式這兩位與位于TCCR1B存放器的WGM13:2相結(jié)合,用于控制計(jì)數(shù)器的計(jì)數(shù)序列——計(jì)數(shù)器計(jì)數(shù)的上限值和確定波形發(fā)生器的任務(wù)方式(見Table47)。T/C支持的任務(wù)方式有:普通方式(計(jì)數(shù)器),比較匹配時清零定時器(CTC)方式,及三種脈寬調(diào)制(PWM)方式。控制存放器TCCR1B:Bit7–ICNC1:入捕捉噪聲抑制器。置位將使能輸入捕捉噪聲抑制功能。此時外部引腳ICP1的輸入被濾波。其作用是從ICP1引腳延續(xù)進(jìn)展4次采樣。假設(shè)4個采樣值都相等,那么信號送入邊沿檢測器。因此使能該功能使得輸入捕捉被延遲了4個時鐘周期。Bit6–ICES1:輸入捕捉觸發(fā)沿選擇。該位選擇運(yùn)用ICP1上的哪個邊沿觸發(fā)捕獲事件。ICES為"0〞選擇的是下降沿觸發(fā)輸入捕捉;ICES1為"1〞選擇的是邏輯電平的上升沿觸發(fā)輸入捕捉。按照ICES1的設(shè)置捕獲到一個事件后,計(jì)數(shù)器的數(shù)值被復(fù)制到ICR1存放器。捕獲事件還會置為ICF1。假設(shè)此時中斷使能,輸入捕捉事件即被觸發(fā)。當(dāng)ICR1用作TOP值(見TCCR1A與TCCR1B存放器中WGM13:0位的描畫)時,ICP1與輸入捕捉功能脫開,從而輸入捕捉功能被禁用。Bit5–保管位。為保證與未來器件的兼容性,寫TCCR1B時,該位必需寫入"0〞。Bit4:3–WGM13:2:波形發(fā)生方式。Bit2:0–CS12:0:T/C的時鐘源選擇。TCNT1H與TCNT1L:TCNT1H與TCNT1L組成了T/C1的數(shù)據(jù)存放器TCNT1。經(jīng)過它們可以直接對定時器/計(jì)數(shù)器單元的16位計(jì)數(shù)器進(jìn)展讀寫訪問。輸出比較存放器1A-OCR1AH與OCR1AL輸出比較存放器1B-OCR1BH與OCR1BL該存放器中的16位數(shù)據(jù)與TCNT1存放器中的計(jì)數(shù)值進(jìn)展延續(xù)的比較,一旦數(shù)據(jù)匹配,將產(chǎn)生一個輸出比較中斷,或改動OC1x的輸出邏輯電平。輸入捕捉存放器1-ICR1H與ICR1L:當(dāng)外部引腳ICP1(或T/C1的模擬比較器)有輸入捕捉觸發(fā)信號產(chǎn)生時,計(jì)數(shù)器TCNT1中的值寫入ICR1中。ICR1的設(shè)定值可作為計(jì)數(shù)器的TOP值。留意:TCNT1、OCR1A/B與ICR1是AVRCPU經(jīng)過8位數(shù)據(jù)總線可以訪問的16位存放器。讀寫16位存放器需求兩次操作。寫16位存放器時,應(yīng)先寫入該存放器的高位字節(jié);而讀16位存放器時應(yīng)先讀取該存放器的低位字節(jié)。中斷屏蔽存放器-TIMSK:Bit5–TICIE1:T/C1輸入捕捉中斷使能。當(dāng)該位被設(shè)為"1〞,且形狀存放器中的I位被設(shè)為"1〞時,T/C1的輸入捕捉中斷使能。一旦TIFR的ICF1置位,CPU即開場執(zhí)行T/C1輸入捕捉中斷效力程序。Bit4–OCIE1A:輸出比較A匹配中斷使能。當(dāng)該位被設(shè)為"1〞,且形狀存放器中的I位被設(shè)為"1〞時,T/C1的輸出比較A匹配中斷使能。一旦TIFR上的OCF1A置位,CPU即開場執(zhí)行T/C1輸出比較A匹配中斷效力程序。Bit3–OCIE1B:T/C1輸出比較B匹配中斷使能。當(dāng)該位被設(shè)為"1〞,且形狀存

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論