@@ -462,20 +462,23 @@ uint16_t DSM_callback()
462462 else
463463 return DSM2_SFC_PERIOD - DSM_CH1_CH2_DELAY - DSM_WRITE_DELAY - DSM_READ_DELAY;
464464 }
465- return 11000 - DSM_WRITE_DELAY - DSM_READ_DELAY;
465+ return 10900 - DSM_WRITE_DELAY - DSM_READ_DELAY; // Was 11000 but the SR6200A needs 10900 to report telemetry correctly
466466 }
467467 #endif
468468 return 11000 - DSM_CH1_CH2_DELAY - DSM_WRITE_DELAY - DSM_READ_DELAY;
469469 case DSM_CH2_READ_A:
470470 case DSM_CH2_READ_B:
471471 // Read telemetry
472472 rx_phase = CYRF_ReadRegister (CYRF_07_RX_IRQ_STATUS);
473+ debug (" ST1:%02X " ,rx_phase);
473474 if ((rx_phase & 0x03 ) == 0x02 ) // RXC=1, RXE=0 then 2nd check is required (debouncing)
474475 rx_phase |= CYRF_ReadRegister (CYRF_07_RX_IRQ_STATUS);
476+ debug (" ST2:%02X " ,rx_phase);
475477 if ((rx_phase & 0x07 ) == 0x02 )
476478 { // good data (complete with no errors)
477479 CYRF_WriteRegister (CYRF_07_RX_IRQ_STATUS, 0x80 ); // need to set RXOW before data read
478480 length=CYRF_ReadRegister (CYRF_09_RX_COUNT);
481+ debug (" RX(%d)" ,length);
479482 if (length>TELEMETRY_BUFFER_SIZE-2 )
480483 length=TELEMETRY_BUFFER_SIZE-2 ;
481484 CYRF_ReadDataPacketLen (packet_in+1 , length);
@@ -489,8 +492,11 @@ uint16_t DSM_callback()
489492 }
490493 #endif
491494 packet_in[0 ]=CYRF_ReadRegister (CYRF_13_RSSI)&0x1F ;// store RSSI of the received telemetry signal
495+ // for(uint8_t i=0;i<length+1;i++)
496+ // debug(" %02X", packet_in[i]);
492497 telemetry_link=1 ;
493498 }
499+ debugln (" " );
494500 CYRF_WriteRegister (CYRF_29_RX_ABORT, 0x20 ); // Abort RX operation
495501 if (phase == DSM_CH2_READ_A && (sub_protocol==DSM2_1F || sub_protocol==DSMX_1F) && num_ch < 8 ) // 22ms mode
496502 {
0 commit comments