Re: PIC18F27Q43 client mode SDO 輸出訊號異常問題
|
||||
---|---|---|---|---|
新會員
|
Hi Ryang
RC0 & RC2設定漏掉沒有貼過來,設定為: RC0PPS = 0x32; //RC0->SPI1:SDO1; SPI1SSPPS = 0x12; //RC2->SPI1:SS1; 在main底下的INTERRUPT_GlobalInterruptEnable();有打開 void SPI1_Initialize(void) { SPI1CON0 = 0x00; SPI1CON1 = 0x04; SPI1CON2 = 0x07; SPI1CLK = 0x01; SPI1BAUD = 0x00; TRISCbits.TRISC3 = 1; PIE3bits.SPI1RXIE = 1; SPI1_SetRxInterruptHandler(SPI1_DefaultRxHandler); } 有檢查到沒有資料回傳原因是沒有進入SPI1_DefaultRxHandler(),在SPI1_DefaultRxHandler()內放IO Toggle,發現並沒有動作。想請問目前這樣的設定值是否仍有錯誤造成不會進入SPI1_DefaultRxHandler()。謝謝。
發表於: 2021/4/6 13:52
|
|||
|
Re: PIC18F27Q43 client mode SDO 輸出訊號異常問題
|
||||
---|---|---|---|---|
版主
|
剛看了 PIC18F27Q43 的 Data Sheet 裡的 Page 16 有關對 SDO1 腳位的使用說明。
SCK1 --> RC3 (設定成輸入腳功能) SDI1 --> RC4 (設定成輸入腳功能) SDO1 --> RC0 ?? SDO1 的輸出腳須經由 PPS 選定腳位並設定成輸出功能,這點在程式裡沒有看到。請檢查一下 SPI1 的腳位設定及輸出入功能。 Data Sheet 的註記: 2. All output signals shown in this row are PPS remappable. These signals may be mapped to output onto one of several PORTx pin options as described in the peripheral output selection table.
發表於: 2021/4/6 11:17
|
|||
|
PIC18F27Q43 client mode SDO 輸出訊號異常問題
|
||||
---|---|---|---|---|
新會員
|
MPLAB X IDE v5.40
XC8(v2.31) ============================ 設定如下 void SPI1_Initialize(void) { SPI1CON0 = 0x00; SPI1CON1 = 0x44; SPI1CON2 = 0x07; SPI1CLK = 0x01; SPI1BAUD = 0x00; TRISCbits.TRISC3 = 1; PIE3bits.SPI1RXIE = 1; SPI1_SetRxInterruptHandler(SPI1_DefaultRxHandler); SPI1CON0bits.EN = 1; } 在MCC產生的SPI1_DefaultRxHandler內單傳做資料接收(只是單純不讓FIFO滿,不做資料判讀),並同時固定丟出0xAA,做功能測試。 void SPI1_DefaultRxHandler(void) { rxB = SPI1RXB; SPI1TXB = 0xAA; } master端一直無法正確收到0xAA,將波形勾示波器出來看發現SDO腳位波形不正確(波形截圖如附檔)。 使用SPI1: SCK1 → RC3 SDI1 → RC4 SDO1 → RC0 SS1 → RC2 請問一下是不是有甚麼地方設定上有錯誤?感謝!
發表於: 2021/4/1 15:12
|
|||
|