Re: 請問PIC18F27Q43的SPI Client Mode RX的速度限制與設定
|
||||
---|---|---|---|---|
版主
|
SPI 速度提高時使用中斷接收會受到限制,一般會建議改用 SPI to DMA 的接收方式。
底下是使用 DMA 的方式,可以參考看看。 https://ww1.microchip.com/downloads/en ... it-PIC-MCUs-90003192A.pdf
Example 5-1. ASSIGNING DMA1 HIGHEST PRIORITY USING THE SYSTEM
發表於: 2021/3/31 9:51
|
|||
|
Re: 請問PIC18F27Q43的SPI Client Mode RX的速度限制與設定
|
||||
---|---|---|---|---|
版主
|
請問雙方的傳輸線有多遠?
Sck 波形有失真,可以在 Slave 端加個 4.7k okm 的提升電阻降低 RC 時間常數後再試一下。
發表於: 2021/3/28 10:26
|
|||
|
Re: 請問PIC18F27Q43的SPI Client Mode RX的速度限制與設定
|
||||
---|---|---|---|---|
新會員
|
感謝您的回覆!!
SPI 的工作模式Master 和Slave皆設定為Mode3 SCK Idle high CKE Idle to active SDI is sampled in the middle of data output time Master 送出的訊號如附圖(左上) Slave設定為
SPI1CON1 = 0x34;
Master 的 CS 訊號如附圖(左下) Master 的 CLK如附圖(左上) 皆正確 -- 以下為5MHz和7.5MHz的對照 邏輯分析儀偵測的點為PIC SPI輸入端 對照PIC除錯模式中的暫存器 5MHz時 邏輯分析儀偵測到傳送為3000Byte 5MHz的資料 而PIC接收到3000Byte的正確資料 如附圖(右上) 7.5MHz時 邏輯分析儀偵測到傳送為3000Byte 5MHz的資料 而PIC接收到2793Byte的有遺漏資料 如附圖(右下)
發表於: 2021/3/26 17:25
|
|||
|
Re: 請問PIC18F27Q43的SPI Client Mode RX的速度限制與設定
|
||||
---|---|---|---|---|
版主
|
PIC18F27Q43 的 SPI 在 Client Mode (Slave) 時,Data Sheet Page 913 有說明是: 在接收模式下是 20MHz, 在 Full-Duplex Mode下是 10MHz。
檢查一下 SPI 的工作模式是否與 SPI Master 同一個 Mode。SPI 依上下緣依上下緣的不同設定有四種工作模式: Mode00, Mode01 ~ Mode11。 請用示波器檢查一下 SOI & SCK 的波形在高速時是否還是正確的,也檢查一下 Master 的 CS 訊號是否正常。 SPI 的 CLK 是 Master 送的,檢查看看 Master 所送出的頻率是否正常。
發表於: 2021/3/26 13:38
|
|||
|
請問PIC18F27Q43的SPI Client Mode RX的速度限制與設定
|
||||
---|---|---|---|---|
新會員
|
MPLAB X IDE v5.40
XC8(v2.32) ------- 使用PIC18F27Q43 SPI 的Client Mode 只做接收Receive CS下拉為0時 開始接收資料 直至CS恢復成1為止 遭遇到的困難: 目前SPI傳送5MHz的資料皆可正常接收 但7MHz以上 就會開始出現資料缺少的情形 例如傳送 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 接收會變成 0x00 0x01 0x02 0x04 0x05 0x06 0x07 即
SPI1INTFbits.RXOIF = 1;
------- Q1: 最高可接受的SPI頻率為多少? ------ Q2: 或者速度受限是因為設置錯誤? 以下為目前設置 初始化如下
void SPI1_Initialize(void)
中斷程式裡
if(PIE3bits.SPI1RXIE == 1 && PIR3bits.SPI1RXIF == 1)
讀取時,沒有其他任務中斷 求解,感恩謝謝~~~
發表於: 2021/3/25 15:05
|
|||
|