作者fengwing (liberty)
看板ASM
標題[問題] SPI讀寫問題
時間Mon Jan 9 00:09:04 2017
各位板友好
我想利用MCU與RF晶片做溝通,
MCU為Atmel SAMD20J18、RF晶片為Semtech SX1276,
此RF晶片僅能利用SPI對其暫存器做讀寫,
我是使用SINGLE access mode,
也就是一次會傳送一個byte的地址+一個byte的資料,
地址的MSB是1則做寫入,0則是讀取,
我修改Atmel ASF Manual所提供的SPI Example Code,
在程式一開始,要寫(data 0x00)到暫存器(addr 0x01),
因為是寫入,所以地址改寫成 0x01|0x80,就像SPI_W(0x81,0x00)
我不知道到底有沒有寫出去,於是用了一個笨方法XD
寫一個無窮迴圈,然後用示波器查看MOSI的腳位,
確實可以看到0x81 0x00從MOSI送出,
請問板友,這樣就是代表有1byte的資料(0x00)寫到暫存器嗎?
然而當我想把暫存器中的值讀出來,卻出了問題,
我寫了一個SPI_R(0x01),要讀取暫存器的值,但卻收到0x09
以下是目前測試的程式碼,
http://imgur.com/jxEnDoK
http://imgur.com/gLrIwDC
請問各位板友,可能是哪邊我沒弄清楚,導致寫錯了呢?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.227.198.212
※ 文章網址: https://webptt.com/m.aspx?n=bbs/ASM/M.1483891747.A.6CD.html
1F:推 chuegou: 我看不出來讀出來你放在那裡 01/09 08:44
2F:→ fengwing: 你好!我放在副程式.因為想說用示波器看.就沒傳回到main 01/09 10:40
3F:→ fengwing: 還是說這樣會有問題呢? 謝謝! 01/09 10:41
4F:推 chuegou: 我想看看讀的示波器訊號 有clock和select更好 01/09 18:55
5F:→ fengwing: 感謝你!目前暫時解決.換一個函數就可以了.真奇怪qq 01/10 00:35
6F:→ fengwing: 我也會再發封信給您! 01/10 00:39
7F:推 asdrtyjkl925: 你說的換函數是指把Read_REG和Write_REG給換掉嗎 01/13 21:42