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

BLE occupied bandwidth too small

Hi everyone

We have a custom made board with NRF52832 chip. We are send it to FCC test lab and they told us the occupied bandwidth (OBW) is too small, 940kHz less than 1MHz. Please see the attached picure for details. When run this test we use the following setup for the radio:

void radio_modulated_tx_carrier(uint8_t txpower, uint8_t mode, uint8_t channel) {

radio_disable();
generate_modulated_rf_packet();
NRF_RADIO->SHORTS     = RADIO_SHORTS_END_DISABLE_Msk | RADIO_SHORTS_READY_START_Msk | \
                        RADIO_SHORTS_DISABLED_TXEN_Msk;;
NRF_RADIO->TXPOWER    = (txpower << RADIO_TXPOWER_TXPOWER_Pos);
NRF_RADIO->MODE       = (mode << RADIO_MODE_MODE_Pos);	
NRF_RADIO->FREQUENCY  = channel;
NRF_RADIO->TASKS_TXEN = 1;

}

oid generate_modulated_rf_packet(void) { uint8_t i;

NRF_RADIO->PREFIX0 = rnd8();
NRF_RADIO->BASE0   = rnd32();

// Packet configuration:
// S1 size = 0 bits, S0 size = 0 bytes, payload length size = 8 bits
NRF_RADIO->PCNF0  = (0UL << RADIO_PCNF0_S1LEN_Pos) |
                    (0UL << RADIO_PCNF0_S0LEN_Pos) |
                    (8UL << RADIO_PCNF0_LFLEN_Pos);
// Packet configuration:
// Bit 25: 1 Whitening enabled
// Bit 24: 1 Big endian,
// 4 byte base address length (5 byte full address length),
// 0 byte static length, max 255 byte payload .
NRF_RADIO->PCNF1  = (RADIO_PCNF1_WHITEEN_Enabled << RADIO_PCNF1_WHITEEN_Pos) |
                    (RADIO_PCNF1_ENDIAN_Big << RADIO_PCNF1_ENDIAN_Pos) |
                    (4UL << RADIO_PCNF1_BALEN_Pos) |
                    (0UL << RADIO_PCNF1_STATLEN_Pos) |
                    (255UL << RADIO_PCNF1_MAXLEN_Pos);
NRF_RADIO->CRCCNF = (RADIO_CRCCNF_LEN_Disabled << RADIO_CRCCNF_LEN_Pos);
r_test.packet[0]         = 254;    // 254 byte payload.

// Fill payload with random data.
for (i = 0; i < 254; i++)
{
    r_test.packet[i + 1] = rnd8();
}
NRF_RADIO->PACKETPTR = (uint32_t)r_test.packet;

}

image description

Thanks

Parents
  • Which SDK are you using the radio_test example out of? And,did you change the default modulation to BLE from Nordic Proprietary? Near top of main.c: static uint8_t mode_ = RADIO_MODE_MODE_Ble_1Mbit;

    As for your waveform above, it doesn't even look like a BLE waveform. This subject has come up before with people testing 6dB bandwidth and the solution is always using the correct software.

Reply
  • Which SDK are you using the radio_test example out of? And,did you change the default modulation to BLE from Nordic Proprietary? Near top of main.c: static uint8_t mode_ = RADIO_MODE_MODE_Ble_1Mbit;

    As for your waveform above, it doesn't even look like a BLE waveform. This subject has come up before with people testing 6dB bandwidth and the solution is always using the correct software.

Children
No Data
Related