This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

基于CC2530,到有关部门做电磁干扰测试,射频部分未通过

Other Parts Discussed in Thread: CC2530

测试要求产品在规定信道发出测试信号,因为在测试时使用了Smart RF studio软件,系统外接PC机算作弊,因而没有通过测试。CC2530是否有专门的脱离PC机测试信号的程序?为什么我按照swru191f.pdf文件上的说明,设置寄存器MDMTEST1 |= 0x10后,并未见到CC2530发出连续信号?

  • 用Studio测试时可以的,你可以把线引出来。

    如果你需要直接跑代码测试,参考下面的代码,在ZNP的工程里面可以找到。

    void znpTestRF(void)
    {
    uint8 rfTestParms[4] = { 0, 0, 0, 0 };

    if ((SUCCESS != osal_nv_item_init(ZNP_NV_RF_TEST_PARMS, 4, rfTestParms)) ||
    (SUCCESS != osal_nv_read(ZNP_NV_RF_TEST_PARMS, 0, 4, rfTestParms)) ||
    (rfTestParms[0] == 0))
    {
    return;
    }

    // Settings from SmartRF Studio
    MDMCTRL0 = 0x85;
    RXCTRL = 0x3F;
    FSCTRL = 0x5A;
    FSCAL1 = 0x2B;
    AGCCTRL1 = 0x11;
    ADCTEST0 = 0x10;
    ADCTEST1 = 0x0E;
    ADCTEST2 = 0x03;

    FRMCTRL0 = 0x43;
    FRMCTRL1 = 0x00;

    MAC_RADIO_RXTX_OFF();
    MAC_RADIO_SET_CHANNEL(rfTestParms[1]);
    MAC_RADIO_SET_TX_POWER(rfTestParms[2]);
    TX_PWR_TONE_SET(rfTestParms[3]);

    switch (rfTestParms[0])
    {
    case 1: // Rx promiscuous mode.
    MAC_RADIO_RX_ON();
    break;

    case 2: // Un-modulated Tx.
    TX_PWR_MOD__SET(1);
    // no break;

    case 3: // Modulated Tx.
    // Modulated is default register setting, so no special action.

    // Now turn on Tx power for either mod or un-modulated Tx test.
    MAC_RADIO_TX_ON();
    break;

    default: // Not expected.
    break;
    }

    // Clear the RF test mode.
    (void)osal_memset(rfTestParms, 0, 4);
    (void)osal_nv_write(ZNP_NV_RF_TEST_PARMS, 0, 4, rfTestParms);

    while (1); // Spin in RF test mode until a hard reset.
    }

  • 移植了代码,为什么没有MAC_RADIO_TX_ON和TX_PWR_MOD__SET两个函数接口?

  • check 

    znp_soc.c