2021-10-29 01:26 PM
In the driver I see SUBGHZ_PKTCTL1A can be configured to enable PRBS9 test.
static void RadioTxPrbs( void )
{
SUBGRF_SetSwitch( SubgRf.AntSwitchPaSelect, RFSWITCH_TX );
Radio.Write( SUBGHZ_PKTCTL1A, 0x2d ); // sel mode prbs9 instead of preamble
SUBGRF_SetTxInfinitePreamble( );
SUBGRF_SetTx( 0x0fffff );
}
The RM describes the bits but it's not clear how they are used.
Bits 7:6 Reserved, must be kept at reset value.
Bit 5 SYNCDETEN: Generic packet synchronization word detection enable
Bit 4 CONTTX: Generic packet continuous transmit enable
Bits 3:2 INFSEQSEL[1:0]: Generic packet infinite sequence selection
00: preamble 0x5555
01: all zero 0x0000
10: all one 0xFFFF
11: PRBS9
Bit 1 INFSQEQEN: Generic packet infinite sequence enable
Bit 0 WHITEINI[8]: Generic packet whitening initial value MSB bit [8]
Can I use this register to do a CW test at minimal modulation by setting the INFSEQSEL to 01 (all zeros)? Would the command be SetTxInfinitePreamble() or SetTxContinuousWave()?
Basically is the INFSEQSEL output when InfinitePreamble is enabled, when ContinuousWave is enabled, or both?
INFSQEQEN bit is used for long packet operation from what I've found.
How is CONTTX bit used?
2021-11-03 02:57 PM
There appears to be a problem in the radio that after SetTxContinuousWave() any subsequent SetTxInfinitePreamble() does NOT generate a modulated signal. I only see an unmodulated signal on a spectrum analyzer.
After reset/boot, SetTxInfinitePreamble does generate a modulated signal.
2021-11-03 08:53 PM
A workaround appears to be to set the Packet and Modulation Parameters again before enabling SetTxInfinitePreamble. Also the SetTx seems to be superfluous as SetTxInfinitePreamble() already enables TX.