• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: PIC24FJ64GA004 系列 利用 PPS 功能來規劃並完成SPI Master 的範例 .....EEPROM_Data1
#8
版主
版主


查看用戶資訊
請問一下 Masetr 的 SDI 在做 byte_read 時,用示波器勾一下其波形為何? 還為確認資料以寫入到位址 0x10 裡了,可以用 universal Programmer 來單獨對此 EEPROM 做檢查,以確認資料 0xaa 已存在 0x10 的位址了。

發表於: 2010/2/11 11:09
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC24FJ64GA004 系列 利用 PPS 功能來規劃並完成SPI Master 的範例 .....EEPROM_Data1
#7
新會員
新會員


查看用戶資訊
Dear Ryang

我在寫入與讀取中間插入一行while ( ! SPI_EE_Ready() ) 應該就可以將寫入與讀取時間延後4ms了吧??(test 1)

另外我有在測試過其他方式在寫入與讀取中間加入for(i=0;i<100000;i++)應該也已經超過4ms了吧??(test 2)


***test 1************************************
SPI_EEPROM_ByteWrite( 0x10 , 0xAA ) ;

while ( ! SPI_EE_Ready() ) ;

EEPROM_Data=SPI_EEPROM_ByteRead( 0x10) ;
**************************************

***test 2***********************************
SPI_EEPROM_ByteWrite( 0x10 , 0xAA ) ;

for(i=0;i<100000;i++);

EEPROM_Data=SPI_EEPROM_ByteRead( 0x10) ;
**************************************

目前測試結果還是無法讀取到SDI輸入的數值...是否還有其他建議......

發表於: 2010/2/10 19:29
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC24FJ64GA004 系列 利用 PPS 功能來規劃並完成SPI Master 的範例 .....EEPROM_Data1
#6
版主
版主


查看用戶資訊
請問你寫入一個 Byte 到 EEPROM 後經多久就讀資料回來?
EEPROM 美血衣筆資料莫約需4mS 的時間,不可以馬上就讀回來的。

發表於: 2010/2/10 17:59
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC24FJ64GA004 系列 利用 PPS 功能來規劃並完成SPI Master 的範例 .....EEPROM_Data1
#5
新會員
新會員


查看用戶資訊
Dear Ryang
THANKS A LOT.....
關於你所提到程式的部份目前我所使用的範例訊息如下:

Program : PIC24F_PPS_SPI
此範例 Demo 如何使用 PIC24FJ16GA002 的 SPI1 Module來寫入/讀取 EEPROM M25P05

就您所言在MPLAB針對IC DEVICE設定成PIC24FJ16GA002
在組譯中應該就會自動指向對應的定義,是否是這樣??

#ifdef __PIC24FJ16GA002__
/* ADC */
#define adc_v1_1

/* CMP */
#define cmp_v1_1

..(以下省略)..
..
..
..
..
#endif

***************************

目前我將程式燒入ic中後驗證寫入M25P05及讀取M25P05的輸出波形皆為正常(SDI所顯示波形正確),但是在接收後作數值比較時EEPROM_Data1都是0x00(正確應為0xAA),理論上已經使用示波器確認SDI接收到的波形,應該軟體判斷上就不會有問題吧??
還是現在所使用的程式中並無將SDI所接收到的數值RETURN給EEPROM_Data1呢???
----------------------------
EEPROM_Data1 = SPI_EEPROM_ByteRead( 0x10 ) ;
if(EEPROM_Data1==0xAA)//判斷寫入與讀取數值是否正確
{
for(i=0;i<100000;i++)
{
LED1=1;
}
}
else
LED1=0;


不好意思,初次使用PIC的MCU是否能作詳細一點的建議,謝謝。

Attach file:


Link only for registered users

發表於: 2010/2/10 16:43
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC24FJ64GA004 系列 利用 PPS 功能來規劃並完成SPI Master 的範例 .....EEPROM_Data1
#4
版主
版主


查看用戶資訊
剛在細看一下你的程式,應該是 dsPIC30F Peripheral 教材裡的 SPI 範例。
unsigned char    SPI_ByteWrite(unsigned char SPI_DATA )
{
        
int    Dummy ;

        
SPI1BUF SPI_DATA ;
        while ( ! 
IFS0bits.SPI1IF ) ;
            
IFS0bits.SPI1IF ;
        
        for ( 
WaitLoop WaitLoop 50 WaitLoop ++ ) ;
        return (
unsigned charSPI1BUF ;

}


原來的程式是給 dsPIC30F 用的,PIC24FJ64GA004 的定義是 spi_v1_2 (看一下 pic24f_periph_features.h 對各種 PIC24 的歸類) 在 PIC24 裡 SPI 變成 SPI1 or SPI2 所以程式要修改一下。

還有 SPI_ByteWrite( ) 回傳的值是 SPI1BUF 暫存器,他是讀取 SDI (SPI Slave) 所傳回的訊號,跟你所送出去的 SDO 訊號是不同的。

發表於: 2010/2/10 14:41
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC24FJ64GA004 系列 利用 PPS 功能來規劃並完成SPI Master 的範例 .....EEPROM_Data1
#3
新會員
新會員


查看用戶資訊
讀取段程式如下:
unsigned char SPI_EEPROM_ByteRead(unsigned int SPI_Addr )
{
unsigned char Temp_Buffer;

unsigned ReadDelay ;

SPI_CS = 0 ;

SPI_ByteWrite ( SPI_EE_READ ); // Send Read Command
SPI_ByteWrite ( 0x00 ); // Addr A23~A16
SPI_ByteWrite ( (SPI_Addr >> 8) & 0x00ff ); // Addr A15~A8
SPI_ByteWrite ( SPI_Addr & 0x00ff ) ; // Addr A7~A0
Temp_Buffer = SPI_ByteWrite ( 0xff ) ;
SPI_CS = 1 ;

return Temp_Buffer ;

}

只是return 的Temp_Buffer數值都是0x00,理論上讀取動作完成後 Temp_Buffer應該是我先前寫入同位址所儲存數值,應該是這樣對吧??

感謝您的回答,謝謝。

發表於: 2010/2/10 11:25
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC24FJ64GA004 系列 利用 PPS 功能來規劃並完成SPI Master 的範例 .....EEPROM_Data1
#2
版主
版主


查看用戶資訊
因為程式只有片段,無法知道全部的情形。
請問,在對 SPI EEPROM 動作前,請問 25LCxxx 的 /CS 腳有沒有用I/O 拉成 Low ?

發表於: 2010/2/10 11:00
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


PIC24FJ64GA004 系列 利用 PPS 功能來規劃並完成SPI Master 的範例 .....EEPROM_Data1
#1
新會員
新會員


查看用戶資訊
請教各位大大,目前我是使用pic24GA16002搭配一顆spi flash作spi的介面練習,是使用範例程式來修改ㄉ(只修改pin define的部份,其他設定無修改),可是再程式段中讀取與寫入的判斷式始終是無法成立,EEPROM_Data1總是等於0x00,我寫入的數值為0xAA,已經使用示波器檢查過輸出的波形是0xAA無誤,是否是軟體中哪邊出問題阿????

程式段如下:
#define LED1 LATBbits.LATB6
#define DIR_LED1 TRISBbits.TRISB6

unsigned int EEPROM_Data1;

unsigned long int i;
int main(void)
{
Init_PPS();
Init_SPI();
DIR_LED1=0;

SPI_EEPROM_ByteWrite( 0x10 , 0xAA ) ;
while ( ! SPI_EE_Ready() ) ;
EEPROM_Data1 = SPI_EEPROM_ByteRead( 0x10 ) ;
if(EEPROM_Data1==0xAA)
{
for(i=0;i<100000;i++)
{
LED1=1;
}
}
else
LED1=0;

while(1);
}

void Init_PPS(void)
{
RPOR6bits.RP12R = 8 ; // SCK1
RPOR7bits.RP14R = 7 ; // SDO1
RPINR20bits.SDI1R = 13 ; // SDI1
}

Q2:
程式一段時間後,會在重新執行,是那些狀態才會這樣??

發表於: 2010/2/9 16:28

Edited by edisom on 2010年02月09日 17:24:16
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------