會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





33EP的PWM為何解析度可以到1.04ns?
資深會員
註冊日期:
2005/02/01 19:56
所屬群組:
註冊會員
文章: 280
等級: 15; EXP: 65
HP : 0 / 366
MP : 93 / 15320
離線
請問一下,我在設定33EP系列的PWM,我看DATASHEET號稱高解析度,可達1.04ns。但我算了一下這樣的解析度要約900MHz才能做到。
這顆mcu大概就跑到70MHz而以,為什麼可以設到這樣的高解析度?
翻了半天datasheet看不出個所以然。

想問這個問題主要是因為我設的pwm period和duty cycle都和我自己算出來的pwm 頻率不一樣,輸出頻率比預期高很多,所以我想若可以設到這麼高的解析度,代表那一段我可能沒搞清楚才會算錯。想請用過的高手指導一二,謝謝

3月05日 15:24:05
轉換PDF檔 列印


Re: 33EP的PWM為何解析度可以到1.04ns?
資深會員
註冊日期:
2005/02/01 19:56
所屬群組:
註冊會員
文章: 280
等級: 15; EXP: 65
HP : 0 / 366
MP : 93 / 15320
離線
幾個問題請教:
1.計算了一下,發現我設的頻率大概會比真正出來的多16倍。
還沒找到什麼原因。我是以70MIPS的週期去設定PWM的PHASE(PERIOD)

2.另外AUXCONx中的 HRPDIS和HRDDIS可以設定高解析度的DUTY和PERIOD到底對應到什麼?一直看不懂

bit 15 HRPDIS: High-Resolution PWM Period Disable bit

bit 14 HRDDIS: High-Resolution PWM Duty Cycle Disable bit

3.我發現好像沒有各別PWM開關的控制,PWM一開就全開,只能設定對應的PWMH/L是否要連到IO上,若我只想用PWM來TRIGGER ADC,但沒有要輸出IO,是否不用設定IO對應到PWM,有需要開啟PWM中斷嗎?測試了半天ADC一直沒被觸發(我是設ADC由PWM的PRIMARY TRIGGER,中斷設ADC取樣完成中斷去取值,沒有設PWM中斷),另外我是用可以REMAPPING的PWM(PWM5),但因為沒有去真用到這支腳,所以沒去設PPS

3月06日 05:36:21
轉換PDF檔 列印


Re: 33EP的PWM為何解析度可以到1.04ns?
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14737
等級: 73; EXP: 42
HP : 1086 / 1810
MP : 4912 / 79729
離線
底下的程式是 FAE 所提供的程式碼,主要的問題點是 Auxiliary x16 PLL 的輸入只有 POSCCLK 及 FRCCLK 兩種輸入選擇。經與 FAE 討論,Data Sheet 上的標示會讓人誤解,從程式看主震盪選用 FRCOSC + PLL 後是以 FOSC 的高頻在輸入給 Auxiliary PLL 倍頻到 9xxMHz 後,再送給 PWM 的。

#include "comm.h"

void Init_OSC(void)
{
    
// Configure FRC prescaler, FRC postscaler, FRC divisor
    
PLLFBD = ((FCY * 8) / 7370000) - 2;
    
CLKDIVbits.PLLPOST=0;   //N2
    
CLKDIVbits.PLLPRE=0;    //N1
    // Initiate Clock Switch to Internal FRC with PLL (NOSC = 0b001)
    
__builtin_write_OSCCONH(0x01);
    
__builtin_write_OSCCONL(OSCCON | 0x01);
    
// Wait for Clock switch to occur
    
while (OSCCONbits.COSC != 0b001);
    
// Wait for PLL to lock
    
while(OSCCONbits.LOCK!=1) {};

    
ACLKCON = 0;
    
ACLKCONbits.SELACLK = 1;/* Auxiliary Oscillator provides clock source for PWM & ADC */
    
ACLKCONbits.APSTSCLR = 0b111;
    
/* 111 = Divided by 1
    110 = Divided by 2
    101 = Divided by 4
    100 = Divided by 8
    011 = Divided by 16
    010 = Divided by 32
    001 = Divided by 64
    000 = Divided by 256 */

    
ACLKCONbits.FRCSEL = 1; Selects FRC clock for auxiliary PLL
    ACLKCONbits
.ENAPLL = 1;/* Enable Auxiliary PLL */
    
while(ACLKCONbits.APLLCK != 1);/* Wait for Auxiliary PLL to Lock */    
}

3月06日 11:35:38
轉換PDF檔 列印


Re: 33EP的PWM為何解析度可以到1.04ns?
資深會員
註冊日期:
2005/02/01 19:56
所屬群組:
註冊會員
文章: 280
等級: 15; EXP: 65
HP : 0 / 366
MP : 93 / 15320
離線
引用:

Ryang 寫道:
底下的程式是 FAE 所提供的程式碼,主要的問題點是 Auxiliary x16 PLL 的輸入只有 POSCCLK 及 FRCCLK 兩種輸入選擇。經與 FAE 討論,Data Sheet 上的標示會讓人誤解,從程式看主震盪選用 FRCOSC + PLL 後是以 FOSC 的高頻在輸入給 Auxiliary PLL 倍頻到 9xxMHz 後,再送給 PWM 的。



版大你好,謝謝你的回應。想再討論一下這個問題。

我現在設定好像是Fvco進來(不太確定)
,之前有測試過把16倍的pll暫存器禁能或致能。
結果是一樣的

3月06日 17:55:46
轉換PDF檔 列印


Re: 33EP的PWM為何解析度可以到1.04ns?
資深會員
註冊日期:
2005/02/01 19:56
所屬群組:
註冊會員
文章: 280
等級: 15; EXP: 65
HP : 0 / 366
MP : 93 / 15320
離線
版大好,後來有找到解釋。
在70323H.PDF中方程式6-4有提到是以ACLK 120MHz出來以後去計算,還會有一個乘8的動作來計算再做除頻,所以是120*8=960(MHz)來計算,確實是1.04ns。

3月07日 09:24:20
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project