CML的cbus協議

beowulf發表於2010-12-17

之前用的模擬介面,工作沒問題,然後想換成spi,死活不工作,資料偶爾會有,但是會一直死在那裡。

http://hi.baidu.com/bwandmff/blog/item/d8a1dcd36cbf7b33960a1603.html

最後看到了這個帖子,ok了

[@more@]

設定spi mode3

速率<4Mbps都是ok的。我用的1mbps.(cmx638)

關鍵點和cc2500差不多。接受一個位元組時必須傳送一個位元組。

如 讀取$40狀態

send_byte(0x40);

_NOP();

send_byte(0x00);//任意位元組

h_byte =read_byte(); //讀取高位元組

send_byte(0x00);//任意位元組

l_byte =read_byte();//讀取低位元組

//位元組的接收是在中斷中進行的,一個位元組傳送完畢後這個位元組的接收也完成了,read_byte的作用是將該位元組從接收緩衝區中讀取出來.

再看看模擬程式的讀取部分:

for(i=8;i>0;i--)

{

byte<<=1;

CMX638_CLK_HIGH; //相當於傳送了一個0/1

_NOP();

if(CMX638_IN & CMX638_RDATA )

byte |=0x01;

else

byte &=0xfe;

CMX638_CLK_LOW;

_NOP();

}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7202070/viewspace-1043234/,如需轉載,請註明出處,否則將追究法律責任。

相關文章