會員登陸
帳號:

密碼:

記住我



忘記密碼?

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


正在流覽:   1 名訪客





dsPIC33CK256MP508執行速度問題
高級會員
註冊日期:
2010/08/15 00:05
所屬群組:
註冊會員
文章: 96
等級: 8; EXP: 78
HP : 0 / 194
MP : 32 / 5483
離線
小弟我最近速度上的困擾
第一個問題是
我目前使用的是33CK256MP508這顆IC
然後在使用上 我發現我跑出來的速度跟預期有差2倍的問題
我利用RC震盪震出100MIPS(我用示波器看CLKO腳量測的)
但是我試著用簡單的指令
whihle(1)
{
LATAbits.LATA0=1;
LATAbits.LATA0=0;
}
我去量測CLKO跟LATA腳 發現有兩週期的差別
且量測出來的IO腳輸出有20ns的時間差

然後我去看Datasheet的指令集以及對照組譯出來後的程式
發現他是用BSET 跟BCLR
這兩個指令都是1週期
100MIPS執行一個指令週期不是應該是10ns嗎?
所以我不懂的是 這中間是發生甚麼問題
以下是我的設定
CLKDIVbits.PLLPRE = 1; // N1 = 1~8
PLLFBDbits.PLLFBDIV = 50; // M = 16~200
PLLDIVbits.POST1DIV = 1; // N2 = 1~7
PLLDIVbits.POST2DIV = 1; // N3 = 1~7

第二個問題是
然後再附加檔案那裡
我也有另一個疑問
在官網的表裡(說明)
Max CPU Speed (MHz) 100
CPU Speed (MIPS/DMIPS) 100
可是我看Datasheet(說明2)上寫的是 1:2
那這樣的意思是我哪裡搞錯了嗎?

謝謝

附加檔案:



jpg  說明.jpg (121.51 KB)
7268_5e781bec18fbb.jpg 1052X804 px

jpg  說明2.jpg (237.45 KB)
7268_5e781bf58ecbb.jpg 1096X996 px

3月23日 10:22:18
轉換PDF檔 列印


Re: dsPIC33CK256MP508執行速度問題
管理員
註冊日期:
2010/06/30 16:18
來自 CAE, Microchip Technology Inc.
所屬群組:
站務管理者
註冊會員
文章: 1655
等級: 34; EXP: 34
HP : 0 / 833
MP : 551 / 23777
離線
內部討論了一下, 初步看起來, 應該是 Datasheet 標錯速度了, 這顆MCU可以工作到200MHz, 200MHz/2 = 100 MIPS.

您可以嘗試看看把主頻設定到200MHz, 再試試看....

中文版的 Data Sheet 有誤,請參考英文版本的 Data Sheet.

3月23日 11:35:30
轉換PDF檔 列印


Re: dsPIC33CK256MP508執行速度問題
高級會員
註冊日期:
2010/08/15 00:05
所屬群組:
註冊會員
文章: 96
等級: 8; EXP: 78
HP : 0 / 194
MP : 32 / 5483
離線
謝謝回復!

不過我的問題1目前還是想不透

照理來說
我的CLKO輸出的震盪應該就是TCY才對(說明5)
可是我看我的IO輸出還是震了兩個CLKO
請問是我哪裡搞錯了嗎?

我是在想 是不是我的計算公式有錯

我是參考說明4的公式然後搭配說明3的範例來修改我的程式

把說明4的配置放到說明3後
8MHZ*125/5 =200MHZ
200MHZ/2=100MIPS
可是他是寫50MIPS
而我示波器量測CLKO腳 震盪頻率的確是50MIPS

所以又延伸了問題3

附加檔案:



jpg  說明5.jpg (181.18 KB)
7268_5e78640d60b92.jpg 808X601 px

jpg  說明3.jpg (82.50 KB)
7268_5e7864ae88657.jpg 776X372 px

jpg  說明4.jpg (33.16 KB)
7268_5e7864ba76dd2.jpg 746X216 px

3月23日 15:31:38
轉換PDF檔 列印


Re: dsPIC33CK256MP508執行速度問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 15011
等級: 73; EXP: 84
HP : 1092 / 1821
MP : 5003 / 84764
離線
引用:

whihle(1)
{
LATAbits.LATA0=1;
LATAbits.LATA0=0;
}


依你的程式只能測量 RA0 由 1 變成 0 的時間,其餘的時間因受 while 迴圈的影響會變長。

如果改成:
whihle(1)
{
LATAbits.LATA0=1;
LATAbits.LATA0=0;
LATAbits.LATA0=1;
LATAbits.LATA0=0;
LATAbits.LATA0=1;
LATAbits.LATA0=0;
LATAbits.LATA0=1;
LATAbits.LATA0=0;
}
這樣量出來的時間比較正確。

3月24日 10:07:52
轉換PDF檔 列印


Re: dsPIC33CK256MP508執行速度問題
高級會員
註冊日期:
2010/08/15 00:05
所屬群組:
註冊會員
文章: 96
等級: 8; EXP: 78
HP : 0 / 194
MP : 32 / 5483
離線
您好 R大 好久不見
我附上我CLKO震出來得頻率的圖
CH1是CLKO
CH2是IO輸出
我有照您說的把次數增加了

附加檔案:



jpg  S__14344221.jpg (828.14 KB)
7268_5e797a0c45758.jpg 2362X1772 px

jpg  S__14344222.jpg (770.29 KB)
7268_5e7982e1dd1d5.jpg 2362X1772 px

jpg  S__14344224.jpg (761.24 KB)
7268_5e7982efc1416.jpg 2362X1772 px

3月24日 11:11:34

匿名小鬼 於 2020年03月24日 11:48:04
轉換PDF檔 列印


Re: dsPIC33CK256MP508執行速度問題
管理員
註冊日期:
2010/06/30 16:18
來自 CAE, Microchip Technology Inc.
所屬群組:
站務管理者
註冊會員
文章: 1655
等級: 34; EXP: 34
HP : 0 / 833
MP : 551 / 23777
離線
單獨針對問題3, 沒看錯的話, 您應該是單純漏看了/2的方塊...

所以FOSC = FPLLO/2 = 8M / 1 * 125 / 5 / 2 = 100MHz => 50 MIPS

附加檔案:



jpg  A.jpg (110.60 KB)
7103_5e7ade15975c5.jpg 1035X677 px

3月25日 12:29:11
轉換PDF檔 列印


Re: dsPIC33CK256MP508執行速度問題
高級會員
註冊日期:
2010/08/15 00:05
所屬群組:
註冊會員
文章: 96
等級: 8; EXP: 78
HP : 0 / 194
MP : 32 / 5483
離線
感謝您 AdamSyu

我的確是少看了 也終於也解了一個疑惑

那這樣 我只剩IO的問題了

3月25日 16:11:31
轉換PDF檔 列印






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

[進階搜尋]


搜尋
Microchip連結
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project