How to configure PA LAN switch on RSL10 DIO

We want to add a PA LAN to RSL10, but can’t find the relevant RX TX How to configure PA LAN switch configuration, please help guide, thank you!

@Zhiwei.Lyu

Please refer to our previous topic as a reference.

KB: Using DIO PIN to show TX and RX activity on RSL10

USE DIO PIN TO SHOW TX or RX ACTIVE Sometimes we need know when TX/RX is active for some application (like coexistence with WIFI). RSL10 can have this capability to show TX/RX activity by using DIO PINs. Here is an example of how to use DIO1 to show TX activity, and DIO3 to show RX activity. Let’s use the peripheral_server sample application for reference. Step 1: Define DIO1 and DIO3 for output. Sys_DIO_Config(1, DIO_MODE_GPIO_OUT_0); Sys_DIO_Config(3, DIO_MODE_GPIO_OUT_0); Step 2: Def…

Thank you for using our community forum!

martin.bela, thank you very much for your support, thank you!

2 Likes

Hi,martin.bela,The output PIN of the RX TX switch, I don’t know which register to read to get this switch pulse?

@Zhiwei.Lyu

The article has shown these registers to get the information from , look at: app_init.c

/* BBIF_COEX_INT_STATUS (0x40001414) = RF coexistence interrupt status register
 * Bit[0] = BLE_RX_EVENT_FLAG (Indicates if a BLE_RX_EVENT interrupt has been generated)
 * Bit[4] = BLE_TX_EVENT_FLAG (Indicates if a BLE_TX_EVENT interrupt has been generated)
 *
 * BBIF_COEX_STATUS (0x4000140C) = RF coexistence status register
 * Bit[0] = BLE_TX (Indicates if the BLE baseband core is busy and performs Tx activity, active high)
 * Bit[4] = BLE_RX (Indicates if the BLE baseband core is busy and performs Rx activity, active high)
 * */
void BLE_COEX_RX_TX_IRQHandler (void)
{
	volatile uint32_t temp = (*(uint32_t *)0x40001414);
	volatile uint32_t temp2 = (*(uint32_t *)0x4000140C);
	if(temp & 0x10)  // TX Event
	{
		if(temp2 & 0x10)   // Keep high when TX active
		{
			Sys_GPIO_Set_High(1);
		}

	    else
	    {
	    	Sys_GPIO_Set_Low(1); // Keep low when no TX active
	    }
	}
	else if(temp & 0x1)  //RX Event
	{
		if(temp2 & 0x1)
		{
			Sys_GPIO_Set_High(3); //High when RX active
		}
		else
		{
			Sys_GPIO_Set_Low(3); // Low when no TX active
		}
	}

}

Hi,martin.bela,
I’m using code_remote_mic_tx_raw to do a remote wireless mic and BBIF_COEX_INT_STATUS (0x40001414) seems to have no data in this example. Please guide me, thanks!

Hi @Zhiwei.Lyu ,
Since the remote_mic_tx_raw uses its own remote_miclib, it already has the same configuration in there. You could put a DIO output in there to show TX ON and OFF.

For example:
RM_TransmitPacket() – Pre-transmission processing and enable Transmitter
RF_TX_IRQHandler() – Interrupt routine for the end of transmission

Hi,martin.bela,Thank you very much for your guidance.