This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2530: CC2530 + CC2592 ZStack HA EN pin change

Part Number: CC2530
Other Parts Discussed in Thread: CC2592, , Z-STACK, CC2591, CC2590, CSD

Hi everyone! I use E18-MS1PA1-PCB (www.ebyte.com/.../product-view-news.aspx for my project. This board use cc2592 amplifier, but EN pin of amplifier connected to the P1_0 pin of cc2530 instead of P1_3 as required in Main pin configuration in ZStack Home 1.2.2a. So my question is - how (and where) can i change EN pin i ZStack from P1_3 to P1_0?

  • In Z-Stack, if you define HAL_PA_LNA_CC2592, it will use P1_0 pin of cc2530 as EN not P1_3 so I suppose you don't have to change it.
  • Can you tell me please, where should i define it? I can't found something similar not in znp.cfg nor f8wConfig.cfg
    And i forgot to say that i use it as ZNP device. It does matter?
  • You can refer to the following red codes in mac_radio_defs.c. It doesn't matter using ZNP or not.

    #if defined MAC_RUNTIME_CC2591 || defined MAC_RUNTIME_CC2590 || \
        defined MAC_RUNTIME_SE2431L || defined MAC_RUNTIME_CC2592 || \
        defined HAL_PA_LNA || defined HAL_PA_LNA_CC2590 || \
        defined HAL_PA_LNA_SE2431L || defined HAL_PA_LNA_CC2592
      { /* either if compound statement or non-conditional compound statement */
        
        /* (Re-)Configure PA and LNA control signals to RF frontend chips.
        * Note that The register values are not retained during sleep.
        */
        
        if (paLnaChip == PA_LNA_SE2431L)
        {
          /* CPS or P0_7 maps closely to the HGM line */
          HAL_PA_LNA_RX_HGM();
     
          /* EN or CSD line is controlled via software so setting it high here to start the SE2431L frontend */
          HAL_PA_LNA_RX_CSD_HIGH();
          
          /* CTX or P1_1 maps closely to PAEN */
          RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;
          OBSSEL1       = OBSSEL_OBS_CTRL0;
        }
        else if(paLnaChip == PA_LNA_CC2592)
        {
          /* P1_1 -> PAEN */
          RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;
          OBSSEL1       = OBSSEL_OBS_CTRL0;
          
          /* P1_0 -> EN (LNA control) */
          RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV;
          OBSSEL0       = OBSSEL_OBS_CTRL1;
        }  
        else
        {   
          /* P1_1 -> PAEN */
          RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;
          OBSSEL1       = OBSSEL_OBS_CTRL0;
          
          /* P1_4 -> EN (LNA control) */
          RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV;
          OBSSEL4       = OBSSEL_OBS_CTRL1;
        }
        
        /* For any RX, change CCA settings for CC2591 compression workaround.
        * This will override LNA control if CC2591_COMPRESSION_WORKAROUND
        * flag is defined.
        */
      }

  • So as i understand, i shoud define #define HAL_PA_LNA in my hal_board_cfg.h file and add HAL_PA_LNA_CC2592 to my Project->Options->C/C++ Compiler->Preprocessor->Defined symbols. Than paLnaChip variable should be equal to PA_LNA_CC2592, is it right?
  • You only need to add HAL_PA_LNA_CC2592 to your Project->Options->C/C++ Compiler->Preprocessor->Defined symbols.