| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- /******************************************************************************
- * \attention
- *
- * <h2><center>© COPYRIGHT 2020 STMicroelectronics</center></h2>
- *
- * Licensed under ST MYLIBERTY SOFTWARE LICENSE AGREEMENT (the "License");
- * You may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * www.st.com/myliberty
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
- * AND SPECIFICALLY DISCLAIMING THE IMPLIED WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ******************************************************************************/
- /*
- * PROJECT: ST25R3916 firmware
- * Revision:
- * LANGUAGE: ISO C99
- */
- /*! \file st25r3916_aat.h
- *
- * \author
- *
- * \brief ST25R3916 Antenna Tuning
- *
- * The antenna tuning algorithm tries to find the optimal settings for
- * the AAT_A and AAT_B registers, which are connected to variable capacitors
- * to tune the antenna matching.
- *
- */
- #ifndef ST25R3916_AAT_H
- #define ST25R3916_AAT_H
- #include "platform.h"
- #include "st_errno.h"
- /*
- ******************************************************************************
- * GLOBAL DATATYPES
- ******************************************************************************
- */
- /*!
- * struct representing input parameters for the antenna tuning
- */
- struct st25r3916AatTuneParams {
- uint8_t aat_a_min; /*!< min value of A cap */
- uint8_t aat_a_max; /*!< max value of A cap */
- uint8_t aat_a_start; /*!< start value of A cap */
- uint8_t aat_a_stepWidth; /*!< increment stepWidth for A cap */
- uint8_t aat_b_min; /*!< min value of B cap */
- uint8_t aat_b_max; /*!< max value of B cap */
- uint8_t aat_b_start; /*!< start value of B cap */
- uint8_t aat_b_stepWidth; /*!< increment stepWidth for B cap */
- uint8_t phaTarget; /*!< target phase */
- uint8_t phaWeight; /*!< weight of target phase */
- uint8_t ampTarget; /*!< target amplitude */
- uint8_t ampWeight; /*!< weight of target amplitude */
- bool doDynamicSteps; /*!< dynamically reduce step size in algo */
- uint8_t measureLimit; /*!< max number of allowed steps/measurements */
- };
- /*!
- * struct representing out parameters for the antenna tuning
- */
- struct st25r3916AatTuneResult {
- uint8_t aat_a; /*!< serial cap after tuning */
- uint8_t aat_b; /*!< parallel cap after tuning */
- uint8_t pha; /*!< phase after tuning */
- uint8_t amp; /*!< amplitude after tuning */
- uint16_t measureCnt; /*!< number of measures performed */
- };
- /*!
- *****************************************************************************
- * \brief Perform antenna tuning
- *
- * This function starts an antenna tuning procedure by modifying the serial
- * and parallel capacitors of the antenna matching circuit via the AAT_A
- * and AAT_B registers.
- *
- * \param[in] tuningParams : Input parameters for the tuning algorithm. If NULL
- * default values will be used.
- * \param[out] tuningStatus : Result information of performed tuning. If NULL
- * no further information is returned, only registers
- * ST25R3916 (AAT_A,B) will be adapted.
- *
- * \return ERR_IO : Error during communication.
- * \return ERR_PARAM : Invalid input parameters
- * \return ERR_NONE : No error.
- *
- *****************************************************************************
- */
- extern ReturnCode st25r3916AatTune(
- const struct st25r3916AatTuneParams* tuningParams,
- struct st25r3916AatTuneResult* tuningStatus);
- #endif /* ST25R3916_AAT_H */
|