diff --git a/Multiprotocol/TRAXXAS_cyrf6936.ino b/Multiprotocol/TRAXXAS_cyrf6936.ino index aeb10ec..6c3f119 100644 --- a/Multiprotocol/TRAXXAS_cyrf6936.ino +++ b/Multiprotocol/TRAXXAS_cyrf6936.ino @@ -20,6 +20,7 @@ #include "iface_cyrf6936.h" //#define TRAXXAS_FORCE_ID +//#define TRAXXAS_DEBUG #define TRAXXAS_CHANNEL 0x05 #define TRAXXAS_BIND_CHANNEL 0x2B @@ -65,8 +66,9 @@ static void __attribute__((unused)) TRAXXAS_cyrf_data_config() CYRF_WriteRegister(CYRF_15_CRC_SEED_LSB, 0x1B); CYRF_WriteRegister(CYRF_16_CRC_SEED_MSB, 0x3F); #else - CYRF_WriteRegister(CYRF_15_CRC_SEED_LSB, cyrfmfg_id[0]+0xB6); - CYRF_WriteRegister(CYRF_16_CRC_SEED_MSB, cyrfmfg_id[1]+0x5D); + uint16_t addr=TRAXXAS_EEPROM_OFFSET+RX_num*2; + CYRF_WriteRegister(CYRF_15_CRC_SEED_LSB, cyrfmfg_id[0] - eeprom_read_byte((EE_ADDR)(addr + 0))); + CYRF_WriteRegister(CYRF_16_CRC_SEED_MSB, cyrfmfg_id[1] - eeprom_read_byte((EE_ADDR)(addr + 1))); #endif CYRF_ConfigRFChannel(TRAXXAS_CHANNEL); CYRF_SetTxRxMode(TX_EN); @@ -115,19 +117,30 @@ uint16_t TRAXXAS_callback() status = CYRF_ReadRegister(CYRF_07_RX_IRQ_STATUS); if((status & 0x03) == 0x02) // RXC=1, RXE=0 then 2nd check is required (debouncing) status |= CYRF_ReadRegister(CYRF_07_RX_IRQ_STATUS); - debugln("s=%02X",status); + #ifdef TRAXXAS_DEBUG + debugln("s=%02X",status); + #endif CYRF_WriteRegister(CYRF_07_RX_IRQ_STATUS, 0x80); // need to set RXOW before data read if((status & 0x07) == 0x02) { // Data received with no errors len=CYRF_ReadRegister(CYRF_09_RX_COUNT); - debugln("L=%02X",len) + #ifdef TRAXXAS_DEBUG + debugln("L=%02X",len) + #endif if(len==TRAXXAS_PACKET_SIZE) { CYRF_ReadDataPacketLen(packet, TRAXXAS_PACKET_SIZE); - debug("RX="); - for(uint8_t i=0;i normal packet P[0]?? + - P[11..12] unchanged ?? + - P[13] changes from 0x06 to 0x05 but not needed to complete the bind + - P[14..15]=0x00 unchanged?? Bind phase 2 (looks like normal mode?) CHANNEL: 0x05 @@ -231,5 +253,11 @@ SOP_CODE: 0xA1 0x78 0xDC 0x3C 0x9E 0x82 0xDC 0x3C CRC_SEED_LSB: 0x1B CRC_SEED_MSB: 0x3F TX3: 0x01 0x00 0x02 0xA8 0x03 0xE7 0x02 0x08 0x00 0x00 0x01 0x01 0x02 0xEE 0x00 0x00 + +CRC_SEED: +TX ID: \x65\xE2\x5E\x55\x4D\xFE +RX ID: \x4A\xA3\x2D\x1A\x49\xFE CRC 0x1B 0x3F => CRC: 65-4A=1B E2-A3=3F +RX ID: \x4B\xA3\x2D\x1A\x49\xFE CRC 0x1A 0x3F => CRC: 65-4B=1A E2-A3=3F +RX ID: \x00\x00\x2D\x1A\x49\xFE CRC 0x65 0xE2 => CRC: 65-00=65 E2-00=E2 */ #endif