Hallo zusammen,
ich bin gerade dabei eine Übertragungsstrecke mit zwei cc1101+uC in
Betrieb zu nehmen. Ich kann Datenpakete <=64 Byte senden und empfangen.
Das Auslesen erfolgt über eine Abfrage des GDO2 Pins (konfiguriert auf
RxFIFO overflow = 0x04). Ich schicke kontinuierlich 8 Testbyte:
0x08 = 8 Datenbyte
0x99 = Adresse Empfänger
0xAA = Daten (6x)
Bei jedem Rx overflow lese ich den RxFIFO aus. Lese ich lediglich die 8
Byte aus, ist alles ok. Sobald ich aber mehr auslese als ich gesendet
habe, wird da irgendwie noch ein zusätzliches Byte generiert, was ich
nicht verstehe (Statusbytes, CRC, FEC alles aus). Meist ist dieses Byte
0x3F, 0x7F oder auch 0x1F (Beispielmessung siehe Anhang).
Hat vielleicht jemand eine Idee, woher das kommt?
Besten Dank.
Gruss Michael
1 | //in main:
|
2 | void main (void)
|
3 | {
|
4 | ....
|
5 | while(1)
|
6 | {
|
7 | if(GDO2_PIN)
|
8 | RfReceivePacket(rxBuffer);
|
9 | }
|
10 | ....
|
11 |
|
12 |
|
13 | //Funktion zum Lesen
|
14 | void RfReceivePacket( char *Buffer)
|
15 | {
|
16 | _LATA7=0; /*Kontrollanzeige*/
|
17 | TI_CC_SPIStrobe(TI_CCxxx0_SRX); /*Enable RX*/
|
18 | TI_CC_SPIReadBurstReg(TI_CCxxx0_RXFIFO, Buffer, 64);
|
19 | if(GDO2_PIN)
|
20 | TI_CC_SPIStrobe(TI_CCxxx0_SFRX);
|
21 | _LATA7=1;
|
22 |
|
23 | }
|