Exemplo n.º 1
0
unsigned char Si4438_Tx__Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;

  SetHighRate();  //设置成高速率模式
  //配置相应发送GPIO口
  GPIO_InitStructure.GPIO_Pin = TX_DATA_PIN;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(TX_DATA_PORT, &GPIO_InitStructure);

  
  GPIO_InitStructure.GPIO_Pin = TX_CLK_PIN;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(TX_CLK_PORT, &GPIO_InitStructure);

  si446x_change_state(SI446X_CMD_CHANGE_STATE_ARG_NEW_STATE_ENUM_READY);
  si4438_phy.RF_status=RF_IDLE_FLAG;
  
  NVIC_DisableIRQ(GDIO1_EXTI_IRQn);
  NVIC_DisableIRQ(GDIO0_EXTI_IRQn);
  
  if (SI446X_SUCCESS != si446x_configuration_init(DirectModefiguration))
  {
    DBUG("Si4438_Tx__Config fail\r\n");
    wireless_phy_init();
    return 0;
  }
  return 1;
}
Exemplo n.º 2
0
void vRadio_Init(void)
{
  volatile    unsigned int tick_tmp;
  unsigned char times=0;
  /* Power Up the radio chip */
  si446x_reset();
//  si446x_apply_patch();
//  vRadio_PowerUp();
#ifdef SI446X_PATCH_CMDS
  if( si446x_apply_patch()==SI446X_SUCCESS)
  {
      DBUG("si446x_apply_patch SI446X_SUCCESS \r\n");
      si446x_power_up(0x01,0x00,0x01C9C380);
  }
  else
  {
    DBUG("si446x_apply_patch fail \r\n");
    si446x_power_up(0x01,0x00,0x01C9C380);
  }
#else
  DBUG(" no si446x_apply_patch  \r\n");
  si446x_power_up(0x01,0x00,0x01C9C380);
#endif
  /* Load radio configuration */
  si4438_phy.SI4438_reset_flag=1;
  while (SI446X_SUCCESS != si446x_configuration_init(pRadioConfiguration->Radio_ConfigurationArray))
  {
    times++;
    if(times>4)
    {
      si4438_phy.SI4438_reset_flag=0;
      DBUG("si446x_configuration_init fail");
      break;
    }
    Iwdg_Init();
    tick_tmp=GET_SYS_TICK;
    while(GET_SYS_TICK < (tick_tmp+TICK_50MS));
    SI4438_Config();
    si446x_reset();
  }

  // Read ITs, clear pending ones
  si446x_get_int_status(0u, 0u, 0u);
}
Exemplo n.º 3
0
/*!
 *  Radio Initialization.
 *
 *  @author Sz. Papp
 *
 *  @note
 *
 */
void vRadio_Init(void)
{
  /* Power Up the radio chip */
  vRadio_PowerUp();

  /* Load radio configuration */
  while (SI446X_SUCCESS != si446x_configuration_init(pRadioConfiguration->Radio_ConfigurationArray))
  {
    /* Error hook */
    BSP_LedSet(0);
    Delay(2);
    BSP_LedClear(0);

    /* Power Up the radio chip */
    vRadio_PowerUp();
  }

  // Read ITs, clear pending ones
  si446x_get_int_status(0u, 0u, 0u);
}
Exemplo n.º 4
0
/*!
 *  Radio Initialization.
 *
 *  @author Sz. Papp
 *
 *  @note
 *
 */
void vRadio_Init(void)
{
  U16 wDelay;

  /* Power Up the radio chip */
  vRadio_PowerUp();

  /* Load radio configuration */
  while (SI446X_SUCCESS != si446x_configuration_init(pRadioConfiguration->Radio_ConfigurationArray))
  {
    /* Error hook */    
    for (wDelay = 0x7FFF; wDelay--; ) ;

    /* Power Up the radio chip */
    vRadio_PowerUp();
  }

  // Read ITs, clear pending ones
  si446x_get_int_status(0u, 0u, 0u);
}
Exemplo n.º 5
0
void vRadio_Init(void)
{
  U16 wDelay;

  /* Power Up the radio chip */
  vRadio_PowerUp();

  /* Load radio configuration */
  while (SI446X_SUCCESS != si446x_configuration_init(pRadioConfiguration->Radio_ConfigurationArray))
  {

    for (wDelay = 0x7FFF; wDelay--; ) ;

    /* Power Up the radio chip */
    vRadio_PowerUp();
  }

  // Read ITs, clear pending ones
  si446x_get_int_status(0u, 0u, 0u);  
  
  si446x_fifo_info(SI446X_CMD_FIFO_INFO_ARG_RX_BIT);
} 
Exemplo n.º 6
0
/*!
 *  Radio Initialization.
 *
 *  @author Sz. Papp
 *
 *  @note
 *
 */
void vRadio_Init(void)
{
  U16 wDelay;

  /* Power Up the radio chip */
  vRadio_PowerUp();

  /* Load radio configuration */
  while (SI446X_SUCCESS != si446x_configuration_init(pRadioConfiguration->Radio_ConfigurationArray))
  {
    /* Error hook */
#if !(defined SILABS_PLATFORM_WMB912)
    LED4 = !LED4;
#else
    vCio_ToggleLed(eHmi_Led4_c);
#endif
    for (wDelay = 0x7FFF; wDelay--; ) ;
    /* Power Up the radio chip */
    vRadio_PowerUp();
  }

  // Read ITs, clear pending ones
  si446x_get_int_status(0u, 0u, 0u);
}