AT91SAM9260EK-38k产生原理
9260內(nèi)部有5個(gè)內(nèi)部計(jì)數(shù)器,分別為TIMER_CLOCK1 --- TIMER_CLOCK5。通過這5個(gè)時(shí)鐘可以為各種內(nèi)部設(shè)備提供時(shí)鐘基準(zhǔn)。
其中,紅外發(fā)射38K方波,是通過CLOCK1計(jì)數(shù)產(chǎn)生。
配置寄存器如下
| //選擇TC通道 ??????? __sys_reg(AT91_PMC_PCER) = 1 << AT91SAM9260_ID_TC1; ??????? //設(shè)置對(duì)外接口 ??????? at91_set_A_periph(AT91_PIN_PC7, 0); ??????? TC_CCR(tc1_io_base) = AT91_TC_CLKDIS; ??????? TC_CMR(tc1_io_base) = ??????????????????????????? //挑選時(shí)鐘源 ??????????????????????????? AT91_TC_TIMER_CLOCK1 ??????????????????????????? //選擇waveform ??????????????????????????? | AT91_TC_WAVESEL_UP_AUTO ??????????????????????????? //選擇RC比較器是對(duì)外接口清零 ??????????????????????????? | AT91_TC_BCPC_CLEAR ??????????????????????????? //選擇RB比較器是對(duì)外接口置位 ??????????????????????????? | AT91_TC_BCPB_SET ??????????????????????????? //設(shè)置為waveform ??????????????????????????? | AT91_TC_WAVE ??????????????????????????? //the last num set the port tiob to output ??????????????????????????? | AT91_TC_EEVT_XC0; ??????? TC_IDR(tc1_io_base) = ~0; ??????????????????????????? //確定RC計(jì)數(shù)器的值 ??????? TC_RC(tc1_io_base) = MAIN_CLK / 2 / 38000; ??????????????????????????? //確定RB計(jì)數(shù)器的值 ??????? TC_RB(tc1_io_base) = MAIN_CLK / 2 / 76000; ??????????????????????????? //時(shí)鐘使能 ??????? TC_CCR(tc1_io_base) = AT91_TC_CLKEN | AT91_TC_SWTRG; |
因此,方波的頻率多少取決于MAIN_CLK,即系統(tǒng)允許的頻率。
?
2.? 25K方波的產(chǎn)生
1.? 之前的驅(qū)動(dòng)程序采取把系統(tǒng)允許頻率MCK寫死的方式,進(jìn)行處理,即MCK=99328000Hz,算出的RC=1306, RB=RC/2。NOTE:占空比1/2
2.? 因此,如果核心板是降頻處理的話,主頻是665600000。如果搭配之前的驅(qū)動(dòng),即RC= 2*RB = 1306,算出的輸出的方波即25KHz。
3.? 如果更新最新的驅(qū)動(dòng),MCK是根據(jù)系統(tǒng)的寄存器配置動(dòng)態(tài)生成的話,驅(qū)動(dòng)會(huì)自動(dòng)調(diào)整RB RC 值,以匹配38K PWM波的產(chǎn)生。
?
3.? 附錄A
TC Channel mode register:
?
Meaning:
| AT91_TC_TIMER_CLOCK1 | | TIMER_CLOCK1 =? MCK/2 |
| AT91_TC_WAVESEL_UP_AUTO |? 2<<13 | WAVSEL = 10 |
| AT91_TC_BCPC_CLEAR | 2<<26 | RC Compare Effect on TIOB = CLEAR |
| AT91_TC_BCPB_SET |??? 1<<24 | RB Compare Effect on TIOB = SET |
| AT91_TC_WAVE |? 1<<15 | WAVEFORM |
| AT91_TC_EEVT_XC0?? 1<<10 | TIOB? output |
?
Example:
?
Interpretation:
?
轉(zhuǎn)載于:https://www.cnblogs.com/zym0805/p/5949494.html
總結(jié)
以上是生活随笔為你收集整理的AT91SAM9260EK-38k产生原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php.h: No such file
- 下一篇: 获取版本号