會員登陸
帳號:

密碼:

記住我



忘記密碼?

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


正在流覽:   1 名訪客





dsPIC33EP64GS506-SPI讀取EEPROM問題.
新會員
註冊日期:
2012/06/29 16:34
所屬群組:
註冊會員
文章: 11
等級: 2; EXP: 12
HP : 0 / 28
MP : 3 / 466
離線
我的MCU是dsPIC33EP64GS506.使用外部8MHz振盪器.PLL到60MIPS.
電源使用AC/DC-5V.再經過LDO-3.3V供給MCU電源.
EEPROM是25LC010A-SOT23.

1.使用ICD3在DEBUG MODE時使用SPI讀取已寫入資料的EEPROM的資料.所讀取的數值都是正確的.

2.使用ICD3直接燒入程式後.直接RUN.所讀取的數值也是正確的.

3.關閉電源後再開啟所讀取的數值錯誤.原本應該讀到0x68(0b01101000)
但是卻讀到0xB4(0b10110100).好像提早讀取一個bits.但是使用示波器看SCK與SDI,SDO的時序圖都是正確的.

4.嘗試多次關閉電源重新RUN結果都是錯誤.修改程式多次讀取的數值都是一樣.但是從MCU的MCLR-RESET後所讀取的值就恢復正常.

請問這種現象可能哪裡出了問題?

2016/03/09 09:51
轉換PDF檔 列印


Re: dsPIC33EP64GS506-SPI讀取EEPROM問題.
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14224
等級: 72; EXP: 62
HP : 1074 / 1790
MP : 4741 / 72331
離線
看樣子是 Mode 設錯了。改一下看看。

2016/03/09 11:46
轉換PDF檔 列印


Re: dsPIC33EP64GS506-SPI讀取EEPROM問題.
新會員
註冊日期:
2012/06/29 16:34
所屬群組:
註冊會員
文章: 11
等級: 2; EXP: 12
HP : 0 / 28
MP : 3 / 466
離線
我想SPI的設定應該沒問題.之前用在dsPIC33FJ的程式都OK.
如果使用外部MCLR-RESET後所讀的值就正確了.

第1我在想會不會是MCU故障.
第2會不會是VDD RISE TIME的問題.示波器量起來0~3V大概需3.1ms.
第一次使用dsPIC33EP還是有其他必須去注意的?


SPI設定
void Initial_SPI(void)
{

SPI1CON1 = 0x0132; //CLK SPEED = 60MHZ /16 =
3.75MHZ
SPI1CON2 = 0x0000;
SPI1STAT = 0x8000;
}

SPI的周邊設定

__builtin_write_OSCCONL(OSCCON & ~(1<<6));

RPINR20bits.SDI1R = 55; //SDI
RPINR20bits.SCK1INR = 36; //SCK IN
RPOR2bits.RP36R = 0x06; //SCK OUT
RPOR15bits.RP62R = 0x05; //SDO
RPINR7bits.IC1R = 60; //RC12-RP60= IC1
RPINR12bits.FLT1R = 51; //RC3-RP51 FAULT1

__builtin_write_OSCCONL(OSCCON | (1<<6));

2016/03/09 13:15
轉換PDF檔 列印






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

[進階搜尋]


搜尋
Microchip連結

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