CC2530 結合了領先的RF 收發(fā)器的優(yōu)良性能,業(yè)界標準的增強型8051 CPU,系統(tǒng)內可編程閃存,8-KB RAM 和許多其它強大的功能。CC2530 有四種不同的閃存版本:CC2530F32/64/128/256,分別具有32/64/128/256KB 的閃存。CC2530 具有不同的運行模式,使得它尤其適應超低功耗要求的系統(tǒng)。
運行模式之間的轉換時間短進一步確保了低能源消耗。CC2530F256 結合了德州儀器的業(yè)界領先的黃金單元ZigBee 協(xié)議棧(Z-Stack?),提供了一個強大和完整的ZigBee 解決方案。CC2530F64 結合了德州儀器的黃金單元RemoTI,更好地提供了一個強大和完整的ZigBee RF4CE 遠程控制解決方案。
先看TImer1的操作模式,分別是Free-Running, Modulo, Up-and-Down。
具體的講,Free-Running就是在每個時鐘沿到來是計數器加1,從0x0000一直加到0xFFFF(如果設置了溢出中斷,則發(fā)生中斷,默認開啟中斷,在TIMIF.T1OVFIM可以失能中斷),計數范圍固定不變,可以通過預分頻來控制計數頻率。
Modulo則是通過設置T1CC0H,T1CC0L兩個寄存器來改變TImer1的計數上限。但是,如果timer1啟動時,計數值大于T1CC0H,T1CC0L,則timer1會繼續(xù)向上計數到0xFFFF,然后產生溢出中斷。如果timer1啟動時,計數值小于T1CC0H,T1CC0L,則當計數值等于T1CC0H,T1CC0L,計數值重置。
在這個模式下如果使用比較輸出的話,T1CC0因為用做比較輸出的最大值,所以通道0沒有最后兩種輸出模式。在最后兩種模式中,狀態(tài)轉換是與T1CC0和T1CCn(n表示通道)比較得出的。通道0重疊了!!
另外有一點需要注意,在配置T1CC0H,T1CC0L確保定時器暫停,先寫低位在寫高位
Up-and-Down,并不是pwm模式,我看網蜂pdf的定時器章節(jié)里,在T1CTL的描述中,把Up-and-Down寫成了pwm。實際上,這并不是PWM模式??梢岳斫馐?,Modulo模式中加多一個到達計數最大值時,往回計數到0x0000時產生溢出中斷。適用于中心對稱PWM。
其實,datasheet里面的圖已經很清晰了。
接下來是比較輸出,設置T1CC0H,T1CC0L,當計數值與T1CC0H,T1CC0L相等時,相關通道產生輸出。timer1總共有5個通道(0~4)。比較輸出總共有9鐘模式,但是要注意4~5,6~7這兩對是對應著不同操作模式,通過T1CCTLn.CMP來設置。datasheet是這樣描述的,還是挺好理解的。
使用PWM的話,一般應該是選擇后6種吧。前2種,如果不軟件改變輸出狀態(tài),那么狀態(tài)就只改變一次,第3種則沒有PWM效果,但是可以實現時間大于0xFFFF的輸出翻轉。還有就是不是每一個通道都有上述9種模式。比如通道0就沒有最后兩個模式。
最后就是設置IO了,將對應的IO口設置為外設IO就可以了。先來看看外設IO分布情況
可以看出來,timer1的對應的IO口和串口0,1重合,這里為了方便,可以通過PERCFG.U1CFG和PERCFG.U0CFG把IO設置到Alternative 2 location,也就是P1口。否則timer將不會有比較輸出。
弄清楚這些之后就是配置寄存器的問題了。(代碼僅供參考,具體請根據datasheet配置相關寄存器)。先看定時器部分。