推 shietsd:分兩個byte傳,傳完再組合成一個word不行嗎? 01/29 17:22
→ gg1122:這樣怎湊 只能8bit的倍數 遇到total data length 30bit 01/29 22:43
→ gg1122:還是會多送二個bit過去 因為底層一次出去就一個byte 01/29 22:44
→ gg1122:SPI0DAT = indata;整個就收走了 跟i2c uart 一樣 01/29 22:47
→ gg1122:這樣CS時序 跟spec的 就不同 很苦惱 希望有人有經驗能分享 01/29 22:49
推 WolfLord:使用ISR混和硬體軟體傳送:最後一組用軟體送/收 如何? 01/29 23:23
→ gg1122:W大可以講清楚點嗎 聽不懂 .. = = 01/29 23:28
推 WolfLord:用MSSP送Byte 0-2,當ISR到2之後用軟體再轉出6個bit 01/30 00:27
推 Anal:如果是小弟的話會考慮直接使用GPIO自己寫SPI的protocal 01/30 00:32
推 WolfLord:我想混搭MSSP最主要應該還是CPUTIME的問題,330是很快的 01/30 00:43
→ WolfLord:一棵8051如果停下來送30個BIT要不就是太快要不就是浪費 01/30 00:44
→ gg1122:我想我應該會用刻gpio的方法 01/30 21:31
→ gg1122:w大的方法感覺很困難== 01/30 21:32
推 WolfLord:直接用GPIO你程式會在輸出入時停住喔~ 沒採了330的速度呢 01/31 00:32
→ kikiqqp:要傳10bit,實際上我們會傳8bit+8bit(這8bit只有高位元 01/31 01:04
→ kikiqqp:效,後面6bit餵高電位,接收端自己會乖乖吃下去 01/31 01:05
→ kikiqqp:有些設備(如ADC類需要設定的)一樣都是這樣處理 01/31 01:06
→ kikiqqp:例如 ADS 10bit(1011011010) + Reg 10bit(0111100011) 01/31 01:09
→ kikiqqp:丟給我SPI就101101101 001111000 11111111(看你的SPI MODE 01/31 01:10
→ kikiqqp:至於多送會不會怎樣,很多設計都是沒收完全CS HIGH就當作 01/31 01:12
→ kikiqqp:沒這資料 01/31 01:12
→ gg1122:就多的就補1 送過去就對了 沒差哪多送的1? 01/31 21:35
→ gg1122:這樣在讀的時候 多送的垃圾值 不知道會不會當dummy data 01/31 21:37