新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)一些學(xué)習(xí)筆記

AVR單片機(jī)一些學(xué)習(xí)筆記

作者: 時(shí)間:2013-05-30 來源:網(wǎng)絡(luò) 收藏

49、 為ADC模塊的獨(dú)立電源。參考電源可選擇片內(nèi)2.56V,或者外部參考電源。

50、 ADMUX(ADC多路復(fù)用選擇寄存器),ADLAR(ADC LeftAdjust Result)結(jié)果左對齊。ADCSRA(ADC控制和狀態(tài)寄存器A),ADEN,ADC使能位。ADSC(ADC Start Conversion)開始轉(zhuǎn)換位。ADATE(ADC Auto Trigger Enable)自動觸發(fā)開始轉(zhuǎn)換,信號源由SFIOR的ADTS位決定。ADPS[2:0]預(yù)分頻選擇位。

51、 如果AVREF接到外部電源,那么就不能使用內(nèi)部參考電源。

52、 ADC模塊在使能ADATE(自動觸發(fā)轉(zhuǎn)換)后,利用T0的溢出中斷來觸發(fā)開始轉(zhuǎn)換,一定要開啟T0的中斷允許位(TOIE0),否則無法觸發(fā)轉(zhuǎn)換。

53、 一次正常的ADC轉(zhuǎn)換過程需要13個(gè)采樣時(shí)鐘,假定ADC采樣時(shí)鐘頻率為200kHZ,那么最高的采樣頻。率為200kHZ/13=15.384kHZ,所以由香農(nóng)定理,被測信號的最高頻率為7.7kHZ。

54、 通用同步/異步串行接收/發(fā)送器(Universal Synchronous and Asynchronous Serial Recevier andTransimitter)支持四種工作模式:普通異步模式、雙倍速異步模式、主機(jī)同步模式和從機(jī)同步模式。UCSRC中的UMSEL(U Mode Select)位用于選擇同步或異步模式。UCSRA中的U2X用于控制是否使用倍速模式。

55、 波特率計(jì)算公式:BAUD=fosc/(16(UBRR+1))。

56、 UCSRA中的UDRE(U Data Register Empty)置1時(shí)(數(shù)據(jù)寄存器為空),UDR才能夠被寫入,一旦被寫入,硬件自動將其中的內(nèi)容送到TXD上串行移出。RXD和TXD均可以產(chǎn)生相應(yīng)的中斷,并在進(jìn)入中斷后標(biāo)志自動清0。

57、 由于UBRRH (U Baud Rate Register)和UCSRC的物理地址相同,只是在最高位URSEL的不同,而寫操作和讀操作的對象不同。當(dāng)URSEL為0時(shí),對象為UBRRH;當(dāng)URSEL為1時(shí),對象為UCSRC。(讀UCSRC時(shí),需要連續(xù)讀兩次才能得到結(jié)果,第一次讀的是UBRRH的值)。

58、 USART的初始化包括:設(shè)置波特率,使能接收和發(fā)送器,設(shè)置幀格式。

數(shù)據(jù)發(fā)送:while(!(UCSRA (1 UDRE))); UDR = data;UDRE在UDR被寫入值后被硬件自動清0,如果在UDR空中斷沒有對UDR賦值,那么UDRE沒有清0,退出中斷后會再次觸發(fā)中斷。但是TXC中斷可以硬件自動清0TXC標(biāo)志

數(shù)據(jù)接收:while(!(UCSRA (1 RXC)));data = UDR;RXC在UDR數(shù)據(jù)被讀出后被硬件自動清0,所以在RXC中斷時(shí)必須讀取UDR,以清0RXC。或者手動清0RXC

TXD和RXD功能由TXEN和RXEN的設(shè)置來開啟和關(guān)閉

59、 如果UCSRA中的FE,PE,DOR在RXC中斷中需要讀出進(jìn)行錯(cuò)誤檢測,那么一定要先讀UCSRA再讀UDR

60、 串行外設(shè)接口(Serial Peripheral Interface,SPI.飛思卡爾公司提出),兩線串行接口(Two-wireSerial Interface,TWI)。SPI一般有四根信號線:MOSI,MISO,SCLK,/SS.可以想象一下主機(jī)和從機(jī)從MOSI到MISO收尾相連形成環(huán)(本質(zhì)就是串行移位唄~),當(dāng)數(shù)據(jù)全部交換完畢后,主機(jī)拉高/SS,停止SPI傳輸。這就是為什么SPI比TWI(I2C)快的原因:因?yàn)閿?shù)據(jù)是全雙工,并且數(shù)據(jù)走不同的通道。

61、 SPI有四種工作模式,取決于同步時(shí)鐘的極性(Clock Polariy)和同步時(shí)鐘的相位(Clock Phase)2個(gè)參數(shù)。

62、 SPI的主機(jī)方式最高速率為(CK/2),從機(jī)方式最高速率為(CKI/4)

63、 數(shù)據(jù)寄存器SPDR。在讀SPDR時(shí),讀取的是緩沖寄存器內(nèi)容;寫SPDR時(shí),寫到移位寄存器中。一旦將數(shù)據(jù)寫入SPDR,硬件自動傳輸一次SPI通信,如果中斷允許,則進(jìn)入SPI中斷。

64、 SPI速率一般為1MHZ,最高可達(dá)10MHZ

65、 TWI工作在被控模式時(shí),CPU頻率fcpuclock必須大于TWI時(shí)鐘線SCL頻率的16倍。SCL的頻率: (在主機(jī)模式下,TWBR應(yīng)大于10.另外特別需要注意的一點(diǎn): 指的不是4的TWPS次方,應(yīng)該是按照分頻表格,將表格中的1,4,16,64替換 整體)

66、 TWINT中斷標(biāo)志位,當(dāng)其被置位時(shí),時(shí)鐘線SCL被拉低,并且執(zhí)行中斷向量時(shí),標(biāo)志不會清0,只能靠手動軟件清0。

67、 如果TWINT被置位,表示正在傳送數(shù)據(jù),此時(shí)如果寫入TWDR,那么TWWC(寫沖突)會被置位。也就是說當(dāng)TWINT被置位時(shí),TWDR應(yīng)該保持穩(wěn)定,這和I2C的協(xié)議是一致的。

68、 TWAR(地址寄存器)的高7位用于存儲自己的地址,最后一位TWGCE(TWI General Call Recognition Enable)為地址匹配成功使能位。如果地址匹配成功,將會產(chǎn)生一次TWI中斷

69、 在I2C的TWI寄存器設(shè)置中,不能使用|賦值,必須整體賦值

70、 CKOPT當(dāng)系統(tǒng)頻率較高時(shí)或者要求抗干擾能力強(qiáng),設(shè)置為1。如果系統(tǒng)頻率低,設(shè)置為0,這樣可以減少電流的損耗。

71、 片內(nèi)EEPROM,執(zhí)行讀操作時(shí),CPU停止運(yùn)行4個(gè)時(shí)鐘周期。而在執(zhí)行寫操作時(shí),CPU停止運(yùn)行2個(gè)時(shí)鐘周期。


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉