Hi all, we are performing some transmitter spectrum measurements using your nRFGo (PCA10005) board and an Aaronia HF-60105 spectrum analyzer. The SMA connector of nRFGo has been connected to the spectrum analyzer through a 30 dB attenuator. On the PCA10005 board we have uploaded a custom DTM firmware that performs only the TRANSMITTER_TEST.
This is the code of the main file:
#include <stdint.h>
#include <stdbool.h>
#include "nrf51.h"
#include "nrf51_bitfields.h"
#include "ble_dtm.h"
#include "boards.h"
#include "nrf_gpio.h"
#define UICR 0x10001080
int main(void)
{
uint32_t dtm_error_code;
uint32_t dtm_tx_power = ((*(uint32_t *)UICR) & 0xFFFF0000) >> 16;
uint32_t dtm_freq = ((*(uint32_t *)UICR) & 0x0000FFFF);
// dtm init
dtm_error_code = dtm_init();
if (dtm_error_code != DTM_SUCCESS)
{
// If DTM cannot be correctly initialized, then we just return.
return -1;
}
if (dtm_set_txpower(dtm_tx_power) != true)
{
// Error
return -1;
}
// dtm transmitter test
dtm_error_code = dtm_cmd(LE_TRANSMITTER_TEST, dtm_freq, 32, DTM_PKT_PRBS9);
if (dtm_error_code != DTM_SUCCESS)
{
// If DTM cannot be correctly initialized, then we just return.
return -1;
}
for (;;)
{
// Will return every timeout, 625 us.
dtm_wait();
}
}
Using this firmware the physical channel and the tx power are read from the UICR register (that we write during flashing procedure).
We have found some strange spurs at about TX frequency + 430 MHz (see attached sweep image). This seems not to be the local oscillator which is about 330 Mhz above RX frequency. The spur level is about -23 dBm, much higher than the expected LO leakage.
Can someone explain this strange behavior?