作者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/cn.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