- UID
- 114636
- 性别
- 男
|
1,硬件
胎压检测:8020+RF2
接收:MC33594+GR8
2,原理
1),RF23秒钟采样并发送数据包一次,数据包格式:Pre+ID+HEADER(4 bytes)+data(8 bytes)+EOM(2 bits of NRZ "1" or "0";
2),GR8配置好MC33594后,SPI设置为从模式,等待接收,每接收一个字节即通过SCI发送给PC;
3,问题:
1)发射10字节数据包,接收有效数据应该为8字节,但有时候会接收到9字节;
2)漏包较多,即2分钟左右才能收到一个数据包;
请问大牛们,大概应该是哪些原因造成的。
4,附RF发射的代码(通过PWM控制DATA脚)
//- 1,initialze Tango3 and PWM
RF_EN=1; //- enable Tango3
delay_ms(2); //- wait for Tango3 PLL being settled
TSC0 &= 0b11100011; //- pin under port control,initial output=high(start transmit)
//- TOF=0,TOIE=0,TSTP=1,TRST=1, PS2 PS1 PS0=111-Tclk=DATACLK;
TSC=0x37; //- counter stopped & cleared, tof clear,TOF_ISR disabled
//- DATACLK=Timer Clock
//- CH0F=0,CH0IE=1,MS0B=0,MS0A=1,ELS0B=0,ELS0A=1,TOV0=0,CH0MAX=0
TSC0=0x54; //- Timer Channel 0WM output with toggle on compare;
//- Tx_UHF_isr enabled
TMODH=0; //- PWM period = period UH: 212Khz/9600=22;
TMODL=UHF_period; //- and PWM duty cycle=50%;
TCH0H=0;
TCH0L=UHF_Duty_Cycle;
TSC_TSTOP=0; //- start timer
//- 2,send the frame
next_tx_bit=1; //- 1st bit of first byte(0xFB)
for(i=0;i< |
|