コード例 #1
0
ファイル: phhalHw_Rd70x_Int.c プロジェクト: halilercikan/DWMS
phStatus_t phhalHw_Rd70x_WriteFifo(
                                   phhalHw_Rd70x_DataParams_t * pDataParams,
                                   uint8_t * pData,
                                   uint16_t wLength,
                                   uint16_t * pBytesWritten
                                   )
{
    phStatus_t  PH_MEMLOC_REM statusTmp;
    uint16_t    PH_MEMLOC_COUNT wIndex;

    /* Write each single data byte */
    for (wIndex = 0; wIndex < wLength; ++wIndex)
    {
        PH_CHECK_SUCCESS_FCT(statusTmp, phhalHw_Rd70x_WriteRegister(
            pDataParams,
            PHHAL_HW_RD70X_REG_FIFO_DATA,
            pData[wIndex]));
    }

    *pBytesWritten = wLength;
    return PH_ADD_COMPCODE(PH_ERR_SUCCESS, PH_COMP_HAL);
}
コード例 #2
0
ファイル: phhalHw_Rd70x_Int.c プロジェクト: halilercikan/DWMS
phStatus_t phhalHw_Rd70x_SetTypeBRegs(
                                      phhalHw_Rd70x_DataParams_t * pDataParams
                                      )
{
    phStatus_t  PH_MEMLOC_REM statusTmp;
    uint8_t     PH_MEMLOC_REM bRegister;

    /* Retrieve ChannelRedundancy Register */
    PH_CHECK_SUCCESS_FCT(statusTmp, phhalHw_Rd70x_ReadRegister(
        pDataParams,
        PHHAL_HW_RD70X_REG_CHANNEL_REDUND,
        &bRegister));

    /* Set CRC for TypeB */
    bRegister |= PHHAL_HW_RD70X_BIT_CRC3309;

    /* Write changed ChannelRedundancy Register */
    PH_CHECK_SUCCESS_FCT(statusTmp, phhalHw_Rd70x_WriteRegister(
        pDataParams,
        PHHAL_HW_RD70X_REG_CHANNEL_REDUND,
        bRegister));

    /* Retrieve CoderControl Register */
    PH_CHECK_SUCCESS_FCT(statusTmp, phhalHw_Rd70x_ReadRegister(
        pDataParams,
        PHHAL_HW_RD70X_REG_CODER_CONTROL,
        &bRegister));

    /* Mask out current CoderRate and TxCoding settings */
    bRegister &= (uint8_t)~(uint8_t)(PHHAL_HW_RD70X_MASK_CODERRATE | PHHAL_HW_RD70X_MASK_TXCODING);

    /* Set TypeB settings */
    bRegister |= PHHAL_HW_RD70X_BIT_TXCODING_TYPEB;

    switch (pDataParams->wCfgShadow[PHHAL_HW_CONFIG_TXDATARATE])
    {
    case PHHAL_HW_RF_DATARATE_106:
        bRegister |= PHHAL_HW_RD70X_BIT_CODERRATE_TYPEB;
        break;
    case PHHAL_HW_RF_DATARATE_212:
        bRegister |= PHHAL_HW_RD70X_BIT_CODERRATE_106K;
        break;
    case PHHAL_HW_RF_DATARATE_424:
        bRegister |= PHHAL_HW_RD70X_BIT_CODERRATE_212K;
        break;
    case PHHAL_HW_RF_DATARATE_848:
        bRegister |= PHHAL_HW_RD70X_BIT_CODERRATE_424K;
        break;
    default:
        return PH_ADD_COMPCODE(PH_ERR_INTERNAL_ERROR, PH_COMP_HAL);
    }

    /* Write changed CoderControl Register */
    PH_CHECK_SUCCESS_FCT(statusTmp, phhalHw_Rd70x_WriteRegister(
        pDataParams,
        PHHAL_HW_RD70X_REG_CODER_CONTROL,
        bRegister));

    /* Retrieve DeoderControl Register */
    PH_CHECK_SUCCESS_FCT(statusTmp, phhalHw_Rd70x_ReadRegister(
        pDataParams,
        PHHAL_HW_RD70X_REG_DECODER_CONTROL,
        &bRegister));

    /* Mask out current RxFraming settings */
    bRegister &= (uint8_t)~(uint8_t)PHHAL_HW_RD70X_MASK_RXFRAMING;

    /* Set TypeB settings */
    bRegister |= PHHAL_HW_RD70X_BITS_RXFRAMING_TYPEB | PHHAL_HW_RD70X_BIT_RXCODING_BPSK;

    /* Write changed DeoderControl Register */
    PH_CHECK_SUCCESS_FCT(statusTmp, phhalHw_Rd70x_WriteRegister(
        pDataParams,
        PHHAL_HW_RD70X_REG_DECODER_CONTROL,
        bRegister));

    /* Write BPSKDemControl Register */
    bRegister = 0x0C;
    PH_CHECK_SUCCESS_FCT(statusTmp, phhalHw_Rd70x_WriteRegister(
        pDataParams,
        PHHAL_HW_RD70X_REG_BPSK_DEM_CONTROL,
        bRegister));

    /* Write TypeBFraming Register */
    bRegister = 0x00;
    PH_CHECK_SUCCESS_FCT(statusTmp, phhalHw_Rd70x_WriteRegister(
        pDataParams,
        PHHAL_HW_RD70X_REG_TYPEB_FRAMING,
        bRegister));

    return PH_ADD_COMPCODE(PH_ERR_SUCCESS, PH_COMP_HAL);
}
コード例 #3
0
ファイル: phhalHw.c プロジェクト: GeorgN/RealTime-NFC-Reader
phStatus_t phhalHw_WriteRegister(
                                 void * pDataParams,
                                 uint8_t bAddress,
                                 uint8_t bValue
                                 )
{
    phStatus_t PH_MEMLOC_REM status;

    PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phhalHw_WriteRegister");
    /*PH_LOG_HELPER_ALLOCATE_PARAMNAME(pDataParams);*/
    PH_LOG_HELPER_ALLOCATE_PARAMNAME(bAddress);
    PH_LOG_HELPER_ALLOCATE_PARAMNAME(bValue);
    PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
    PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
    PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bAddress_log, &bAddress);
    PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bValue_log, &bValue);
    PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
	PH_ASSERT_NULL (pDataParams);

    /* Check data parameters */
    if (PH_GET_COMPCODE(pDataParams) != PH_COMP_HAL)
    {
        PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
        PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
        PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);

        return PH_ADD_COMPCODE(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_HAL);
    }

    /* perform operation on active layer */
    switch (PH_GET_COMPID(pDataParams))
    {
#ifdef NXPBUILD__PHHAL_HW_RC663
    case PHHAL_HW_RC663_ID:
        status = phhalHw_Rc663_WriteRegister((phhalHw_Rc663_DataParams_t *)pDataParams, bAddress, bValue);
        break;
#endif /* NXPBUILD__PHHAL_HW_RC663 */

#ifdef NXPBUILD__PHHAL_HW_RC523
    case PHHAL_HW_RC523_ID:
        status = phhalHw_Rc523_WriteRegister((phhalHw_Rc523_DataParams_t *)pDataParams, bAddress, bValue);
        break;
#endif /* NXPBUILD__PHHAL_HW_RC523 */

#ifdef NXPBUILD__PHHAL_HW_RD70X
    case PHHAL_HW_RD70X_ID:
        status = phhalHw_Rd70x_WriteRegister((phhalHw_Rd70x_DataParams_t *)pDataParams, bAddress, bValue);
        break;
#endif /* NXPBUILD__PHHAL_HW_RD70X */

#ifdef NXPBUILD__PHHAL_HW_RD710
    case PHHAL_HW_RD710_ID:
        status = phhalHw_Rd710_WriteRegister((phhalHw_Rd710_DataParams_t *)pDataParams, bAddress, bValue);
        break;
#endif /* NXPBUILD__PHHAL_HW_RD710 */

#ifdef NXPBUILD__PHHAL_HW_CALLBACK
    case PHHAL_HW_CALLBACK_ID:
        status = phhalHw_Callback_WriteRegister((phhalHw_Callback_DataParams_t *)pDataParams, bAddress, bValue);
        break;
#endif /* NXPBUILD__PHHAL_HW_CALLBACK */

#ifdef NXPBUILD__PHHAL_HW_RC632
    case PHHAL_HW_RC632_ID:
        status = phhalHw_Rc632_WriteRegister((phhalHw_Rc632_DataParams_t *)pDataParams, bAddress, bValue);
        break;
#endif /* NXPBUILD__PHHAL_HW_RC632 */

    default:
        status = PH_ADD_COMPCODE(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_HAL);
        break;
    }

    PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
    PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
    PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);

    return status;
}