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

BT wireless specs

Hello,

Our product (sports timing) will be used at the upcoming Olympics and our customer is being asked some questions about wireless specs. We use Bluetooth 5 (backward compatible to 4.0) to connect our peripherals devices to Apple iOS devices as centrals--all standard Bluetooth. We use only BLE_GAP_PHY_1MBPS, a connection interval of 120 ms.

In addition, we use the Timeslot API to synchronize clocks on multiple peripherals. We customized the Wireless timer synchronization among nRF5 devices guide provided on devzone. Here's our code to configure the radio for Timeslot usage:

static void update_radio_parameters(sync_pkt_t * p_pkt)
{
    // TX power
	NRF_RADIO->TXPOWER  = RADIO_TXPOWER_TXPOWER_0dBm   << RADIO_TXPOWER_TXPOWER_Pos;

	// RF bitrate
	NRF_RADIO->MODE     = RADIO_MODE_MODE_Nrf_2Mbit       << RADIO_MODE_MODE_Pos;

	// Fast startup mode
	NRF_RADIO->MODECNF0 = RADIO_MODECNF0_RU_Fast << RADIO_MODECNF0_RU_Pos;

	// CRC configuration
	NRF_RADIO->CRCCNF  = RADIO_CRCCNF_LEN_Three << RADIO_CRCCNF_LEN_Pos;
	NRF_RADIO->CRCINIT = 0xFFFFFFUL;      // Initial value
	NRF_RADIO->CRCPOLY = 0x11021UL;     // CRC poly: x^16+x^12^x^5+1

	// Packet format
	NRF_RADIO->PCNF0 = (0 << RADIO_PCNF0_S0LEN_Pos) | (0 << RADIO_PCNF0_LFLEN_Pos) | (0 << RADIO_PCNF0_S1LEN_Pos);
	NRF_RADIO->PCNF1 = (RADIO_PCNF1_WHITEEN_Disabled     << RADIO_PCNF1_WHITEEN_Pos) |
					   (RADIO_PCNF1_ENDIAN_Big           << RADIO_PCNF1_ENDIAN_Pos)  |
					   (4                                << RADIO_PCNF1_BALEN_Pos)   |
					   (sizeof(sync_pkt_t)               << RADIO_PCNF1_STATLEN_Pos) |
					   (sizeof(sync_pkt_t)               << RADIO_PCNF1_MAXLEN_Pos);
	NRF_RADIO->PACKETPTR = (uint32_t) p_pkt;

	// Radio address config
	NRF_RADIO->PREFIX0 = m_params.rf_addr[0];
	NRF_RADIO->BASE0   = (m_params.rf_addr[1] << 24 | m_params.rf_addr[2] << 16 | m_serial_number_for_radio_address_hi_bits << 8 | m_serial_number_for_radio_address_lo_bits);

	NRF_RADIO->TXADDRESS   = 0;
	NRF_RADIO->RXADDRESSES = (1 << 0);

	NRF_RADIO->FREQUENCY = m_params.rf_chn;

	NRF_RADIO->TXPOWER   = RADIO_TXPOWER_TXPOWER_Pos4dBm << RADIO_TXPOWER_TXPOWER_Pos;

	NRF_RADIO->EVENTS_END = 0;

	NRF_RADIO->INTENCLR = 0xFFFFFFFF;
	NRF_RADIO->INTENSET = RADIO_INTENSET_END_Msk | RADIO_INTENSET_ADDRESS_Msk;

	NVIC_EnableIRQ(RADIO_IRQn);
}

sync_pkt_t is defined as:

typedef PACKED_STRUCT
{
uint32_t timer_val;
} sync_pkt_t;

m_params.rf_addr is defined as:

uint8_t rf_address[5] = { 0xDE, 0xAD, 0xBE, < a byte from 0-255 >, < a byte from 0-255 > };

Here are the questions we need to answer for the Olympic committee:

1. Tunable Frequency Range(MHz)
- From:
- To:
- Channel Spacing(Tuning Step):

2. Preferred Center Frequency(Tx)[MHz]
- Preferred Center Fre quency:
- Occupied Bandwidth for Each Device:

3. Preferred Center Frequency(Rx)[MHz]
- Preferred Center Frequency:
- Occupied Bandwidth for Each Device:

4. Modulation Mode:

5. Maximum Power(EIRP,dBm):

Thank you for any assistance.

Tim

Parents Reply Children
No Data
Related