This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

I can not recieve advertisement with Radio driver

I would like recieve all advertisement in my way, and I development my application on the DK PCA10056. My code as below:

__ALIGN(4) static uint8_t m_ble_rx_buffer[320];

void ww_radio_rx( void )
{
    nrf_radio_packet_conf_t pkt_cnf;
    
    pkt_cnf.lflen       = 1; // 8bits length filed
    pkt_cnf.s0len       = 1; // 1byte S0 filed
    pkt_cnf.s1len       = 0; // No S1 filed
    pkt_cnf.s1incl      = RADIO_PCNF0_S1INCL_Automatic; //Do not include S1 filed
    pkt_cnf.cilen       = 0; // No Code Indicator
    pkt_cnf.plen        = NRF_RADIO_PREAMBLE_LENGTH_8BIT;
    pkt_cnf.crcinc      = RADIO_PCNF0_CRCINC_Exclude;
    pkt_cnf.termlen     = 0; //TERM Filed Length=0
    pkt_cnf.maxlen      = 255; //max payload size=255
    pkt_cnf.big_endian  = 0; //Little endian
    pkt_cnf.whiteen     = 1; //whiten
    pkt_cnf.statlen     = 0; //static filed length=0
    
    
    nrf_radio_power_set( 0 );
    nrf_radio_power_set( 1 );
    nrf_radio_packet_configure( &pkt_cnf );
    nrf_radio_base0_set( 0x89BED600 );
    nrf_radio_base1_set( 0x8E8E8E8E );
    nrf_radio_txpower_set( NRF_RADIO_TXPOWER_0DBM );
    nrf_radio_frequency_set( 2402 );
    nrf_radio_mode_set( NRF_RADIO_MODE_BLE_1MBIT );
    nrf_radio_shorts_set( NRF_RADIO_SHORT_READY_START_MASK | NRF_RADIO_SHORT_END_DISABLE_MASK );
    nrf_radio_txaddress_set( 0 );
    nrf_radio_rxaddresses_set( 1 );
    nrf_radio_crc_configure( RADIO_CRCCNF_LEN_Three, NRF_RADIO_CRC_ADDR_SKIP, 0x1000065B );
    nrf_radio_crcinit_set( 0x555555 );
    nrf_radio_ifs_set( 150 );
    nrf_radio_datawhiteiv_set( 37 );
    nrf_radio_modecnf0_set( 1, 0 );
    
    //nrf_radio_int_enable( NRF_RADIO_INT_ADDRESS_MASK );
    //nrf_radio_int_enable( NRF_RADIO_INT_END_MASK );
    
    NVIC_SetPriority(RADIO_IRQn, 0);
    NVIC_EnableIRQ(RADIO_IRQn);
    NVIC_ClearPendingIRQ(RADIO_IRQn);
    
    
    
    nrf_radio_event_clear( NRF_RADIO_EVENT_DISABLED );
    nrf_radio_task_trigger( NRF_RADIO_TASK_DISABLE );
    while( !nrf_radio_event_check( NRF_RADIO_EVENT_DISABLED ) )
    {
        
    }
    
    
    nrf_radio_packetptr_set( m_ble_rx_buffer );
    nrf_radio_event_clear( NRF_RADIO_EVENT_END );
    nrf_radio_task_trigger( NRF_RADIO_TASK_RXEN );
    while( !nrf_radio_event_check( NRF_RADIO_EVENT_END ) )
    {
        
    }
    
    nrf_radio_event_clear( NRF_RADIO_EVENT_END );
    nrf_radio_int_disable( NRF_RADIO_INT_END_MASK );
}

But, I can't recieve any valid advertisement! 

                                                                   Tks!

Parents Reply Children
No Data
Related