Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of MAX4147X by
Max4147x.h@0:dc5ded118d7c, 2021-08-02 (annotated)
- Committer:
- Sinan Divarci
- Date:
- Mon Aug 02 16:34:28 2021 +0300
- Revision:
- 0:dc5ded118d7c
initial commit
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Sinan Divarci |
0:dc5ded118d7c | 1 | /******************************************************************************* |
| Sinan Divarci |
0:dc5ded118d7c | 2 | * Copyright(C) Maxim Integrated Products, Inc., All Rights Reserved. |
| Sinan Divarci |
0:dc5ded118d7c | 3 | * |
| Sinan Divarci |
0:dc5ded118d7c | 4 | * Permission is hereby granted, free of charge, to any person obtaining a |
| Sinan Divarci |
0:dc5ded118d7c | 5 | * copy of this software and associated documentation files(the "Software"), |
| Sinan Divarci |
0:dc5ded118d7c | 6 | * to deal in the Software without restriction, including without limitation |
| Sinan Divarci |
0:dc5ded118d7c | 7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
| Sinan Divarci |
0:dc5ded118d7c | 8 | * and/or sell copies of the Software, and to permit persons to whom the |
| Sinan Divarci |
0:dc5ded118d7c | 9 | * Software is furnished to do so, subject to the following conditions: |
| Sinan Divarci |
0:dc5ded118d7c | 10 | * |
| Sinan Divarci |
0:dc5ded118d7c | 11 | * The above copyright notice and this permission notice shall be included |
| Sinan Divarci |
0:dc5ded118d7c | 12 | * in all copies or substantial portions of the Software. |
| Sinan Divarci |
0:dc5ded118d7c | 13 | * |
| Sinan Divarci |
0:dc5ded118d7c | 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
| Sinan Divarci |
0:dc5ded118d7c | 15 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| Sinan Divarci |
0:dc5ded118d7c | 16 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
| Sinan Divarci |
0:dc5ded118d7c | 17 | * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES |
| Sinan Divarci |
0:dc5ded118d7c | 18 | * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
| Sinan Divarci |
0:dc5ded118d7c | 19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
| Sinan Divarci |
0:dc5ded118d7c | 20 | * OTHER DEALINGS IN THE SOFTWARE. |
| Sinan Divarci |
0:dc5ded118d7c | 21 | * |
| Sinan Divarci |
0:dc5ded118d7c | 22 | * Except as contained in this notice, the name of Maxim Integrated |
| Sinan Divarci |
0:dc5ded118d7c | 23 | * Products, Inc.shall not be used except as stated in the Maxim Integrated |
| Sinan Divarci |
0:dc5ded118d7c | 24 | * Products, Inc.Branding Policy. |
| Sinan Divarci |
0:dc5ded118d7c | 25 | * |
| Sinan Divarci |
0:dc5ded118d7c | 26 | * The mere transfer of this software does not imply any licenses |
| Sinan Divarci |
0:dc5ded118d7c | 27 | * of trade secrets, proprietary technology, copyrights, patents, |
| Sinan Divarci |
0:dc5ded118d7c | 28 | * trademarks, maskwork rights, or any other form of intellectual |
| Sinan Divarci |
0:dc5ded118d7c | 29 | * property whatsoever. Maxim Integrated Products, Inc.retains all |
| Sinan Divarci |
0:dc5ded118d7c | 30 | * ownership rights. |
| Sinan Divarci |
0:dc5ded118d7c | 31 | ******************************************************************************* |
| Sinan Divarci |
0:dc5ded118d7c | 32 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 33 | |
| Sinan Divarci |
0:dc5ded118d7c | 34 | #ifndef MAX4147X_MAX4147X_H_ |
| Sinan Divarci |
0:dc5ded118d7c | 35 | #define MAX4147X_MAX4147X_H_ |
| Sinan Divarci |
0:dc5ded118d7c | 36 | |
| Sinan Divarci |
0:dc5ded118d7c | 37 | #include "mbed.h" |
| Sinan Divarci |
0:dc5ded118d7c | 38 | #include "rtos.h" |
| Sinan Divarci |
0:dc5ded118d7c | 39 | #include "Max41470_regs.h" |
| Sinan Divarci |
0:dc5ded118d7c | 40 | #include "Max41473_4_regs.h" |
| Sinan Divarci |
0:dc5ded118d7c | 41 | |
| Sinan Divarci |
0:dc5ded118d7c | 42 | #define MAX4147X_SPI MXC_SPIM2 |
| Sinan Divarci |
0:dc5ded118d7c | 43 | |
| Sinan Divarci |
0:dc5ded118d7c | 44 | #define MAX4147X_PIN_POWER P4_0 |
| Sinan Divarci |
0:dc5ded118d7c | 45 | #define MAX4147X_PIN_RSSI P3_1 |
| Sinan Divarci |
0:dc5ded118d7c | 46 | #define MAX4147X_PIN_DATA P5_6 |
| Sinan Divarci |
0:dc5ded118d7c | 47 | |
| Sinan Divarci |
0:dc5ded118d7c | 48 | #define MAX4147X_I2C_SCL P3_5 |
| Sinan Divarci |
0:dc5ded118d7c | 49 | #define MAX4147X_I2C_SDA P3_4 |
| Sinan Divarci |
0:dc5ded118d7c | 50 | |
| Sinan Divarci |
0:dc5ded118d7c | 51 | #define MAX4147X_SPI_SCK P5_0 |
| Sinan Divarci |
0:dc5ded118d7c | 52 | #define MAX4147X_SPI_MOSI P5_1 |
| Sinan Divarci |
0:dc5ded118d7c | 53 | #define MAX4147X_SPI_MISO P5_2 |
| Sinan Divarci |
0:dc5ded118d7c | 54 | #define MAX4147X_SPI_SSEL P3_0 |
| Sinan Divarci |
0:dc5ded118d7c | 55 | |
| Sinan Divarci |
0:dc5ded118d7c | 56 | #define MAX4147X_I2C_ADDRESS 0xD6 |
| Sinan Divarci |
0:dc5ded118d7c | 57 | |
| Sinan Divarci |
0:dc5ded118d7c | 58 | #define Q_CONF_LEN 15 |
| Sinan Divarci |
0:dc5ded118d7c | 59 | |
| Sinan Divarci |
0:dc5ded118d7c | 60 | extern const uint8_t default_register_value_0[Q_CONF_LEN]; |
| Sinan Divarci |
0:dc5ded118d7c | 61 | extern const uint8_t default_register_value_1[Q_CONF_LEN]; |
| Sinan Divarci |
0:dc5ded118d7c | 62 | |
| Sinan Divarci |
0:dc5ded118d7c | 63 | template <class REG> |
| Sinan Divarci |
0:dc5ded118d7c | 64 | class MAX4147X |
| Sinan Divarci |
0:dc5ded118d7c | 65 | { |
| Sinan Divarci |
0:dc5ded118d7c | 66 | private: |
| Sinan Divarci |
0:dc5ded118d7c | 67 | REG *reg_map; |
| Sinan Divarci |
0:dc5ded118d7c | 68 | I2C *i2c_handler; |
| Sinan Divarci |
0:dc5ded118d7c | 69 | SPI *spi_handler; |
| Sinan Divarci |
0:dc5ded118d7c | 70 | DigitalOut *ssel; |
| Sinan Divarci |
0:dc5ded118d7c | 71 | DigitalOut *power_pin; |
| Sinan Divarci |
0:dc5ded118d7c | 72 | |
| Sinan Divarci |
0:dc5ded118d7c | 73 | DigitalIn *data_read; // data sent pin |
| Sinan Divarci |
0:dc5ded118d7c | 74 | |
| Sinan Divarci |
0:dc5ded118d7c | 75 | uint8_t preset_mode; |
| Sinan Divarci |
0:dc5ded118d7c | 76 | float crystal_frequency ; |
| Sinan Divarci |
0:dc5ded118d7c | 77 | float center_frequency; |
| Sinan Divarci |
0:dc5ded118d7c | 78 | float baud_rate; |
| Sinan Divarci |
0:dc5ded118d7c | 79 | float baud_rate_ratio; |
| Sinan Divarci |
0:dc5ded118d7c | 80 | |
| Sinan Divarci |
0:dc5ded118d7c | 81 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 82 | DEMOD_ADDR = 0x00, |
| Sinan Divarci |
0:dc5ded118d7c | 83 | AGC_ADDR = 0x01, |
| Sinan Divarci |
0:dc5ded118d7c | 84 | IF_CHF_SEL_ADDR = 0x02, |
| Sinan Divarci |
0:dc5ded118d7c | 85 | PDF_CFG_ADDR = 0x03, |
| Sinan Divarci |
0:dc5ded118d7c | 86 | ATH_CFG1_ADDR = 0x04, |
| Sinan Divarci |
0:dc5ded118d7c | 87 | ATH_CFG2_ADDR = 0x05, |
| Sinan Divarci |
0:dc5ded118d7c | 88 | ATH_CFG3_ADDR = 0x06, |
| Sinan Divarci |
0:dc5ded118d7c | 89 | AFC_CFG1_ADDR = 0x07, |
| Sinan Divarci |
0:dc5ded118d7c | 90 | AFC_CFG2_ADDR = 0x08, |
| Sinan Divarci |
0:dc5ded118d7c | 91 | LO_CTR_FREQ3_ADDR = 0x09, |
| Sinan Divarci |
0:dc5ded118d7c | 92 | LO_CTR_FREQ2_ADDR = 0x0A, |
| Sinan Divarci |
0:dc5ded118d7c | 93 | LO_CTR_FREQ1_ADDR = 0x0B, |
| Sinan Divarci |
0:dc5ded118d7c | 94 | PREAMBLE_CFG1_ADDR = 0x0C, |
| Sinan Divarci |
0:dc5ded118d7c | 95 | PREAMBLE_WORD1_ADDR = 0x0D, |
| Sinan Divarci |
0:dc5ded118d7c | 96 | PREAMBLE_WORD2_ADDR = 0x0E, |
| Sinan Divarci |
0:dc5ded118d7c | 97 | RSSI_ADDR = 0x10, |
| Sinan Divarci |
0:dc5ded118d7c | 98 | FEI_ADDR = 0x11, |
| Sinan Divarci |
0:dc5ded118d7c | 99 | PDF_OUT_ADDR = 0x12, |
| Sinan Divarci |
0:dc5ded118d7c | 100 | ISR_ADDR = 0x13, |
| Sinan Divarci |
0:dc5ded118d7c | 101 | CDR_CFG1_ADDR = 0x35, |
| Sinan Divarci |
0:dc5ded118d7c | 102 | STATE_CTRL1_ADDR = 0x14, |
| Sinan Divarci |
0:dc5ded118d7c | 103 | STATE_CTRL2_ADDR = 0x15, |
| Sinan Divarci |
0:dc5ded118d7c | 104 | STATE_CTRL3_ADDR = 0x16, |
| Sinan Divarci |
0:dc5ded118d7c | 105 | WUT1_ADDR = 0x17, |
| Sinan Divarci |
0:dc5ded118d7c | 106 | WUT2_ADDR = 0x18, |
| Sinan Divarci |
0:dc5ded118d7c | 107 | AFE_CTL1_ADDR = 0x19, |
| Sinan Divarci |
0:dc5ded118d7c | 108 | IR_ADJUST_ADDR = 0x1A, |
| Sinan Divarci |
0:dc5ded118d7c | 109 | PART_NUM_ADDR = 0x1E, |
| Sinan Divarci |
0:dc5ded118d7c | 110 | REV_NUM_ADDR = 0x1F, |
| Sinan Divarci |
0:dc5ded118d7c | 111 | STATUS_ADDR = 0x27 |
| Sinan Divarci |
0:dc5ded118d7c | 112 | }register_address_t; |
| Sinan Divarci |
0:dc5ded118d7c | 113 | |
| Sinan Divarci |
0:dc5ded118d7c | 114 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 115 | * @brief Sets LO Center Frequency, lower byte of 24-bit word (Register: LO_CTR_FREQ1 ,0x0B) |
| Sinan Divarci |
0:dc5ded118d7c | 116 | * |
| Sinan Divarci |
0:dc5ded118d7c | 117 | * @param[in] lo_ctr_freq_lower |
| Sinan Divarci |
0:dc5ded118d7c | 118 | * |
| Sinan Divarci |
0:dc5ded118d7c | 119 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 120 | * |
| Sinan Divarci |
0:dc5ded118d7c | 121 | * @description LO Center Frequency, lower byte of 24-bit word |
| Sinan Divarci |
0:dc5ded118d7c | 122 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 123 | int set_lo_ctr_freq_lower(uint8_t lo_ctr_freq_lower); |
| Sinan Divarci |
0:dc5ded118d7c | 124 | |
| Sinan Divarci |
0:dc5ded118d7c | 125 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 126 | * @brief Sets LO Center Frequency, middle byte of 24-bit word (Register: LO_CTR_FREQ2 ,0x0A) |
| Sinan Divarci |
0:dc5ded118d7c | 127 | * |
| Sinan Divarci |
0:dc5ded118d7c | 128 | * @param[in] lo_ctr_freq_middle |
| Sinan Divarci |
0:dc5ded118d7c | 129 | * |
| Sinan Divarci |
0:dc5ded118d7c | 130 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 131 | * |
| Sinan Divarci |
0:dc5ded118d7c | 132 | * @description LO Center Frequency, middle byte of 24-bit word |
| Sinan Divarci |
0:dc5ded118d7c | 133 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 134 | int set_lo_ctr_freq_middle(uint8_t lo_ctr_freq_middle); |
| Sinan Divarci |
0:dc5ded118d7c | 135 | |
| Sinan Divarci |
0:dc5ded118d7c | 136 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 137 | * @brief Sets LO Center Frequency, upper byte of 24-bit word (Register: LO_CTR_FREQ3 ,0x09) |
| Sinan Divarci |
0:dc5ded118d7c | 138 | * |
| Sinan Divarci |
0:dc5ded118d7c | 139 | * @param[in] lo_ctr_freq_upper |
| Sinan Divarci |
0:dc5ded118d7c | 140 | * |
| Sinan Divarci |
0:dc5ded118d7c | 141 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 142 | * |
| Sinan Divarci |
0:dc5ded118d7c | 143 | * @description LO Center Frequency, upper byte of 24-bit word |
| Sinan Divarci |
0:dc5ded118d7c | 144 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 145 | int set_lo_ctr_freq_upper(uint8_t lo_ctr_freq_upper); |
| Sinan Divarci |
0:dc5ded118d7c | 146 | |
| Sinan Divarci |
0:dc5ded118d7c | 147 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 148 | * @brief Sets Preamble Bit Pattern Length before Manchester Coding (Register: PREAMBLE_CFG1 ,0x0C) |
| Sinan Divarci |
0:dc5ded118d7c | 149 | * |
| Sinan Divarci |
0:dc5ded118d7c | 150 | * @param[in] preamb_len |
| Sinan Divarci |
0:dc5ded118d7c | 151 | * |
| Sinan Divarci |
0:dc5ded118d7c | 152 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 153 | * |
| Sinan Divarci |
0:dc5ded118d7c | 154 | * @description Preamble Bit Pattern Length before Manchester Coding |
| Sinan Divarci |
0:dc5ded118d7c | 155 | * Bit Pattern Length = Register Field Value +1 |
| Sinan Divarci |
0:dc5ded118d7c | 156 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 157 | int set_preamb_len(uint8_t preamb_len); |
| Sinan Divarci |
0:dc5ded118d7c | 158 | |
| Sinan Divarci |
0:dc5ded118d7c | 159 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 160 | * @brief Sets Lower Byte of the Preamble Bit Pattern before Manchester Coding (Register: PREAMBLE_WORD1 ,0x0D) |
| Sinan Divarci |
0:dc5ded118d7c | 161 | * |
| Sinan Divarci |
0:dc5ded118d7c | 162 | * @param[in] preamb_word_lower |
| Sinan Divarci |
0:dc5ded118d7c | 163 | * |
| Sinan Divarci |
0:dc5ded118d7c | 164 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 165 | * |
| Sinan Divarci |
0:dc5ded118d7c | 166 | * @description Lower Byte of the Preamble Bit Pattern before Manchester Coding |
| Sinan Divarci |
0:dc5ded118d7c | 167 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 168 | int set_preamb_word_lower(uint8_t preamb_word_lower); |
| Sinan Divarci |
0:dc5ded118d7c | 169 | |
| Sinan Divarci |
0:dc5ded118d7c | 170 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 171 | * @brief Sets Upper Byte of the Preamble Bit Pattern before Manchester Coding (Register: PREAMBLE_WORD2 ,0x0E) |
| Sinan Divarci |
0:dc5ded118d7c | 172 | * |
| Sinan Divarci |
0:dc5ded118d7c | 173 | * @param[in] preamb_word_upper |
| Sinan Divarci |
0:dc5ded118d7c | 174 | * |
| Sinan Divarci |
0:dc5ded118d7c | 175 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 176 | * |
| Sinan Divarci |
0:dc5ded118d7c | 177 | * @description Upper Byte of the Preamble Bit Pattern before Manchester Coding |
| Sinan Divarci |
0:dc5ded118d7c | 178 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 179 | int set_preamb_word_upper(uint8_t preamb_word_upper); |
| Sinan Divarci |
0:dc5ded118d7c | 180 | |
| Sinan Divarci |
0:dc5ded118d7c | 181 | |
| Sinan Divarci |
0:dc5ded118d7c | 182 | protected: |
| Sinan Divarci |
0:dc5ded118d7c | 183 | |
| Sinan Divarci |
0:dc5ded118d7c | 184 | int io_read(uint8_t *data, uint32_t length); |
| Sinan Divarci |
0:dc5ded118d7c | 185 | |
| Sinan Divarci |
0:dc5ded118d7c | 186 | public: |
| Sinan Divarci |
0:dc5ded118d7c | 187 | |
| Sinan Divarci |
0:dc5ded118d7c | 188 | //Constructors |
| Sinan Divarci |
0:dc5ded118d7c | 189 | MAX4147X(REG *reg, SPI *spi, DigitalOut *cs, DigitalOut *powerPin, DigitalIn *dataPin); |
| Sinan Divarci |
0:dc5ded118d7c | 190 | |
| Sinan Divarci |
0:dc5ded118d7c | 191 | MAX4147X(REG *reg, SPI *spi, DigitalOut *powerPin, DigitalIn *dataPin); |
| Sinan Divarci |
0:dc5ded118d7c | 192 | |
| Sinan Divarci |
0:dc5ded118d7c | 193 | MAX4147X(REG *reg, I2C *i2c, DigitalOut *powerPin, DigitalIn *dataPin); |
| Sinan Divarci |
0:dc5ded118d7c | 194 | |
| Sinan Divarci |
0:dc5ded118d7c | 195 | typedef enum |
| Sinan Divarci |
0:dc5ded118d7c | 196 | { |
| Sinan Divarci |
0:dc5ded118d7c | 197 | Manchester = 0, |
| Sinan Divarci |
0:dc5ded118d7c | 198 | NRZ = 1 |
| Sinan Divarci |
0:dc5ded118d7c | 199 | }encoding_t; |
| Sinan Divarci |
0:dc5ded118d7c | 200 | |
| Sinan Divarci |
0:dc5ded118d7c | 201 | encoding_t encoding; |
| Sinan Divarci |
0:dc5ded118d7c | 202 | |
| Sinan Divarci |
0:dc5ded118d7c | 203 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 204 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 205 | * |
| Sinan Divarci |
0:dc5ded118d7c | 206 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 207 | * - Register : DEMOD (0x00) |
| Sinan Divarci |
0:dc5ded118d7c | 208 | * - Bit Fields : [7:6] |
| Sinan Divarci |
0:dc5ded118d7c | 209 | * - Default : 0x1 |
| Sinan Divarci |
0:dc5ded118d7c | 210 | * - Description : RSSI Peak Detector Discharge Time |
| Sinan Divarci |
0:dc5ded118d7c | 211 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 212 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 213 | RSSI_DT_DEFAULT_VALUE_X0_5, /**< 0x0: 1/2 default value */ |
| Sinan Divarci |
0:dc5ded118d7c | 214 | RSSI_DT_DEFAULT_VALUE, /**< 0x1: default value */ |
| Sinan Divarci |
0:dc5ded118d7c | 215 | RSSI_DT_DEFAULT_VALUE_X2, /**< 0x2: 0x2: 2x default value */ |
| Sinan Divarci |
0:dc5ded118d7c | 216 | RSSI_DT_DEFAULT_VALUE_X4, /**< 0x3: 0x3: 4x default value */ |
| Sinan Divarci |
0:dc5ded118d7c | 217 | } rssi_dt_t; |
| Sinan Divarci |
0:dc5ded118d7c | 218 | |
| Sinan Divarci |
0:dc5ded118d7c | 219 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 220 | * @brief Set RSSI Peak Detector Discharge Time |
| Sinan Divarci |
0:dc5ded118d7c | 221 | * |
| Sinan Divarci |
0:dc5ded118d7c | 222 | * @param[in] rssi_dt |
| Sinan Divarci |
0:dc5ded118d7c | 223 | * |
| Sinan Divarci |
0:dc5ded118d7c | 224 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 225 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 226 | int set_rssi_dt(rssi_dt_t rssi_dt); |
| Sinan Divarci |
0:dc5ded118d7c | 227 | |
| Sinan Divarci |
0:dc5ded118d7c | 228 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 229 | * @brief Get RSSI Peak Detector Discharge Time |
| Sinan Divarci |
0:dc5ded118d7c | 230 | * |
| Sinan Divarci |
0:dc5ded118d7c | 231 | * @param[in] rssi_dt |
| Sinan Divarci |
0:dc5ded118d7c | 232 | * |
| Sinan Divarci |
0:dc5ded118d7c | 233 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 234 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 235 | int get_rssi_dt(rssi_dt_t *rssi_dt); |
| Sinan Divarci |
0:dc5ded118d7c | 236 | |
| Sinan Divarci |
0:dc5ded118d7c | 237 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 238 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 239 | * |
| Sinan Divarci |
0:dc5ded118d7c | 240 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 241 | * - Register : DEMOD (0x00) |
| Sinan Divarci |
0:dc5ded118d7c | 242 | * - Bit Fields : [5:3] |
| Sinan Divarci |
0:dc5ded118d7c | 243 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 244 | * - Description : Demodulator Parameter #2 to be used only in FSK mode. Must be programmed according to |
| Sinan Divarci |
0:dc5ded118d7c | 245 | * the table of FSK Demodulator Configuration. |
| Sinan Divarci |
0:dc5ded118d7c | 246 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 247 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 248 | DEMOD_FSK_CONF_0, /**< 0x0: FSK Demod Config Index = 0, 14 */ |
| Sinan Divarci |
0:dc5ded118d7c | 249 | DEMOD_FSK_CONF_1, /**< 0x1: FSK Demod Config Index = 1, 15 */ |
| Sinan Divarci |
0:dc5ded118d7c | 250 | DEMOD_FSK_CONF_2, /**< 0x2: FSK Demod Config Index = 2, 16 */ |
| Sinan Divarci |
0:dc5ded118d7c | 251 | DEMOD_FSK_CONF_3, /**< 0x3: FSK Demod Config Index = 3, 6, 17, 20 */ |
| Sinan Divarci |
0:dc5ded118d7c | 252 | DEMOD_FSK_CONF_4, /**< 0x4: FSK Demod Config Index = 4, 7, 9, 11, 18, 21, 23, 25 */ |
| Sinan Divarci |
0:dc5ded118d7c | 253 | DEMOD_FSK_CONF_5, /**< 0x5: FSK Demod Config Index = 5, 8, 10, 12, 19, 22, 24, 26 */ |
| Sinan Divarci |
0:dc5ded118d7c | 254 | DEMOD_FSK_CONF_6, /**< 0x6: FSK Demod Config Index = 13, 27 */ |
| Sinan Divarci |
0:dc5ded118d7c | 255 | DEMOD_FSK_CONF_7 /**< 0x7: Invalid value */ |
| Sinan Divarci |
0:dc5ded118d7c | 256 | } demod_fsk_t; |
| Sinan Divarci |
0:dc5ded118d7c | 257 | |
| Sinan Divarci |
0:dc5ded118d7c | 258 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 259 | * @brief Set Demodulator Parameter #2 |
| Sinan Divarci |
0:dc5ded118d7c | 260 | * |
| Sinan Divarci |
0:dc5ded118d7c | 261 | * @param[in] demod_fsk |
| Sinan Divarci |
0:dc5ded118d7c | 262 | * |
| Sinan Divarci |
0:dc5ded118d7c | 263 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 264 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 265 | int set_demod_fsk(demod_fsk_t demod_fsk); |
| Sinan Divarci |
0:dc5ded118d7c | 266 | |
| Sinan Divarci |
0:dc5ded118d7c | 267 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 268 | * @brief Get Demodulator Parameter #2 |
| Sinan Divarci |
0:dc5ded118d7c | 269 | * |
| Sinan Divarci |
0:dc5ded118d7c | 270 | * @param[in] demod_fsk |
| Sinan Divarci |
0:dc5ded118d7c | 271 | * |
| Sinan Divarci |
0:dc5ded118d7c | 272 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 273 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 274 | int get_demod_fsk(demod_fsk_t *demod_fsk); |
| Sinan Divarci |
0:dc5ded118d7c | 275 | |
| Sinan Divarci |
0:dc5ded118d7c | 276 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 277 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 278 | * |
| Sinan Divarci |
0:dc5ded118d7c | 279 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 280 | * - Register : DEMOD (0x00) |
| Sinan Divarci |
0:dc5ded118d7c | 281 | * - Bit Fields : [2:0] |
| Sinan Divarci |
0:dc5ded118d7c | 282 | * - Default : 0x4 |
| Sinan Divarci |
0:dc5ded118d7c | 283 | * - Description : Demodulator Parameter #1. |
| Sinan Divarci |
0:dc5ded118d7c | 284 | * Conditions / Recommended Value |
| Sinan Divarci |
0:dc5ded118d7c | 285 | * ASK_FSK_SEL=1 / 4 - CHF_SEL |
| Sinan Divarci |
0:dc5ded118d7c | 286 | * ASK_FSK_SEL=0, ATH_TYPE=0 / min(2+SRC_LG, 7) |
| Sinan Divarci |
0:dc5ded118d7c | 287 | * ASK_FSK_SEL=0, ATH_TYPE=1 / min(3+SRC_LG,7) |
| Sinan Divarci |
0:dc5ded118d7c | 288 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 289 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 290 | DEMOD_TCTRL_CONF_0, /**< 0x0: 1/16 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 291 | DEMOD_TCTRL_CONF_1, /**< 0x1: 1/8 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 292 | DEMOD_TCTRL_CONF_2, /**< 0x2: 1/4 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 293 | DEMOD_TCTRL_CONF_3, /**< 0x3: 1/2 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 294 | DEMOD_TCTRL_CONF_4, /**< 0x4: Default value */ |
| Sinan Divarci |
0:dc5ded118d7c | 295 | DEMOD_TCTRL_CONF_5, /**< 0x5: 2x Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 296 | DEMOD_TCTRL_CONF_6, /**< 0x6: 4x Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 297 | DEMOD_TCTRL_CONF_7 /**< 0x7: 8x Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 298 | } demod_tctrl_t; |
| Sinan Divarci |
0:dc5ded118d7c | 299 | |
| Sinan Divarci |
0:dc5ded118d7c | 300 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 301 | * @brief Set Demodulator Parameter #1 |
| Sinan Divarci |
0:dc5ded118d7c | 302 | * |
| Sinan Divarci |
0:dc5ded118d7c | 303 | * @param[in] demod_tctrl |
| Sinan Divarci |
0:dc5ded118d7c | 304 | * |
| Sinan Divarci |
0:dc5ded118d7c | 305 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 306 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 307 | int set_demod_tctrl(demod_tctrl_t demod_tctrl); |
| Sinan Divarci |
0:dc5ded118d7c | 308 | |
| Sinan Divarci |
0:dc5ded118d7c | 309 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 310 | * @brief Get Demodulator Parameter #1 |
| Sinan Divarci |
0:dc5ded118d7c | 311 | * |
| Sinan Divarci |
0:dc5ded118d7c | 312 | * @param[in] demod_tctrl |
| Sinan Divarci |
0:dc5ded118d7c | 313 | * |
| Sinan Divarci |
0:dc5ded118d7c | 314 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 315 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 316 | int get_demod_tctrl(demod_tctrl_t *demod_tctrl); |
| Sinan Divarci |
0:dc5ded118d7c | 317 | |
| Sinan Divarci |
0:dc5ded118d7c | 318 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 319 | * @brief Sets AGC-Release Threshold Fine Tune (Register: AGC ,0x01) |
| Sinan Divarci |
0:dc5ded118d7c | 320 | * |
| Sinan Divarci |
0:dc5ded118d7c | 321 | * @param[in] agc_threl |
| Sinan Divarci |
0:dc5ded118d7c | 322 | * |
| Sinan Divarci |
0:dc5ded118d7c | 323 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 324 | * |
| Sinan Divarci |
0:dc5ded118d7c | 325 | * @description AGC-Release Threshold Fine Tune. Recommended value is 0x9 when data rate is lower than 52kbps, or 0xF when data rate is higher than 52kbps. |
| Sinan Divarci |
0:dc5ded118d7c | 326 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 327 | int set_agc_threl(uint8_t agc_threl); |
| Sinan Divarci |
0:dc5ded118d7c | 328 | |
| Sinan Divarci |
0:dc5ded118d7c | 329 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 330 | * @brief Gets AGC-Release Threshold Fine Tune (Register: AGC ,0x01) |
| Sinan Divarci |
0:dc5ded118d7c | 331 | * |
| Sinan Divarci |
0:dc5ded118d7c | 332 | * @param[in] agc_threl |
| Sinan Divarci |
0:dc5ded118d7c | 333 | * |
| Sinan Divarci |
0:dc5ded118d7c | 334 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 335 | * |
| Sinan Divarci |
0:dc5ded118d7c | 336 | * @description AGC-Release Threshold Fine Tune. Recommended value is 0x9 when data rate is lower than 52kbps, or 0xF when data rate is higher than 52kbps. |
| Sinan Divarci |
0:dc5ded118d7c | 337 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 338 | int get_agc_threl(uint8_t *agc_threl); |
| Sinan Divarci |
0:dc5ded118d7c | 339 | |
| Sinan Divarci |
0:dc5ded118d7c | 340 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 341 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 342 | * |
| Sinan Divarci |
0:dc5ded118d7c | 343 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 344 | * - Register : AGC (0x01) |
| Sinan Divarci |
0:dc5ded118d7c | 345 | * - Bit Fields : [1:0] |
| Sinan Divarci |
0:dc5ded118d7c | 346 | * - Default : 0x2 |
| Sinan Divarci |
0:dc5ded118d7c | 347 | * - Description : AGC Operation Mode |
| Sinan Divarci |
0:dc5ded118d7c | 348 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 349 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 350 | AGC_EN_BO_AGC_DISABLED_MAX_GAIN, /**< 0x0: AGC disabled, max gain */ |
| Sinan Divarci |
0:dc5ded118d7c | 351 | AGC_EN_BO_AGC_DISABLED_BO_ADC_BUF, /**< 0x1: AGC disabled, back off ADC buffer */ |
| Sinan Divarci |
0:dc5ded118d7c | 352 | AGC_EN_BO_AGC_ENABLED, /**< 0x2: AGC enabled */ |
| Sinan Divarci |
0:dc5ded118d7c | 353 | AGC_EN_BO_AGC_ENABLED_BO_ADC_BUF /**< 0x3: AGC enabled, back off ADC buffer */ |
| Sinan Divarci |
0:dc5ded118d7c | 354 | } agc_en_bo_t; |
| Sinan Divarci |
0:dc5ded118d7c | 355 | |
| Sinan Divarci |
0:dc5ded118d7c | 356 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 357 | * @brief Set AGC Operation Mode |
| Sinan Divarci |
0:dc5ded118d7c | 358 | * |
| Sinan Divarci |
0:dc5ded118d7c | 359 | * @param[in] agc_op_mode |
| Sinan Divarci |
0:dc5ded118d7c | 360 | * |
| Sinan Divarci |
0:dc5ded118d7c | 361 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 362 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 363 | int set_agc_en_bo(agc_en_bo_t agc_op_mode); |
| Sinan Divarci |
0:dc5ded118d7c | 364 | |
| Sinan Divarci |
0:dc5ded118d7c | 365 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 366 | * @brief Get AGC Operation Mode |
| Sinan Divarci |
0:dc5ded118d7c | 367 | * |
| Sinan Divarci |
0:dc5ded118d7c | 368 | * @param[in] agc_op_mode |
| Sinan Divarci |
0:dc5ded118d7c | 369 | * |
| Sinan Divarci |
0:dc5ded118d7c | 370 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 371 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 372 | int get_agc_en_bo(agc_en_bo_t *agc_op_mode); |
| Sinan Divarci |
0:dc5ded118d7c | 373 | |
| Sinan Divarci |
0:dc5ded118d7c | 374 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 375 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 376 | * |
| Sinan Divarci |
0:dc5ded118d7c | 377 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 378 | * - Register : IF_CHF_SEL (0x02) |
| Sinan Divarci |
0:dc5ded118d7c | 379 | * - Bit Fields : [4] |
| Sinan Divarci |
0:dc5ded118d7c | 380 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 381 | * - Description : ASK/FSK Selection |
| Sinan Divarci |
0:dc5ded118d7c | 382 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 383 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 384 | ASK_FSK_SEL_ASK, /**< 0x0: ASK demodulation */ |
| Sinan Divarci |
0:dc5ded118d7c | 385 | ASK_FSK_SEL_FSK /**< 0x1: FSK demodulation */ |
| Sinan Divarci |
0:dc5ded118d7c | 386 | } ask_fsk_sel_t; |
| Sinan Divarci |
0:dc5ded118d7c | 387 | |
| Sinan Divarci |
0:dc5ded118d7c | 388 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 389 | * @brief Sets Demodulation Mode to ASK or FSK |
| Sinan Divarci |
0:dc5ded118d7c | 390 | * |
| Sinan Divarci |
0:dc5ded118d7c | 391 | * @param[in] ask_fsk_sel |
| Sinan Divarci |
0:dc5ded118d7c | 392 | * |
| Sinan Divarci |
0:dc5ded118d7c | 393 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 394 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 395 | int set_ask_fsk_sel(ask_fsk_sel_t ask_fsk_sel); |
| Sinan Divarci |
0:dc5ded118d7c | 396 | |
| Sinan Divarci |
0:dc5ded118d7c | 397 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 398 | * @brief Gets Demodulation Mode |
| Sinan Divarci |
0:dc5ded118d7c | 399 | * |
| Sinan Divarci |
0:dc5ded118d7c | 400 | * @param[in] ask_fsk_sel |
| Sinan Divarci |
0:dc5ded118d7c | 401 | * |
| Sinan Divarci |
0:dc5ded118d7c | 402 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 403 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 404 | int get_ask_fsk_sel(ask_fsk_sel_t *ask_fsk_sel); |
| Sinan Divarci |
0:dc5ded118d7c | 405 | |
| Sinan Divarci |
0:dc5ded118d7c | 406 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 407 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 408 | * |
| Sinan Divarci |
0:dc5ded118d7c | 409 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 410 | * - Register : IF_CHF_SEL (0x02) |
| Sinan Divarci |
0:dc5ded118d7c | 411 | * - Bit Fields : [3] |
| Sinan Divarci |
0:dc5ded118d7c | 412 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 413 | * - Description : Intermediate Frequency Selection |
| Sinan Divarci |
0:dc5ded118d7c | 414 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 415 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 416 | IF_SEL_400_KHZ, /**< 0x0: 400kHz */ |
| Sinan Divarci |
0:dc5ded118d7c | 417 | IF_SEL_200_KHZ /**< 0x1: 200kHz */ |
| Sinan Divarci |
0:dc5ded118d7c | 418 | } if_sel_t; |
| Sinan Divarci |
0:dc5ded118d7c | 419 | |
| Sinan Divarci |
0:dc5ded118d7c | 420 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 421 | * @brief Sets Intermediate Frequency |
| Sinan Divarci |
0:dc5ded118d7c | 422 | * |
| Sinan Divarci |
0:dc5ded118d7c | 423 | * @param[in] if_sel |
| Sinan Divarci |
0:dc5ded118d7c | 424 | * |
| Sinan Divarci |
0:dc5ded118d7c | 425 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 426 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 427 | int set_if_sel(if_sel_t if_sel); |
| Sinan Divarci |
0:dc5ded118d7c | 428 | |
| Sinan Divarci |
0:dc5ded118d7c | 429 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 430 | * @brief Gets Intermediate Frequency |
| Sinan Divarci |
0:dc5ded118d7c | 431 | * |
| Sinan Divarci |
0:dc5ded118d7c | 432 | * @param[in] if_sel |
| Sinan Divarci |
0:dc5ded118d7c | 433 | * |
| Sinan Divarci |
0:dc5ded118d7c | 434 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 435 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 436 | int get_if_sel(if_sel_t *if_sel); |
| Sinan Divarci |
0:dc5ded118d7c | 437 | |
| Sinan Divarci |
0:dc5ded118d7c | 438 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 439 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 440 | * |
| Sinan Divarci |
0:dc5ded118d7c | 441 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 442 | * - Register : IF_CHF_SEL (0x02) |
| Sinan Divarci |
0:dc5ded118d7c | 443 | * - Bit Fields : [2:0] |
| Sinan Divarci |
0:dc5ded118d7c | 444 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 445 | * - Description : Channel Filter Selection |
| Sinan Divarci |
0:dc5ded118d7c | 446 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 447 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 448 | CHF_SEL_RXBW_340_170_KHZ, /**< 0x0: RXBW = 340kHz or 170kHz */ |
| Sinan Divarci |
0:dc5ded118d7c | 449 | CHF_SEL_RXBW_120_60_KHZ, /**< 0x1: RXBW = 120kHz or 60kHz */ |
| Sinan Divarci |
0:dc5ded118d7c | 450 | CHF_SEL_RXBW_52_26_KHZ, /**< 0x2: RXBW = 52kHz or 26kHz */ |
| Sinan Divarci |
0:dc5ded118d7c | 451 | CHF_SEL_RXBW_24_12_KHZ, /**< 0x3: RXBW = 24kHz or 12kHz */ |
| Sinan Divarci |
0:dc5ded118d7c | 452 | CHF_SEL_RXBW_12_6_KHZ, /**< 0x4: RXBW = 12kHz or 6kHz */ |
| Sinan Divarci |
0:dc5ded118d7c | 453 | CHF_SEL_INV0, /**< 0x5: Invalid value */ |
| Sinan Divarci |
0:dc5ded118d7c | 454 | CHF_SEL_INV1, /**< 0x6: Invalid value */ |
| Sinan Divarci |
0:dc5ded118d7c | 455 | CHF_SEL_INV2 /**< 0x7: Invalid value */ |
| Sinan Divarci |
0:dc5ded118d7c | 456 | } chf_sel_t; |
| Sinan Divarci |
0:dc5ded118d7c | 457 | |
| Sinan Divarci |
0:dc5ded118d7c | 458 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 459 | * @brief Sets Channel Filter |
| Sinan Divarci |
0:dc5ded118d7c | 460 | * |
| Sinan Divarci |
0:dc5ded118d7c | 461 | * @param[in] chf_sel |
| Sinan Divarci |
0:dc5ded118d7c | 462 | * |
| Sinan Divarci |
0:dc5ded118d7c | 463 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 464 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 465 | int set_chf_sel(chf_sel_t chf_sel); |
| Sinan Divarci |
0:dc5ded118d7c | 466 | |
| Sinan Divarci |
0:dc5ded118d7c | 467 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 468 | * @brief Gets Channel Filter Selection |
| Sinan Divarci |
0:dc5ded118d7c | 469 | * |
| Sinan Divarci |
0:dc5ded118d7c | 470 | * @param[in] chf_sel |
| Sinan Divarci |
0:dc5ded118d7c | 471 | * |
| Sinan Divarci |
0:dc5ded118d7c | 472 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 473 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 474 | int get_chf_sel(chf_sel_t *chf_sel); |
| Sinan Divarci |
0:dc5ded118d7c | 475 | |
| Sinan Divarci |
0:dc5ded118d7c | 476 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 477 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 478 | * |
| Sinan Divarci |
0:dc5ded118d7c | 479 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 480 | * - Register : PDF_CFG (0x03) |
| Sinan Divarci |
0:dc5ded118d7c | 481 | * - Bit Fields : [7] |
| Sinan Divarci |
0:dc5ded118d7c | 482 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 483 | * - Description : Output Buffer Selection. Low delay buffer can only be selected |
| Sinan Divarci |
0:dc5ded118d7c | 484 | * when (SRC_LG >= 3) or (SRC_LG = 2 and SRC_SM is even). |
| Sinan Divarci |
0:dc5ded118d7c | 485 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 486 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 487 | LF_BUF_DEFAULT_SELECTION, /**< 0x0: Default selection */ |
| Sinan Divarci |
0:dc5ded118d7c | 488 | LF_BUF_LOW_DELAY_BUF /**< 0x1: Low delay buffer */ |
| Sinan Divarci |
0:dc5ded118d7c | 489 | } ld_buf_t; |
| Sinan Divarci |
0:dc5ded118d7c | 490 | |
| Sinan Divarci |
0:dc5ded118d7c | 491 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 492 | * @brief Sets Output Buffer |
| Sinan Divarci |
0:dc5ded118d7c | 493 | * |
| Sinan Divarci |
0:dc5ded118d7c | 494 | * @param[in] ld_buf |
| Sinan Divarci |
0:dc5ded118d7c | 495 | * |
| Sinan Divarci |
0:dc5ded118d7c | 496 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 497 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 498 | int set_ld_buf(ld_buf_t ld_buf); |
| Sinan Divarci |
0:dc5ded118d7c | 499 | |
| Sinan Divarci |
0:dc5ded118d7c | 500 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 501 | * @brief Gets Output Buffer Selection |
| Sinan Divarci |
0:dc5ded118d7c | 502 | * |
| Sinan Divarci |
0:dc5ded118d7c | 503 | * @param[in] ld_buf |
| Sinan Divarci |
0:dc5ded118d7c | 504 | * |
| Sinan Divarci |
0:dc5ded118d7c | 505 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 506 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 507 | int get_ld_buf(ld_buf_t *ld_buf); |
| Sinan Divarci |
0:dc5ded118d7c | 508 | |
| Sinan Divarci |
0:dc5ded118d7c | 509 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 510 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 511 | * |
| Sinan Divarci |
0:dc5ded118d7c | 512 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 513 | * - Register : PDF_CFG (0x03) |
| Sinan Divarci |
0:dc5ded118d7c | 514 | * - Bit Fields : [6] |
| Sinan Divarci |
0:dc5ded118d7c | 515 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 516 | * - Description : Post Demodulation Filter Bandwidth Control |
| Sinan Divarci |
0:dc5ded118d7c | 517 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 518 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 519 | LF_BW_DEFAULT_BW, /**< 0x0: Default selection */ |
| Sinan Divarci |
0:dc5ded118d7c | 520 | LF_BW_DEFAULT_BW_X1_67 /**< 0x1: Low delay buffer */ |
| Sinan Divarci |
0:dc5ded118d7c | 521 | } ld_bw_t; |
| Sinan Divarci |
0:dc5ded118d7c | 522 | |
| Sinan Divarci |
0:dc5ded118d7c | 523 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 524 | * @brief Sets Post Demodulation Filter Bandwidth |
| Sinan Divarci |
0:dc5ded118d7c | 525 | * |
| Sinan Divarci |
0:dc5ded118d7c | 526 | * @param[in] ld_bw |
| Sinan Divarci |
0:dc5ded118d7c | 527 | * |
| Sinan Divarci |
0:dc5ded118d7c | 528 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 529 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 530 | int set_ld_bw(ld_bw_t ld_bw); |
| Sinan Divarci |
0:dc5ded118d7c | 531 | |
| Sinan Divarci |
0:dc5ded118d7c | 532 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 533 | * @brief Gets Post Demodulation Filter Bandwidth |
| Sinan Divarci |
0:dc5ded118d7c | 534 | * |
| Sinan Divarci |
0:dc5ded118d7c | 535 | * @param[in] ld_bw |
| Sinan Divarci |
0:dc5ded118d7c | 536 | * |
| Sinan Divarci |
0:dc5ded118d7c | 537 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 538 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 539 | int get_ld_bw(ld_bw_t *ld_bw); |
| Sinan Divarci |
0:dc5ded118d7c | 540 | |
| Sinan Divarci |
0:dc5ded118d7c | 541 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 542 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 543 | * |
| Sinan Divarci |
0:dc5ded118d7c | 544 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 545 | * - Register : PDF_CFG (0x03) |
| Sinan Divarci |
0:dc5ded118d7c | 546 | * - Bit Fields : [5:3] |
| Sinan Divarci |
0:dc5ded118d7c | 547 | * - Default : 0x2 |
| Sinan Divarci |
0:dc5ded118d7c | 548 | * - Description : "Large" adjustment to the Sample Rate Converter used to |
| Sinan Divarci |
0:dc5ded118d7c | 549 | * calculate the recommended data rate. See Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 550 | * Guidance Tables and Recommended Data Rate Equation |
| Sinan Divarci |
0:dc5ded118d7c | 551 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 552 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 553 | SRC_LG_CONF_0, /**< 0x0: 4x Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 554 | SRC_LG_CONF_1, /**< 0x1: 2x Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 555 | SRC_LG_CONF_2, /**< 0x2: Default rate */ |
| Sinan Divarci |
0:dc5ded118d7c | 556 | SRC_LG_CONF_3, /**< 0x3: 1/2 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 557 | SRC_LG_CONF_4, /**< 0x4: 1/4 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 558 | SRC_LG_CONF_5, /**< 0x5: 1/8 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 559 | SRC_LG_CONF_6, /**< 0x6: 1/16 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 560 | SRC_LG_CONF_7 /**< 0x7: 1/32 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 561 | } src_lg_t; |
| Sinan Divarci |
0:dc5ded118d7c | 562 | |
| Sinan Divarci |
0:dc5ded118d7c | 563 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 564 | * @brief Sets "Large" adjustment to the Sample Rate Converter |
| Sinan Divarci |
0:dc5ded118d7c | 565 | * |
| Sinan Divarci |
0:dc5ded118d7c | 566 | * @param[in] src_lg |
| Sinan Divarci |
0:dc5ded118d7c | 567 | * |
| Sinan Divarci |
0:dc5ded118d7c | 568 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 569 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 570 | int set_src_lg(src_lg_t src_lg); |
| Sinan Divarci |
0:dc5ded118d7c | 571 | |
| Sinan Divarci |
0:dc5ded118d7c | 572 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 573 | * @brief Gets "Large" adjustment of the Sample Rate Converter |
| Sinan Divarci |
0:dc5ded118d7c | 574 | * |
| Sinan Divarci |
0:dc5ded118d7c | 575 | * @param[in] src_lg |
| Sinan Divarci |
0:dc5ded118d7c | 576 | * |
| Sinan Divarci |
0:dc5ded118d7c | 577 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 578 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 579 | int get_src_lg(src_lg_t *src_lg); |
| Sinan Divarci |
0:dc5ded118d7c | 580 | |
| Sinan Divarci |
0:dc5ded118d7c | 581 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 582 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 583 | * |
| Sinan Divarci |
0:dc5ded118d7c | 584 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 585 | * - Register : PDF_CFG (0x03) |
| Sinan Divarci |
0:dc5ded118d7c | 586 | * - Bit Fields : [2:0] |
| Sinan Divarci |
0:dc5ded118d7c | 587 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 588 | * - Description : "Small" adjustment to the Sample Rate Converter used to |
| Sinan Divarci |
0:dc5ded118d7c | 589 | * calculate the recommended data rate. See Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 590 | * Guidance Tables and Recommended Data Rate Equation |
| Sinan Divarci |
0:dc5ded118d7c | 591 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 592 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 593 | SRC_SM_CONF_0, /**< 0x0: Default rate */ |
| Sinan Divarci |
0:dc5ded118d7c | 594 | SRC_SM_CONF_1, /**< 0x1: 8/9 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 595 | SRC_SM_CONF_2, /**< 0x2: 8/10 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 596 | SRC_SM_CONF_3, /**< 0x3: 8/11 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 597 | SRC_SM_CONF_4, /**< 0x4: 8/12 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 598 | SRC_SM_CONF_5, /**< 0x5: 8/13 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 599 | SRC_SM_CONF_6, /**< 0x6: 8/14 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 600 | SRC_SM_CONF_7 /**< 0x7: 8/15 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 601 | } src_sm_t; |
| Sinan Divarci |
0:dc5ded118d7c | 602 | |
| Sinan Divarci |
0:dc5ded118d7c | 603 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 604 | * @brief Sets "Small" adjustment to the Sample Rate Converter |
| Sinan Divarci |
0:dc5ded118d7c | 605 | * |
| Sinan Divarci |
0:dc5ded118d7c | 606 | * @param[in] src_sm |
| Sinan Divarci |
0:dc5ded118d7c | 607 | * |
| Sinan Divarci |
0:dc5ded118d7c | 608 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 609 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 610 | int set_src_sm(src_sm_t src_sm); |
| Sinan Divarci |
0:dc5ded118d7c | 611 | |
| Sinan Divarci |
0:dc5ded118d7c | 612 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 613 | * @brief Gets "Small" adjustment of the Sample Rate Converter |
| Sinan Divarci |
0:dc5ded118d7c | 614 | * |
| Sinan Divarci |
0:dc5ded118d7c | 615 | * @param[in] src_sm |
| Sinan Divarci |
0:dc5ded118d7c | 616 | * |
| Sinan Divarci |
0:dc5ded118d7c | 617 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 618 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 619 | int get_src_sm(src_sm_t *src_sm); |
| Sinan Divarci |
0:dc5ded118d7c | 620 | |
| Sinan Divarci |
0:dc5ded118d7c | 621 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 622 | * @brief Sets Parameter #1 for ASK Threshold Generation (Register: ATH_CFG1 ,0x04) |
| Sinan Divarci |
0:dc5ded118d7c | 623 | * |
| Sinan Divarci |
0:dc5ded118d7c | 624 | * @param[in] ath_lb |
| Sinan Divarci |
0:dc5ded118d7c | 625 | * |
| Sinan Divarci |
0:dc5ded118d7c | 626 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 627 | * |
| Sinan Divarci |
0:dc5ded118d7c | 628 | * @description Parameter #1 for ASK Threshold Generation: lower bound of threshold in 8-bit signed, two's complement format. Valid value from -128 to 0. |
| Sinan Divarci |
0:dc5ded118d7c | 629 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 630 | int set_ath_lb(uint8_t ath_lb); |
| Sinan Divarci |
0:dc5ded118d7c | 631 | |
| Sinan Divarci |
0:dc5ded118d7c | 632 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 633 | * @brief Gets Parameter #1 of ASK Threshold Generation (Register: ATH_CFG1 ,0x04) |
| Sinan Divarci |
0:dc5ded118d7c | 634 | * |
| Sinan Divarci |
0:dc5ded118d7c | 635 | * @param[in] ath_lb |
| Sinan Divarci |
0:dc5ded118d7c | 636 | * |
| Sinan Divarci |
0:dc5ded118d7c | 637 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 638 | * |
| Sinan Divarci |
0:dc5ded118d7c | 639 | * @description Parameter #1 for ASK Threshold Generation: lower bound of threshold in 8-bit signed, two's complement format. Valid value from -128 to 0. |
| Sinan Divarci |
0:dc5ded118d7c | 640 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 641 | int get_ath_lb(uint8_t *ath_lb); |
| Sinan Divarci |
0:dc5ded118d7c | 642 | |
| Sinan Divarci |
0:dc5ded118d7c | 643 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 644 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 645 | * |
| Sinan Divarci |
0:dc5ded118d7c | 646 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 647 | * - Register : ATH_CFG2 (0x05) |
| Sinan Divarci |
0:dc5ded118d7c | 648 | * - Bit Fields : [6:5] |
| Sinan Divarci |
0:dc5ded118d7c | 649 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 650 | * - Description : Parameter #4 for ASK Threshold Generation: peak-hold time control |
| Sinan Divarci |
0:dc5ded118d7c | 651 | * in the "adaptive Peak Detector" (aPD) method |
| Sinan Divarci |
0:dc5ded118d7c | 652 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 653 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 654 | ATH_DT_DEFAULT_DISCHARGE_TIME, /**< 0x0: Default discharge time, suggested for Manchester data, close to Rb */ |
| Sinan Divarci |
0:dc5ded118d7c | 655 | ATH_DT_DISCHARGE_TIME_X2, /**< 0x1: 2x Discharge time, suggested for Manchester data, lower than Rb */ |
| Sinan Divarci |
0:dc5ded118d7c | 656 | ATH_DT_DISCHARGE_TIME_X4, /**< 0x2: 4x Discharge time */ |
| Sinan Divarci |
0:dc5ded118d7c | 657 | ATH_DT_DISCHARGE_TIME_X8 /**< 0x3: 8x Discharge time, suggested for NRZ data */ |
| Sinan Divarci |
0:dc5ded118d7c | 658 | } ath_dt_t; |
| Sinan Divarci |
0:dc5ded118d7c | 659 | |
| Sinan Divarci |
0:dc5ded118d7c | 660 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 661 | * @brief Sets Parameter #4 for ASK Threshold Generation |
| Sinan Divarci |
0:dc5ded118d7c | 662 | * |
| Sinan Divarci |
0:dc5ded118d7c | 663 | * @param[in] ath_dt |
| Sinan Divarci |
0:dc5ded118d7c | 664 | * |
| Sinan Divarci |
0:dc5ded118d7c | 665 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 666 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 667 | int set_ath_dt(ath_dt_t ath_dt); |
| Sinan Divarci |
0:dc5ded118d7c | 668 | |
| Sinan Divarci |
0:dc5ded118d7c | 669 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 670 | * @brief Gets Parameter #4 of ASK Threshold Generation |
| Sinan Divarci |
0:dc5ded118d7c | 671 | * |
| Sinan Divarci |
0:dc5ded118d7c | 672 | * @param[in] ath_dt |
| Sinan Divarci |
0:dc5ded118d7c | 673 | * |
| Sinan Divarci |
0:dc5ded118d7c | 674 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 675 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 676 | int get_ath_dt(ath_dt_t *ath_dt); |
| Sinan Divarci |
0:dc5ded118d7c | 677 | |
| Sinan Divarci |
0:dc5ded118d7c | 678 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 679 | * @brief Sets Parameter #2 for ASK Threshold Generation (Register: ATH_CFG2 ,0x05) |
| Sinan Divarci |
0:dc5ded118d7c | 680 | * |
| Sinan Divarci |
0:dc5ded118d7c | 681 | * @param[in] ath_tc |
| Sinan Divarci |
0:dc5ded118d7c | 682 | * |
| Sinan Divarci |
0:dc5ded118d7c | 683 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 684 | * |
| Sinan Divarci |
0:dc5ded118d7c | 685 | * @description: Parameter #2 for ASK Threshold Generation: to be programmed according to SRC_LG |
| Sinan Divarci |
0:dc5ded118d7c | 686 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 687 | int set_ath_tc(uint8_t ath_tc); |
| Sinan Divarci |
0:dc5ded118d7c | 688 | |
| Sinan Divarci |
0:dc5ded118d7c | 689 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 690 | * @brief Gets Parameter #2 of ASK Threshold Generation (Register: ATH_CFG2 ,0x05) |
| Sinan Divarci |
0:dc5ded118d7c | 691 | * |
| Sinan Divarci |
0:dc5ded118d7c | 692 | * @param[in] ath_tc |
| Sinan Divarci |
0:dc5ded118d7c | 693 | * |
| Sinan Divarci |
0:dc5ded118d7c | 694 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 695 | * |
| Sinan Divarci |
0:dc5ded118d7c | 696 | * @description: Parameter #2 for ASK Threshold Generation: to be programmed according to SRC_LG |
| Sinan Divarci |
0:dc5ded118d7c | 697 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 698 | int get_ath_tc(uint8_t *ath_tc); |
| Sinan Divarci |
0:dc5ded118d7c | 699 | |
| Sinan Divarci |
0:dc5ded118d7c | 700 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 701 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 702 | * |
| Sinan Divarci |
0:dc5ded118d7c | 703 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 704 | * - Register : ATH_CFG3 (0x06) |
| Sinan Divarci |
0:dc5ded118d7c | 705 | * - Bit Fields : [6] |
| Sinan Divarci |
0:dc5ded118d7c | 706 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 707 | * - Description : ASK Threshold Adjustment Method |
| Sinan Divarci |
0:dc5ded118d7c | 708 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 709 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 710 | ATH_TYPE_PRELPF_MANCHESTER, /**< 0x0: Precharged lowpass filter (preLPF) (Manchester) */ |
| Sinan Divarci |
0:dc5ded118d7c | 711 | ATH_TYPE_APD_NRZ /**< 0x1: Adaptive peak detector (aPD)(NRZ) */ |
| Sinan Divarci |
0:dc5ded118d7c | 712 | } ath_type_t; |
| Sinan Divarci |
0:dc5ded118d7c | 713 | |
| Sinan Divarci |
0:dc5ded118d7c | 714 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 715 | * @brief Sets ASK Threshold Adjustment Method |
| Sinan Divarci |
0:dc5ded118d7c | 716 | * |
| Sinan Divarci |
0:dc5ded118d7c | 717 | * @param[in] ath_type |
| Sinan Divarci |
0:dc5ded118d7c | 718 | * |
| Sinan Divarci |
0:dc5ded118d7c | 719 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 720 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 721 | int set_ath_type(ath_type_t ath_type); |
| Sinan Divarci |
0:dc5ded118d7c | 722 | |
| Sinan Divarci |
0:dc5ded118d7c | 723 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 724 | * @brief Gets ASK Threshold Adjustment Method |
| Sinan Divarci |
0:dc5ded118d7c | 725 | * |
| Sinan Divarci |
0:dc5ded118d7c | 726 | * @param[in] ath_type |
| Sinan Divarci |
0:dc5ded118d7c | 727 | * |
| Sinan Divarci |
0:dc5ded118d7c | 728 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 729 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 730 | int get_ath_type(ath_type_t *ath_type); |
| Sinan Divarci |
0:dc5ded118d7c | 731 | |
| Sinan Divarci |
0:dc5ded118d7c | 732 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 733 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 734 | * |
| Sinan Divarci |
0:dc5ded118d7c | 735 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 736 | * - Register : ATH_CFG3 (0x06) |
| Sinan Divarci |
0:dc5ded118d7c | 737 | * - Bit Fields : [5] |
| Sinan Divarci |
0:dc5ded118d7c | 738 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 739 | * - Description : Parameter #5 for ASK Threshold Generation: bandwidth control for precharged LPF (preLPF) |
| Sinan Divarci |
0:dc5ded118d7c | 740 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 741 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 742 | ATH_BW_DEFAULT, /**< 0x0: Default bandwidth */ |
| Sinan Divarci |
0:dc5ded118d7c | 743 | ATH_BW_DEFAULT_X2 /**< 0x1: 2x default */ |
| Sinan Divarci |
0:dc5ded118d7c | 744 | } ath_bw_t; |
| Sinan Divarci |
0:dc5ded118d7c | 745 | |
| Sinan Divarci |
0:dc5ded118d7c | 746 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 747 | * @brief Sets Parameter #5 for ASK Threshold Generation |
| Sinan Divarci |
0:dc5ded118d7c | 748 | * |
| Sinan Divarci |
0:dc5ded118d7c | 749 | * @param[in] ath_bw |
| Sinan Divarci |
0:dc5ded118d7c | 750 | * |
| Sinan Divarci |
0:dc5ded118d7c | 751 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 752 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 753 | int set_ath_bw(ath_bw_t ath_bw); |
| Sinan Divarci |
0:dc5ded118d7c | 754 | |
| Sinan Divarci |
0:dc5ded118d7c | 755 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 756 | * @brief Gets Parameter #5 of ASK Threshold Generation |
| Sinan Divarci |
0:dc5ded118d7c | 757 | * |
| Sinan Divarci |
0:dc5ded118d7c | 758 | * @param[in] ath_bw |
| Sinan Divarci |
0:dc5ded118d7c | 759 | * |
| Sinan Divarci |
0:dc5ded118d7c | 760 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 761 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 762 | int get_ath_bw(ath_bw_t *ath_bw); |
| Sinan Divarci |
0:dc5ded118d7c | 763 | |
| Sinan Divarci |
0:dc5ded118d7c | 764 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 765 | * @brief Sets Parameter #3 for ASK Threshold Generation (Register: ATH_CFG3 ,0x06) |
| Sinan Divarci |
0:dc5ded118d7c | 766 | * |
| Sinan Divarci |
0:dc5ded118d7c | 767 | * @param[in] ath_gc |
| Sinan Divarci |
0:dc5ded118d7c | 768 | * |
| Sinan Divarci |
0:dc5ded118d7c | 769 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 770 | * |
| Sinan Divarci |
0:dc5ded118d7c | 771 | * @description Parameter #3 for ASK Threshold Generation: to be programmed according to IF_SEL and CHF_SEL |
| Sinan Divarci |
0:dc5ded118d7c | 772 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 773 | int set_ath_gc(uint8_t ath_gc); |
| Sinan Divarci |
0:dc5ded118d7c | 774 | |
| Sinan Divarci |
0:dc5ded118d7c | 775 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 776 | * @brief Gets Parameter #3 of ASK Threshold Generation (Register: ATH_CFG3 ,0x06) |
| Sinan Divarci |
0:dc5ded118d7c | 777 | * |
| Sinan Divarci |
0:dc5ded118d7c | 778 | * @param[in] ath_gc |
| Sinan Divarci |
0:dc5ded118d7c | 779 | * |
| Sinan Divarci |
0:dc5ded118d7c | 780 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 781 | * |
| Sinan Divarci |
0:dc5ded118d7c | 782 | * @description Parameter #3 for ASK Threshold Generation: to be programmed according to IF_SEL and CHF_SEL |
| Sinan Divarci |
0:dc5ded118d7c | 783 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 784 | int get_ath_gc(uint8_t *ath_gc); |
| Sinan Divarci |
0:dc5ded118d7c | 785 | |
| Sinan Divarci |
0:dc5ded118d7c | 786 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 787 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 788 | * |
| Sinan Divarci |
0:dc5ded118d7c | 789 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 790 | * - Register : AFC_CFG1 (0x07) |
| Sinan Divarci |
0:dc5ded118d7c | 791 | * - Bit Fields : [4:2] |
| Sinan Divarci |
0:dc5ded118d7c | 792 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 793 | * - Description : AFC Frequency Offset Limit |
| Sinan Divarci |
0:dc5ded118d7c | 794 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 795 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 796 | AFC_MO_CONF_0, /**< 0x0: AFC disabled */ |
| Sinan Divarci |
0:dc5ded118d7c | 797 | AFC_MO_CONF_1, /**< 0x1: 1/7 Max offset */ |
| Sinan Divarci |
0:dc5ded118d7c | 798 | AFC_MO_CONF_2, /**< 0x2: 2/7 Max offset */ |
| Sinan Divarci |
0:dc5ded118d7c | 799 | AFC_MO_CONF_3, /**< 0x3: 3/7 Max offset */ |
| Sinan Divarci |
0:dc5ded118d7c | 800 | AFC_MO_CONF_4, /**< 0x4: 4/7 Max offset */ |
| Sinan Divarci |
0:dc5ded118d7c | 801 | AFC_MO_CONF_5, /**< 0x5: 5/7 Max offset */ |
| Sinan Divarci |
0:dc5ded118d7c | 802 | AFC_MO_CONF_6, /**< 0x6: 6/7 Max offset */ |
| Sinan Divarci |
0:dc5ded118d7c | 803 | AFC_MO_CONF_7, /**< 0x7: Max offset */ |
| Sinan Divarci |
0:dc5ded118d7c | 804 | } afc_mo_t; |
| Sinan Divarci |
0:dc5ded118d7c | 805 | |
| Sinan Divarci |
0:dc5ded118d7c | 806 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 807 | * @brief Sets AFC Frequency Offset Limit |
| Sinan Divarci |
0:dc5ded118d7c | 808 | * |
| Sinan Divarci |
0:dc5ded118d7c | 809 | * @param[in] afc_mo |
| Sinan Divarci |
0:dc5ded118d7c | 810 | * |
| Sinan Divarci |
0:dc5ded118d7c | 811 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 812 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 813 | int set_afc_mo(afc_mo_t afc_mo); |
| Sinan Divarci |
0:dc5ded118d7c | 814 | |
| Sinan Divarci |
0:dc5ded118d7c | 815 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 816 | * @brief Gets AFC Frequency Offset Limit |
| Sinan Divarci |
0:dc5ded118d7c | 817 | * |
| Sinan Divarci |
0:dc5ded118d7c | 818 | * @param[in] ath_bw |
| Sinan Divarci |
0:dc5ded118d7c | 819 | * |
| Sinan Divarci |
0:dc5ded118d7c | 820 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 821 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 822 | int get_afc_mo(afc_mo_t *afc_mo); |
| Sinan Divarci |
0:dc5ded118d7c | 823 | |
| Sinan Divarci |
0:dc5ded118d7c | 824 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 825 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 826 | * |
| Sinan Divarci |
0:dc5ded118d7c | 827 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 828 | * - Register : AFC_CFG1 (0x07) |
| Sinan Divarci |
0:dc5ded118d7c | 829 | * - Bit Fields : [1:0] |
| Sinan Divarci |
0:dc5ded118d7c | 830 | * - Default : 0x2 |
| Sinan Divarci |
0:dc5ded118d7c | 831 | * - Description : AFC Loop Gain Control |
| Sinan Divarci |
0:dc5ded118d7c | 832 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 833 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 834 | AFC_LG_CONF_DEFAULT_X0_25, /**< 0x0: 1/4 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 835 | AFC_LG_CONF_DEFAULT_X0_5, /**< 0x1: 1/2 Default */ |
| Sinan Divarci |
0:dc5ded118d7c | 836 | AFC_LG_CONF_DEFAULT, /**< 0x2: Default gain, FSK typical setting */ |
| Sinan Divarci |
0:dc5ded118d7c | 837 | AFC_LG_CONF_DEFAULT_X2 /**< 0x3: 2x Default, ASK typical setting */ |
| Sinan Divarci |
0:dc5ded118d7c | 838 | } afc_lg_t; |
| Sinan Divarci |
0:dc5ded118d7c | 839 | |
| Sinan Divarci |
0:dc5ded118d7c | 840 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 841 | * @brief Sets AFC Loop Gain Control |
| Sinan Divarci |
0:dc5ded118d7c | 842 | * |
| Sinan Divarci |
0:dc5ded118d7c | 843 | * @param[in] afc_lg |
| Sinan Divarci |
0:dc5ded118d7c | 844 | * |
| Sinan Divarci |
0:dc5ded118d7c | 845 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 846 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 847 | int set_afc_lg(afc_lg_t afc_lg); |
| Sinan Divarci |
0:dc5ded118d7c | 848 | |
| Sinan Divarci |
0:dc5ded118d7c | 849 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 850 | * @brief Gets AFC Loop Gain Control |
| Sinan Divarci |
0:dc5ded118d7c | 851 | * |
| Sinan Divarci |
0:dc5ded118d7c | 852 | * @param[in] afc_lg |
| Sinan Divarci |
0:dc5ded118d7c | 853 | * |
| Sinan Divarci |
0:dc5ded118d7c | 854 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 855 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 856 | int get_afc_lg(afc_lg_t *afc_lg); |
| Sinan Divarci |
0:dc5ded118d7c | 857 | |
| Sinan Divarci |
0:dc5ded118d7c | 858 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 859 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 860 | * |
| Sinan Divarci |
0:dc5ded118d7c | 861 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 862 | * - Register : AFC_CFG2 (0x08) |
| Sinan Divarci |
0:dc5ded118d7c | 863 | * - Bit Fields : [6] |
| Sinan Divarci |
0:dc5ded118d7c | 864 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 865 | * - Description : Control bit to Freeze AFC after Preamble Detected. Not used in ASK mode. |
| Sinan Divarci |
0:dc5ded118d7c | 866 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 867 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 868 | PAD_FREEZE_AFC_NOT_FREEZE, /**< 0x0: Not to freeze AFC */ |
| Sinan Divarci |
0:dc5ded118d7c | 869 | PAD_FREEZE_AFC_FREEZE /**< 0x1: Freeze AFC (stop PLL frequency update) once preamble is detected */ |
| Sinan Divarci |
0:dc5ded118d7c | 870 | } pad_freeze_afc_t; |
| Sinan Divarci |
0:dc5ded118d7c | 871 | |
| Sinan Divarci |
0:dc5ded118d7c | 872 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 873 | * @brief Sets Control bit to Freeze AFC after Preamble Detected |
| Sinan Divarci |
0:dc5ded118d7c | 874 | * |
| Sinan Divarci |
0:dc5ded118d7c | 875 | * @param[in] pad_freeze_afc |
| Sinan Divarci |
0:dc5ded118d7c | 876 | * |
| Sinan Divarci |
0:dc5ded118d7c | 877 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 878 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 879 | int set_pad_freeze_afc(pad_freeze_afc_t pad_freeze_afc); |
| Sinan Divarci |
0:dc5ded118d7c | 880 | |
| Sinan Divarci |
0:dc5ded118d7c | 881 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 882 | * @brief Gets Control bit of Freeze AFC after Preamble Detected |
| Sinan Divarci |
0:dc5ded118d7c | 883 | * |
| Sinan Divarci |
0:dc5ded118d7c | 884 | * @param[in] pad_freeze_afc |
| Sinan Divarci |
0:dc5ded118d7c | 885 | * |
| Sinan Divarci |
0:dc5ded118d7c | 886 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 887 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 888 | int get_pad_freeze_afc(pad_freeze_afc_t *pad_freeze_afc); |
| Sinan Divarci |
0:dc5ded118d7c | 889 | |
| Sinan Divarci |
0:dc5ded118d7c | 890 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 891 | * @brief Gets LO Center Frequency, upper byte of 24-bit word (Register: LO_CTR_FREQ3 ,0x09) |
| Sinan Divarci |
0:dc5ded118d7c | 892 | * |
| Sinan Divarci |
0:dc5ded118d7c | 893 | * @param[in] lo_ctr_freq_upper |
| Sinan Divarci |
0:dc5ded118d7c | 894 | * |
| Sinan Divarci |
0:dc5ded118d7c | 895 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 896 | * |
| Sinan Divarci |
0:dc5ded118d7c | 897 | * @description LO Center Frequency, upper byte of 24-bit word |
| Sinan Divarci |
0:dc5ded118d7c | 898 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 899 | int get_lo_ctr_freq_upper(uint8_t *lo_ctr_freq_upper); |
| Sinan Divarci |
0:dc5ded118d7c | 900 | |
| Sinan Divarci |
0:dc5ded118d7c | 901 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 902 | * @brief Gets LO Center Frequency, middle byte of 24-bit word (Register: LO_CTR_FREQ2 ,0x0A) |
| Sinan Divarci |
0:dc5ded118d7c | 903 | * |
| Sinan Divarci |
0:dc5ded118d7c | 904 | * @param[in] lo_ctr_freq_middle |
| Sinan Divarci |
0:dc5ded118d7c | 905 | * |
| Sinan Divarci |
0:dc5ded118d7c | 906 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 907 | * |
| Sinan Divarci |
0:dc5ded118d7c | 908 | * @description LO Center Frequency, middle byte of 24-bit word |
| Sinan Divarci |
0:dc5ded118d7c | 909 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 910 | int get_lo_ctr_freq_middle(uint8_t *lo_ctr_freq_middle); |
| Sinan Divarci |
0:dc5ded118d7c | 911 | |
| Sinan Divarci |
0:dc5ded118d7c | 912 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 913 | * @brief Gets LO Center Frequency, lower byte of 24-bit word (Register: LO_CTR_FREQ1 ,0x0B) |
| Sinan Divarci |
0:dc5ded118d7c | 914 | * |
| Sinan Divarci |
0:dc5ded118d7c | 915 | * @param[in] lo_ctr_freq_lower |
| Sinan Divarci |
0:dc5ded118d7c | 916 | * |
| Sinan Divarci |
0:dc5ded118d7c | 917 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 918 | * |
| Sinan Divarci |
0:dc5ded118d7c | 919 | * @description LO Center Frequency, lower byte of 24-bit word |
| Sinan Divarci |
0:dc5ded118d7c | 920 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 921 | int get_lo_ctr_freq_lower(uint8_t *lo_ctr_freq_lower); |
| Sinan Divarci |
0:dc5ded118d7c | 922 | |
| Sinan Divarci |
0:dc5ded118d7c | 923 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 924 | * @brief Gets Preamble Bit Pattern Length before Manchester Coding (Register: PREAMBLE_CFG1 ,0x0C) |
| Sinan Divarci |
0:dc5ded118d7c | 925 | * |
| Sinan Divarci |
0:dc5ded118d7c | 926 | * @param[in] preamb_len |
| Sinan Divarci |
0:dc5ded118d7c | 927 | * |
| Sinan Divarci |
0:dc5ded118d7c | 928 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 929 | * |
| Sinan Divarci |
0:dc5ded118d7c | 930 | * @description Preamble Bit Pattern Length before Manchester Coding |
| Sinan Divarci |
0:dc5ded118d7c | 931 | * Bit Pattern Length = Register Field Value +1 |
| Sinan Divarci |
0:dc5ded118d7c | 932 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 933 | int get_preamb_len(uint8_t *preamb_len); |
| Sinan Divarci |
0:dc5ded118d7c | 934 | |
| Sinan Divarci |
0:dc5ded118d7c | 935 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 936 | * @brief Gets Lower Byte of the Preamble Bit Pattern before Manchester Coding (Register: PREAMBLE_WORD1 ,0x0D) |
| Sinan Divarci |
0:dc5ded118d7c | 937 | * |
| Sinan Divarci |
0:dc5ded118d7c | 938 | * @param[in] preamb_word_lower |
| Sinan Divarci |
0:dc5ded118d7c | 939 | * |
| Sinan Divarci |
0:dc5ded118d7c | 940 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 941 | * |
| Sinan Divarci |
0:dc5ded118d7c | 942 | * @description Lower Byte of the Preamble Bit Pattern before Manchester Coding |
| Sinan Divarci |
0:dc5ded118d7c | 943 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 944 | int get_preamb_word_lower(uint8_t *preamb_word_lower); |
| Sinan Divarci |
0:dc5ded118d7c | 945 | |
| Sinan Divarci |
0:dc5ded118d7c | 946 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 947 | * @brief Gets Upper Byte of the Preamble Bit Pattern before Manchester Coding (Register: PREAMBLE_WORD2 ,0x0E) |
| Sinan Divarci |
0:dc5ded118d7c | 948 | * |
| Sinan Divarci |
0:dc5ded118d7c | 949 | * @param[in] preamb_word_upper |
| Sinan Divarci |
0:dc5ded118d7c | 950 | * |
| Sinan Divarci |
0:dc5ded118d7c | 951 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 952 | * |
| Sinan Divarci |
0:dc5ded118d7c | 953 | * @description Upper Byte of the Preamble Bit Pattern before Manchester Coding |
| Sinan Divarci |
0:dc5ded118d7c | 954 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 955 | int get_preamb_word_upper(uint8_t *preamb_word_upper); |
| Sinan Divarci |
0:dc5ded118d7c | 956 | |
| Sinan Divarci |
0:dc5ded118d7c | 957 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 958 | * @brief Gets Received Signal Strength Indicator (RSSI) (Register: RSSI ,0x10) |
| Sinan Divarci |
0:dc5ded118d7c | 959 | * |
| Sinan Divarci |
0:dc5ded118d7c | 960 | * @param[in] rssi |
| Sinan Divarci |
0:dc5ded118d7c | 961 | * |
| Sinan Divarci |
0:dc5ded118d7c | 962 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 963 | * |
| Sinan Divarci |
0:dc5ded118d7c | 964 | * @description Received Signal Strength Indicator (RSSI) |
| Sinan Divarci |
0:dc5ded118d7c | 965 | * 8-bit unsigned integer |
| Sinan Divarci |
0:dc5ded118d7c | 966 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 967 | int get_rssi(uint8_t *rssi); |
| Sinan Divarci |
0:dc5ded118d7c | 968 | |
| Sinan Divarci |
0:dc5ded118d7c | 969 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 970 | * @brief Gets AFC Frequency Error Indicator (FEI) (Register: FEI ,0x11) |
| Sinan Divarci |
0:dc5ded118d7c | 971 | * |
| Sinan Divarci |
0:dc5ded118d7c | 972 | * @param[in] fei |
| Sinan Divarci |
0:dc5ded118d7c | 973 | * |
| Sinan Divarci |
0:dc5ded118d7c | 974 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 975 | * |
| Sinan Divarci |
0:dc5ded118d7c | 976 | * @description AFC Frequency Error Indicator (FEI) |
| Sinan Divarci |
0:dc5ded118d7c | 977 | * 8-bit signed integer in two's complement format |
| Sinan Divarci |
0:dc5ded118d7c | 978 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 979 | int get_fei(uint8_t *fei); |
| Sinan Divarci |
0:dc5ded118d7c | 980 | |
| Sinan Divarci |
0:dc5ded118d7c | 981 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 982 | * @brief Gets Post Demodulation Filter (PDF) Read Out (Register: PDF_OUT, 0x12) |
| Sinan Divarci |
0:dc5ded118d7c | 983 | * |
| Sinan Divarci |
0:dc5ded118d7c | 984 | * @param[in] pdf_out |
| Sinan Divarci |
0:dc5ded118d7c | 985 | * |
| Sinan Divarci |
0:dc5ded118d7c | 986 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 987 | * |
| Sinan Divarci |
0:dc5ded118d7c | 988 | * @description Post Demodulation Filter (PDF) Read Out |
| Sinan Divarci |
0:dc5ded118d7c | 989 | * 8-bit signed integer in two's complement format |
| Sinan Divarci |
0:dc5ded118d7c | 990 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 991 | int get_pdf_out(uint8_t *pdf_out); |
| Sinan Divarci |
0:dc5ded118d7c | 992 | |
| Sinan Divarci |
0:dc5ded118d7c | 993 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 994 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 995 | * |
| Sinan Divarci |
0:dc5ded118d7c | 996 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 997 | * - Register : ISR (0x13) |
| Sinan Divarci |
0:dc5ded118d7c | 998 | * - Bit Fields : [0] |
| Sinan Divarci |
0:dc5ded118d7c | 999 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 1000 | * - Description : Interrupt Status Register Bit 0: preamble detector in self-polling mode |
| Sinan Divarci |
0:dc5ded118d7c | 1001 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1002 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1003 | PREAMB_DET_NO_INT_EVENT, /**< 0x0: No interrupt event */ |
| Sinan Divarci |
0:dc5ded118d7c | 1004 | PREAMB_DET_PREAMB_DETECTED /**< 0x1: Preamble detected in self-polling */ |
| Sinan Divarci |
0:dc5ded118d7c | 1005 | } preamb_det_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1006 | |
| Sinan Divarci |
0:dc5ded118d7c | 1007 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1008 | * @brief Gets Post Demodulation Filter (PDF) Read Out |
| Sinan Divarci |
0:dc5ded118d7c | 1009 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1010 | * @param[in] preamb_det |
| Sinan Divarci |
0:dc5ded118d7c | 1011 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1012 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1013 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1014 | int get_preamb_det(preamb_det_t *preamb_det); |
| Sinan Divarci |
0:dc5ded118d7c | 1015 | |
| Sinan Divarci |
0:dc5ded118d7c | 1016 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1017 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 1018 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1019 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 1020 | * - Register : CDR_CFG1 (0x35) |
| Sinan Divarci |
0:dc5ded118d7c | 1021 | * - Bit Fields : [1:0] |
| Sinan Divarci |
0:dc5ded118d7c | 1022 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 1023 | * - Description : |
| Sinan Divarci |
0:dc5ded118d7c | 1024 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1025 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1026 | CDR_MODE_CDR_DISABLED, /**< 0x0: CDR disabled */ |
| Sinan Divarci |
0:dc5ded118d7c | 1027 | CDR_MODE_CLKOUT_EN_DATAOUT_UNTIMED, /**< 0x1: Clock out enabled, DATAOUT untimed */ |
| Sinan Divarci |
0:dc5ded118d7c | 1028 | CDR_MODE_CLKOUT_DIS_DATAOUT_RETIMED, /**< 0x2: Clock out disabled, DATAOUT retimed */ |
| Sinan Divarci |
0:dc5ded118d7c | 1029 | CDR_MODE_CLKOUT_EN_DATAOUT_RETIMED /**< 0x3: Clock out enabled, DATAOUT retimed */ |
| Sinan Divarci |
0:dc5ded118d7c | 1030 | } cdr_mode_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1031 | |
| Sinan Divarci |
0:dc5ded118d7c | 1032 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1033 | * @brief Sets CDR_MODE |
| Sinan Divarci |
0:dc5ded118d7c | 1034 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1035 | * @param[in] cdr_mode |
| Sinan Divarci |
0:dc5ded118d7c | 1036 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1037 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1038 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1039 | int set_cdr_mode(cdr_mode_t cdr_mode); |
| Sinan Divarci |
0:dc5ded118d7c | 1040 | |
| Sinan Divarci |
0:dc5ded118d7c | 1041 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1042 | * @brief Gets CDR_MODE |
| Sinan Divarci |
0:dc5ded118d7c | 1043 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1044 | * @param[in] cdr_mode |
| Sinan Divarci |
0:dc5ded118d7c | 1045 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1046 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1047 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1048 | int get_cdr_mode(cdr_mode_t *cdr_mode); |
| Sinan Divarci |
0:dc5ded118d7c | 1049 | |
| Sinan Divarci |
0:dc5ded118d7c | 1050 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1051 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 1052 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1053 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 1054 | * - Register : STATE_CTRL1 (0x14) |
| Sinan Divarci |
0:dc5ded118d7c | 1055 | * - Bit Fields : [2] |
| Sinan Divarci |
0:dc5ded118d7c | 1056 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 1057 | * - Description : XO Enable Bit |
| Sinan Divarci |
0:dc5ded118d7c | 1058 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1059 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1060 | EN_XO_DIS_XO, /**< 0x0: Disable XO */ |
| Sinan Divarci |
0:dc5ded118d7c | 1061 | EN_XO_EN_XO /**< 0x1: Enable XO */ |
| Sinan Divarci |
0:dc5ded118d7c | 1062 | } en_xo_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1063 | |
| Sinan Divarci |
0:dc5ded118d7c | 1064 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1065 | * @brief Sets XO Enable Bit |
| Sinan Divarci |
0:dc5ded118d7c | 1066 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1067 | * @param[in] en_xo |
| Sinan Divarci |
0:dc5ded118d7c | 1068 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1069 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1070 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1071 | int set_en_xo(en_xo_t en_xo); |
| Sinan Divarci |
0:dc5ded118d7c | 1072 | |
| Sinan Divarci |
0:dc5ded118d7c | 1073 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1074 | * @brief Gets XO Enable Bit |
| Sinan Divarci |
0:dc5ded118d7c | 1075 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1076 | * @param[in] en_xo |
| Sinan Divarci |
0:dc5ded118d7c | 1077 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1078 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1079 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1080 | int get_en_xo(en_xo_t *en_xo); |
| Sinan Divarci |
0:dc5ded118d7c | 1081 | |
| Sinan Divarci |
0:dc5ded118d7c | 1082 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1083 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 1084 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1085 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 1086 | * - Register : STATE_CTRL1 (0x14) |
| Sinan Divarci |
0:dc5ded118d7c | 1087 | * - Bit Fields : [1] |
| Sinan Divarci |
0:dc5ded118d7c | 1088 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 1089 | * - Description : Wake-Up Timer (WUT) Enable Bit |
| Sinan Divarci |
0:dc5ded118d7c | 1090 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1091 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1092 | WUT_EN_DIS_WUT, /**< 0x0: Disable WUT */ |
| Sinan Divarci |
0:dc5ded118d7c | 1093 | WUT_EN_EN_WUT /**< 0x1: Enable WUT */ |
| Sinan Divarci |
0:dc5ded118d7c | 1094 | } wut_en_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1095 | |
| Sinan Divarci |
0:dc5ded118d7c | 1096 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1097 | * @brief Sets Wake-Up Timer (WUT) Enable Bit |
| Sinan Divarci |
0:dc5ded118d7c | 1098 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1099 | * @param[in] wut_en |
| Sinan Divarci |
0:dc5ded118d7c | 1100 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1101 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1102 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1103 | int set_wut_en(wut_en_t wut_en); |
| Sinan Divarci |
0:dc5ded118d7c | 1104 | |
| Sinan Divarci |
0:dc5ded118d7c | 1105 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1106 | * @brief Gets Wake-Up Timer (WUT) Enable Bit |
| Sinan Divarci |
0:dc5ded118d7c | 1107 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1108 | * @param[in] wut_en |
| Sinan Divarci |
0:dc5ded118d7c | 1109 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1110 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1111 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1112 | int get_wut_en(wut_en_t *wut_en); |
| Sinan Divarci |
0:dc5ded118d7c | 1113 | |
| Sinan Divarci |
0:dc5ded118d7c | 1114 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1115 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 1116 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1117 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 1118 | * - Register : STATE_CTRL1 (0x14) |
| Sinan Divarci |
0:dc5ded118d7c | 1119 | * - Bit Fields : [0] |
| Sinan Divarci |
0:dc5ded118d7c | 1120 | * - Default : 0x0 |
| Sinan Divarci |
0:dc5ded118d7c | 1121 | * - Description : Slave Receiver Enable Bit |
| Sinan Divarci |
0:dc5ded118d7c | 1122 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1123 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1124 | SLAVE_RX_EN_DIS_RECEIVER, /**< 0x0: Disable Receiver */ |
| Sinan Divarci |
0:dc5ded118d7c | 1125 | SLAVE_RX_EN_EN_RECEIVER /**< 0x1: Enable Receiver */ |
| Sinan Divarci |
0:dc5ded118d7c | 1126 | } slave_rx_en_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1127 | |
| Sinan Divarci |
0:dc5ded118d7c | 1128 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1129 | * @brief Sets Slave Receiver Enable Bit |
| Sinan Divarci |
0:dc5ded118d7c | 1130 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1131 | * @param[in] slave_rx_en |
| Sinan Divarci |
0:dc5ded118d7c | 1132 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1133 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1134 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1135 | int set_slave_rx_en(slave_rx_en_t slave_rx_en); |
| Sinan Divarci |
0:dc5ded118d7c | 1136 | |
| Sinan Divarci |
0:dc5ded118d7c | 1137 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1138 | * @brief Gets Slave Receiver Enable Bit |
| Sinan Divarci |
0:dc5ded118d7c | 1139 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1140 | * @param[in] slave_rx_en |
| Sinan Divarci |
0:dc5ded118d7c | 1141 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1142 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1143 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1144 | int get_slave_rx_en(slave_rx_en_t *slave_rx_en); |
| Sinan Divarci |
0:dc5ded118d7c | 1145 | |
| Sinan Divarci |
0:dc5ded118d7c | 1146 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1147 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 1148 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1149 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 1150 | * - Register : STATE_CTRL2 (0x15) |
| Sinan Divarci |
0:dc5ded118d7c | 1151 | * - Bit Fields : [1:0] |
| Sinan Divarci |
0:dc5ded118d7c | 1152 | * - Default : |
| Sinan Divarci |
0:dc5ded118d7c | 1153 | * - Description : Receiver State Machine Register |
| Sinan Divarci |
0:dc5ded118d7c | 1154 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1155 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1156 | RX_STATE_STANDBY, /**< 0x0: Standby */ |
| Sinan Divarci |
0:dc5ded118d7c | 1157 | RX_STATE_SLAVE_RECEIVER, /**< 0x1: Slave receiver */ |
| Sinan Divarci |
0:dc5ded118d7c | 1158 | RX_STATE_W_IN_SELFPOLLING, /**< 0x2: Wait in self-polling */ |
| Sinan Divarci |
0:dc5ded118d7c | 1159 | RX_STATE_POLLING_RECEIVER /**< 0x3: Polling receiver */ |
| Sinan Divarci |
0:dc5ded118d7c | 1160 | } rx_state_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1161 | |
| Sinan Divarci |
0:dc5ded118d7c | 1162 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1163 | * @brief Gets Receiver State Machine Register |
| Sinan Divarci |
0:dc5ded118d7c | 1164 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1165 | * @param[in] rx_state |
| Sinan Divarci |
0:dc5ded118d7c | 1166 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1167 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1168 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1169 | int get_rx_state(rx_state_t *rx_state); |
| Sinan Divarci |
0:dc5ded118d7c | 1170 | |
| Sinan Divarci |
0:dc5ded118d7c | 1171 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1172 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 1173 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1174 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 1175 | * - Register : STATE_CTRL3 (0x16) |
| Sinan Divarci |
0:dc5ded118d7c | 1176 | * - Bit Fields : [1:0] |
| Sinan Divarci |
0:dc5ded118d7c | 1177 | * - Default : 0x03 |
| Sinan Divarci |
0:dc5ded118d7c | 1178 | * - Description : Receiver Front-End Turn-On Time |
| Sinan Divarci |
0:dc5ded118d7c | 1179 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1180 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1181 | RX_RESET_TIME_80US, /**< 0x0: 0.08ms */ |
| Sinan Divarci |
0:dc5ded118d7c | 1182 | RX_RESET_TIME_160US, /**< 0x1: 0.16ms */ |
| Sinan Divarci |
0:dc5ded118d7c | 1183 | RX_RESET_TIME_240US, /**< 0x2: 0.24ms */ |
| Sinan Divarci |
0:dc5ded118d7c | 1184 | RX_RESET_TIME_320US /**< 0x3: 0.32ms */ |
| Sinan Divarci |
0:dc5ded118d7c | 1185 | } rx_reset_time_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1186 | |
| Sinan Divarci |
0:dc5ded118d7c | 1187 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1188 | * @brief Sets Receiver Front-End Turn-On Time |
| Sinan Divarci |
0:dc5ded118d7c | 1189 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1190 | * @param[in] rx_reset_time |
| Sinan Divarci |
0:dc5ded118d7c | 1191 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1192 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1193 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1194 | int set_rx_reset_time(rx_reset_time_t rx_reset_time); |
| Sinan Divarci |
0:dc5ded118d7c | 1195 | |
| Sinan Divarci |
0:dc5ded118d7c | 1196 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1197 | * @brief Gets Receiver Front-End Turn-On Time |
| Sinan Divarci |
0:dc5ded118d7c | 1198 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1199 | * @param[in] rx_reset_time |
| Sinan Divarci |
0:dc5ded118d7c | 1200 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1201 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1202 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1203 | int get_rx_reset_time(rx_reset_time_t *rx_reset_time); |
| Sinan Divarci |
0:dc5ded118d7c | 1204 | |
| Sinan Divarci |
0:dc5ded118d7c | 1205 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1206 | * @brief Sets Duration in POLLINGRX State (Register: WUT1, 0x17) |
| Sinan Divarci |
0:dc5ded118d7c | 1207 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1208 | * @param[in] tdet |
| Sinan Divarci |
0:dc5ded118d7c | 1209 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1210 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1211 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1212 | * @description Duration in POLLINGRX State: from 0.48ms to 20.88ms, in step size of 0.08ms |
| Sinan Divarci |
0:dc5ded118d7c | 1213 | * Duration (ms) = 0.48 + 0.08 x (tdet) |
| Sinan Divarci |
0:dc5ded118d7c | 1214 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1215 | int set_tdet(uint8_t tdet); |
| Sinan Divarci |
0:dc5ded118d7c | 1216 | |
| Sinan Divarci |
0:dc5ded118d7c | 1217 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1218 | * @brief Gets Duration in POLLINGRX State (Register: WUT1, 0x17) |
| Sinan Divarci |
0:dc5ded118d7c | 1219 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1220 | * @param[in] tdet |
| Sinan Divarci |
0:dc5ded118d7c | 1221 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1222 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1223 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1224 | * @description Duration in POLLINGRX State: from 0.48ms to 20.88ms, in step size of 0.08ms |
| Sinan Divarci |
0:dc5ded118d7c | 1225 | * Duration (ms) = 0.48 + 0.08 x (tdet) |
| Sinan Divarci |
0:dc5ded118d7c | 1226 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1227 | int get_tdet(uint8_t *tdet); |
| Sinan Divarci |
0:dc5ded118d7c | 1228 | |
| Sinan Divarci |
0:dc5ded118d7c | 1229 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1230 | * @brief Sets WUT Duty Cycle Control (Register: WUT2, 0x18) |
| Sinan Divarci |
0:dc5ded118d7c | 1231 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1232 | * @param[in] tsby_tdet_ratio |
| Sinan Divarci |
0:dc5ded118d7c | 1233 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1234 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1235 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1236 | * @description Duty Cycle = 1 / (2 + tsby_tdet_ratio) |
| Sinan Divarci |
0:dc5ded118d7c | 1237 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1238 | int set_tsby_tdet_ratio(uint8_t tsby_tdet_ratio); |
| Sinan Divarci |
0:dc5ded118d7c | 1239 | |
| Sinan Divarci |
0:dc5ded118d7c | 1240 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1241 | * @brief Gets WUT Duty Cycle Control (WUT2, 0x18) |
| Sinan Divarci |
0:dc5ded118d7c | 1242 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1243 | * @param[in] tsby_tdet_ratio |
| Sinan Divarci |
0:dc5ded118d7c | 1244 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1245 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1246 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1247 | * @description Duty Cycle = 1 / (2 + tsby_tdet_ratio) |
| Sinan Divarci |
0:dc5ded118d7c | 1248 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1249 | int get_tsby_tdet_ratio(uint8_t *tsby_tdet_ratio); |
| Sinan Divarci |
0:dc5ded118d7c | 1250 | |
| Sinan Divarci |
0:dc5ded118d7c | 1251 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1252 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 1253 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1254 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 1255 | * - Register : AFE_CTL1 (0x19) |
| Sinan Divarci |
0:dc5ded118d7c | 1256 | * - Bit Fields : [7:6] |
| Sinan Divarci |
0:dc5ded118d7c | 1257 | * - Default : 0x02 |
| Sinan Divarci |
0:dc5ded118d7c | 1258 | * - Description : Start Delay before Applying XO Clock to Digital |
| Sinan Divarci |
0:dc5ded118d7c | 1259 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1260 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1261 | XOCLKDELAY_NO_DELAY, /**< 0x0: No delay */ |
| Sinan Divarci |
0:dc5ded118d7c | 1262 | XOCLKDELAY_16_CYCLE, /**< 0x1: 16 cycle delay */ |
| Sinan Divarci |
0:dc5ded118d7c | 1263 | XOCLKDELAY_32_CYCLE, /**< 0x2: 32 cycle delay */ |
| Sinan Divarci |
0:dc5ded118d7c | 1264 | XOCLKDELAY_64_CYCLE /**< 0x3: 64 cycle delay */ |
| Sinan Divarci |
0:dc5ded118d7c | 1265 | } xoclkdelay_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1266 | |
| Sinan Divarci |
0:dc5ded118d7c | 1267 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1268 | * @brief Sets Start Delay before Applying XO Clock to Digital |
| Sinan Divarci |
0:dc5ded118d7c | 1269 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1270 | * @param[in] xoclkdelay |
| Sinan Divarci |
0:dc5ded118d7c | 1271 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1272 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1273 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1274 | int set_xoclkdelay(xoclkdelay_t xoclkdelay); |
| Sinan Divarci |
0:dc5ded118d7c | 1275 | |
| Sinan Divarci |
0:dc5ded118d7c | 1276 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1277 | * @brief Gets Start Delay before Applying XO Clock to Digital |
| Sinan Divarci |
0:dc5ded118d7c | 1278 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1279 | * @param[in] xoclkdelay |
| Sinan Divarci |
0:dc5ded118d7c | 1280 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1281 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1282 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1283 | int get_xoclkdelay(xoclkdelay_t *xoclkdelay); |
| Sinan Divarci |
0:dc5ded118d7c | 1284 | |
| Sinan Divarci |
0:dc5ded118d7c | 1285 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1286 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 1287 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1288 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 1289 | * - Register : AFE_CTL1 (0x19) |
| Sinan Divarci |
0:dc5ded118d7c | 1290 | * - Bit Fields : [5:4] |
| Sinan Divarci |
0:dc5ded118d7c | 1291 | * - Default : 0x01 |
| Sinan Divarci |
0:dc5ded118d7c | 1292 | * - Description : XO Clock Divider Ratio |
| Sinan Divarci |
0:dc5ded118d7c | 1293 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1294 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1295 | XOCLKDIV_DIVIDE_BY_4, /**< 0x0: Divide by 4 */ |
| Sinan Divarci |
0:dc5ded118d7c | 1296 | XOCLKDIV_DIVIDE_BY_5, /**< 0x1: Divide by 5 */ |
| Sinan Divarci |
0:dc5ded118d7c | 1297 | XOCLKDIV_DIVIDE_BY_6, /**< 0x2: Divide by 6 */ |
| Sinan Divarci |
0:dc5ded118d7c | 1298 | XOCLKDIV_INVALID /**< 0x3: Invalid Value */ |
| Sinan Divarci |
0:dc5ded118d7c | 1299 | } xoclkdiv_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1300 | |
| Sinan Divarci |
0:dc5ded118d7c | 1301 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1302 | * @brief Sets Start Delay before Applying XO Clock to Digital |
| Sinan Divarci |
0:dc5ded118d7c | 1303 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1304 | * @param[in] xoclkdiv |
| Sinan Divarci |
0:dc5ded118d7c | 1305 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1306 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1307 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1308 | int set_xoclkdiv(xoclkdiv_t xoclkdiv); |
| Sinan Divarci |
0:dc5ded118d7c | 1309 | |
| Sinan Divarci |
0:dc5ded118d7c | 1310 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1311 | * @brief Gets Start Delay before Applying XO Clock to Digital |
| Sinan Divarci |
0:dc5ded118d7c | 1312 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1313 | * @param[in] xoclkdelay |
| Sinan Divarci |
0:dc5ded118d7c | 1314 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1315 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1316 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1317 | int get_xoclkdiv(xoclkdiv_t *xoclkdiv); |
| Sinan Divarci |
0:dc5ded118d7c | 1318 | |
| Sinan Divarci |
0:dc5ded118d7c | 1319 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1320 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 1321 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1322 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 1323 | * - Register : AFE_CTL1 (0x19) |
| Sinan Divarci |
0:dc5ded118d7c | 1324 | * - Bit Fields : [3] |
| Sinan Divarci |
0:dc5ded118d7c | 1325 | * - Default : 0x00 |
| Sinan Divarci |
0:dc5ded118d7c | 1326 | * - Description : LO Injection Control |
| Sinan Divarci |
0:dc5ded118d7c | 1327 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1328 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1329 | MIX_HS_LSBAR_TARGET_HT_LO_FREQ, /**< 0x0: Targeted RF frequency higher than LO frequency */ |
| Sinan Divarci |
0:dc5ded118d7c | 1330 | MIX_HS_LSBAR_TARGET_LT_LO_FREQ /**< 0x1: Targeted RF frequency lower than LO frequency */ |
| Sinan Divarci |
0:dc5ded118d7c | 1331 | } mix_hs_lsbar_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1332 | |
| Sinan Divarci |
0:dc5ded118d7c | 1333 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1334 | * @brief Sets LO Injection Control |
| Sinan Divarci |
0:dc5ded118d7c | 1335 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1336 | * @param[in] mix_hs_ls_bar |
| Sinan Divarci |
0:dc5ded118d7c | 1337 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1338 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1339 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1340 | int set_mix_hs_lsbar(mix_hs_lsbar_t mix_hs_lsbar); |
| Sinan Divarci |
0:dc5ded118d7c | 1341 | |
| Sinan Divarci |
0:dc5ded118d7c | 1342 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1343 | * @brief Gets LO Injection Control |
| Sinan Divarci |
0:dc5ded118d7c | 1344 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1345 | * @param[in] mix_hs_ls_bar |
| Sinan Divarci |
0:dc5ded118d7c | 1346 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1347 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1348 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1349 | int get_mix_hs_lsbar(mix_hs_lsbar_t *mix_hs_lsbar); |
| Sinan Divarci |
0:dc5ded118d7c | 1350 | |
| Sinan Divarci |
0:dc5ded118d7c | 1351 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1352 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 1353 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1354 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 1355 | * - Register : AFE_CTL1 (0x19) |
| Sinan Divarci |
0:dc5ded118d7c | 1356 | * - Bit Fields : [2:1] |
| Sinan Divarci |
0:dc5ded118d7c | 1357 | * - Default : 0x01 |
| Sinan Divarci |
0:dc5ded118d7c | 1358 | * - Description : LO Divider Control |
| Sinan Divarci |
0:dc5ded118d7c | 1359 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1360 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1361 | LODIV_PLL_DISABLED, /**< 0x0: PLL disabled */ |
| Sinan Divarci |
0:dc5ded118d7c | 1362 | LODIV_860MHZ_TO_960MHZ, /**< 0x1: 860MHz to 960MHz */ |
| Sinan Divarci |
0:dc5ded118d7c | 1363 | LODIV_425MHZ_TO_480MHZ, /**< 0x2: 425MHz to 480MHz */ |
| Sinan Divarci |
0:dc5ded118d7c | 1364 | LODIV_286MHZ_TO_320MHZ, /**< 0x3: 286MHz to 320MHz */ |
| Sinan Divarci |
0:dc5ded118d7c | 1365 | } lodiv_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1366 | |
| Sinan Divarci |
0:dc5ded118d7c | 1367 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1368 | * @brief Sets LO Divider Control |
| Sinan Divarci |
0:dc5ded118d7c | 1369 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1370 | * @param[in] lodiv |
| Sinan Divarci |
0:dc5ded118d7c | 1371 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1372 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1373 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1374 | int set_lodiv(lodiv_t lodiv); |
| Sinan Divarci |
0:dc5ded118d7c | 1375 | |
| Sinan Divarci |
0:dc5ded118d7c | 1376 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1377 | * @brief Gets LO Divider Control |
| Sinan Divarci |
0:dc5ded118d7c | 1378 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1379 | * @param[in] lodiv |
| Sinan Divarci |
0:dc5ded118d7c | 1380 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1381 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1382 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1383 | int get_lodiv(lodiv_t *lodiv); |
| Sinan Divarci |
0:dc5ded118d7c | 1384 | |
| Sinan Divarci |
0:dc5ded118d7c | 1385 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1386 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 1387 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1388 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 1389 | * - Register : AFE_CTL1 (0x19) |
| Sinan Divarci |
0:dc5ded118d7c | 1390 | * - Bit Fields : [0] |
| Sinan Divarci |
0:dc5ded118d7c | 1391 | * - Default : 0x01 |
| Sinan Divarci |
0:dc5ded118d7c | 1392 | * - Description : PLL Mode Control: always program to 1 |
| Sinan Divarci |
0:dc5ded118d7c | 1393 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1394 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1395 | FRACMODE_INTEGER_N_PLL, /**< 0x0: Integer-N PLL */ |
| Sinan Divarci |
0:dc5ded118d7c | 1396 | FRACMODE_FRACTIONAL_N_PLL /**< 0x1: Fractional-N PLL */ |
| Sinan Divarci |
0:dc5ded118d7c | 1397 | } fracmode_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1398 | |
| Sinan Divarci |
0:dc5ded118d7c | 1399 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1400 | * @brief Sets PLL Mode Control |
| Sinan Divarci |
0:dc5ded118d7c | 1401 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1402 | * @param[in] fracmode |
| Sinan Divarci |
0:dc5ded118d7c | 1403 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1404 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1405 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1406 | int set_fracmode(fracmode_t fracmode); |
| Sinan Divarci |
0:dc5ded118d7c | 1407 | |
| Sinan Divarci |
0:dc5ded118d7c | 1408 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1409 | * @brief Gets PLL Mode Control |
| Sinan Divarci |
0:dc5ded118d7c | 1410 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1411 | * @param[in] fracmode |
| Sinan Divarci |
0:dc5ded118d7c | 1412 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1413 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1414 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1415 | int get_fracmode(fracmode_t *fracmode); |
| Sinan Divarci |
0:dc5ded118d7c | 1416 | |
| Sinan Divarci |
0:dc5ded118d7c | 1417 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1418 | * @brief Sets Image Rejection Adjustment (Register: IR_ADJUST ,0x1A) |
| Sinan Divarci |
0:dc5ded118d7c | 1419 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1420 | * @param[in] ir_adjust |
| Sinan Divarci |
0:dc5ded118d7c | 1421 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1422 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1423 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1424 | * @description Image Rejection Adjustment. See the Image Rejection Calibration section for more information. |
| Sinan Divarci |
0:dc5ded118d7c | 1425 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1426 | int set_ir_adjust(uint8_t ir_adjust); |
| Sinan Divarci |
0:dc5ded118d7c | 1427 | |
| Sinan Divarci |
0:dc5ded118d7c | 1428 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1429 | * @brief Gets Image Rejection Adjustment (Register: IR_ADJUST ,0x1A) |
| Sinan Divarci |
0:dc5ded118d7c | 1430 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1431 | * @param[in] ir_adjust |
| Sinan Divarci |
0:dc5ded118d7c | 1432 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1433 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1434 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1435 | * @description Image Rejection Adjustment. See the Image Rejection Calibration section for more information. |
| Sinan Divarci |
0:dc5ded118d7c | 1436 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1437 | int get_ir_adjust(uint8_t *ir_adjust); |
| Sinan Divarci |
0:dc5ded118d7c | 1438 | |
| Sinan Divarci |
0:dc5ded118d7c | 1439 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1440 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 1441 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1442 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 1443 | * - Register : PART_NUM (0x1E) |
| Sinan Divarci |
0:dc5ded118d7c | 1444 | * - Bit Fields : [7:0] |
| Sinan Divarci |
0:dc5ded118d7c | 1445 | * - Default : |
| Sinan Divarci |
0:dc5ded118d7c | 1446 | * - Description : Part Number Designator. |
| Sinan Divarci |
0:dc5ded118d7c | 1447 | * Read of part number requires EN_XO = 1 |
| Sinan Divarci |
0:dc5ded118d7c | 1448 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1449 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1450 | PART_NUM_MAX41470 = 0x70, /**< 0x70 = MAX41470 */ |
| Sinan Divarci |
0:dc5ded118d7c | 1451 | PART_NUM_MAX41473 = 0x73, /**< 0x73 = MAX41473 */ |
| Sinan Divarci |
0:dc5ded118d7c | 1452 | PART_NUM_MAX41474 = 0x74 /**< 0x74 = MAX41474 */ |
| Sinan Divarci |
0:dc5ded118d7c | 1453 | } part_num_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1454 | |
| Sinan Divarci |
0:dc5ded118d7c | 1455 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1456 | * @brief Gets Part Number Designator |
| Sinan Divarci |
0:dc5ded118d7c | 1457 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1458 | * @param[in] part_num |
| Sinan Divarci |
0:dc5ded118d7c | 1459 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1460 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1461 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1462 | int get_part_num(part_num_t *part_num); |
| Sinan Divarci |
0:dc5ded118d7c | 1463 | |
| Sinan Divarci |
0:dc5ded118d7c | 1464 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1465 | * @brief Gets Revision Number of Chip (Register: REV_NUM ,0x1F) |
| Sinan Divarci |
0:dc5ded118d7c | 1466 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1467 | * @param[in] rev_num |
| Sinan Divarci |
0:dc5ded118d7c | 1468 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1469 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1470 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1471 | * @description Revision Number of Chip |
| Sinan Divarci |
0:dc5ded118d7c | 1472 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1473 | int get_rev_num(uint8_t *rev_num); |
| Sinan Divarci |
0:dc5ded118d7c | 1474 | |
| Sinan Divarci |
0:dc5ded118d7c | 1475 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1476 | * @brief Register Configuration |
| Sinan Divarci |
0:dc5ded118d7c | 1477 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1478 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 1479 | * - Register : STATUS (0x27) |
| Sinan Divarci |
0:dc5ded118d7c | 1480 | * - Bit Fields : [0] |
| Sinan Divarci |
0:dc5ded118d7c | 1481 | * - Default : |
| Sinan Divarci |
0:dc5ded118d7c | 1482 | * - Description : PLL Lock Status |
| Sinan Divarci |
0:dc5ded118d7c | 1483 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1484 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1485 | PLL_LOCK_NOT_LOCKED, /**< 0x0: PLL is not locked */ |
| Sinan Divarci |
0:dc5ded118d7c | 1486 | PLL_LOCK_LOCKED /**< 0x1: PLL is locked */ |
| Sinan Divarci |
0:dc5ded118d7c | 1487 | } pll_lock_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1488 | |
| Sinan Divarci |
0:dc5ded118d7c | 1489 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1490 | * @brief Gets PLL Lock Status |
| Sinan Divarci |
0:dc5ded118d7c | 1491 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1492 | * @param[in] pll_lock |
| Sinan Divarci |
0:dc5ded118d7c | 1493 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1494 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1495 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1496 | int get_pll_lock(pll_lock_t *pll_lock); |
| Sinan Divarci |
0:dc5ded118d7c | 1497 | |
| Sinan Divarci |
0:dc5ded118d7c | 1498 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1499 | * @brief Set power on/off |
| Sinan Divarci |
0:dc5ded118d7c | 1500 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1501 | * @param[in] power 0 : power ON, 1: power OFF |
| Sinan Divarci |
0:dc5ded118d7c | 1502 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1503 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1504 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1505 | int set_power_on_off(uint8_t power); |
| Sinan Divarci |
0:dc5ded118d7c | 1506 | |
| Sinan Divarci |
0:dc5ded118d7c | 1507 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1508 | * @brief Operation state of the RF receiver |
| Sinan Divarci |
0:dc5ded118d7c | 1509 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1510 | * @details |
| Sinan Divarci |
0:dc5ded118d7c | 1511 | * - Default : 0x00 |
| Sinan Divarci |
0:dc5ded118d7c | 1512 | * - Description : |
| Sinan Divarci |
0:dc5ded118d7c | 1513 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1514 | typedef enum { |
| Sinan Divarci |
0:dc5ded118d7c | 1515 | INITIALIZED = 0, |
| Sinan Divarci |
0:dc5ded118d7c | 1516 | UNINITIALIZED = 1, |
| Sinan Divarci |
0:dc5ded118d7c | 1517 | UNKNOWN = 2, |
| Sinan Divarci |
0:dc5ded118d7c | 1518 | } operation_mode_t; |
| Sinan Divarci |
0:dc5ded118d7c | 1519 | |
| Sinan Divarci |
0:dc5ded118d7c | 1520 | |
| Sinan Divarci |
0:dc5ded118d7c | 1521 | // Indicates whether initialization is successful |
| Sinan Divarci |
0:dc5ded118d7c | 1522 | operation_mode_t operation_mode; |
| Sinan Divarci |
0:dc5ded118d7c | 1523 | |
| Sinan Divarci |
0:dc5ded118d7c | 1524 | /* PUBLIC FUNCTION DECLARATIONS */ |
| Sinan Divarci |
0:dc5ded118d7c | 1525 | |
| Sinan Divarci |
0:dc5ded118d7c | 1526 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1527 | * @brief Read from a register. Since 3-wire spi is not supported by mbed, the read_register function must be implemented by the user. |
| Sinan Divarci |
0:dc5ded118d7c | 1528 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1529 | * @param[in] reg Address of a register to be read. |
| Sinan Divarci |
0:dc5ded118d7c | 1530 | * @param[out] value Pointer to save result value. |
| Sinan Divarci |
0:dc5ded118d7c | 1531 | * @param[in] len Size of result to be read. |
| Sinan Divarci |
0:dc5ded118d7c | 1532 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1533 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1534 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1535 | virtual int read_register(uint8_t reg, uint8_t *value, uint8_t len); |
| Sinan Divarci |
0:dc5ded118d7c | 1536 | |
| Sinan Divarci |
0:dc5ded118d7c | 1537 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1538 | * @brief Write to a register. |
| Sinan Divarci |
0:dc5ded118d7c | 1539 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1540 | * @param[in] reg Address of a register to be written. |
| Sinan Divarci |
0:dc5ded118d7c | 1541 | * @param[out] value Pointer of value to be written to register. |
| Sinan Divarci |
0:dc5ded118d7c | 1542 | * @param[in] len Size of result to be written. |
| Sinan Divarci |
0:dc5ded118d7c | 1543 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1544 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1545 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1546 | int write_register(uint8_t reg, const uint8_t *value, uint8_t len); |
| Sinan Divarci |
0:dc5ded118d7c | 1547 | |
| Sinan Divarci |
0:dc5ded118d7c | 1548 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1549 | * @brief Configures the crystal frequency of the chip (Fxtal) |
| Sinan Divarci |
0:dc5ded118d7c | 1550 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1551 | * @param[in] freq crystal frequency values between 12.8 MHz and 19.2 MHz |
| Sinan Divarci |
0:dc5ded118d7c | 1552 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1553 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1554 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1555 | int set_crystal_frequency(float freq); |
| Sinan Divarci |
0:dc5ded118d7c | 1556 | |
| Sinan Divarci |
0:dc5ded118d7c | 1557 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1558 | * @brief Get the crystal frequency of the chip (Fxtal) |
| Sinan Divarci |
0:dc5ded118d7c | 1559 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1560 | * @returns crystal frequency values between 12.8 MHz and 19.2 MHz |
| Sinan Divarci |
0:dc5ded118d7c | 1561 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1562 | float get_crystal_frequency(); |
| Sinan Divarci |
0:dc5ded118d7c | 1563 | |
| Sinan Divarci |
0:dc5ded118d7c | 1564 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1565 | * @brief Adjust baud rate |
| Sinan Divarci |
0:dc5ded118d7c | 1566 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1567 | * @param[in] baud_rate preferred baud rate |
| Sinan Divarci |
0:dc5ded118d7c | 1568 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1569 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1570 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1571 | * @description It changes only the values of SRC_LG and SRC_SM |
| Sinan Divarci |
0:dc5ded118d7c | 1572 | * Baud_rate for Manchester = (200/(2^(IF_SEL+CHF_SEL+SRC_LG)))/(4/(8+SRC_SM)) |
| Sinan Divarci |
0:dc5ded118d7c | 1573 | * Baud_rate for NRZ = (200/(2^(IF_SEL+CHF_SEL+SRC_LG)))/(8/(8+SRC_SM)) |
| Sinan Divarci |
0:dc5ded118d7c | 1574 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1575 | int adjust_baud_rate(float baud_rate); |
| Sinan Divarci |
0:dc5ded118d7c | 1576 | |
| Sinan Divarci |
0:dc5ded118d7c | 1577 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1578 | * @brief Gets baud rate |
| Sinan Divarci |
0:dc5ded118d7c | 1579 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1580 | * @returns baud rate. |
| Sinan Divarci |
0:dc5ded118d7c | 1581 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1582 | float get_baud_rate(); |
| Sinan Divarci |
0:dc5ded118d7c | 1583 | |
| Sinan Divarci |
0:dc5ded118d7c | 1584 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1585 | * @brief Adjust center/carrier frequency of the chip |
| Sinan Divarci |
0:dc5ded118d7c | 1586 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1587 | * @param[in] freq center/carrier frequency value between 250 MHz and 950 MHz |
| Sinan Divarci |
0:dc5ded118d7c | 1588 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1589 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1590 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1591 | int set_center_frequency(float freq); |
| Sinan Divarci |
0:dc5ded118d7c | 1592 | |
| Sinan Divarci |
0:dc5ded118d7c | 1593 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1594 | * @brief Gets center/carrier frequency of the chip |
| Sinan Divarci |
0:dc5ded118d7c | 1595 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1596 | * @returns center/carrier frequency value between 250 MHz and 950 MHz |
| Sinan Divarci |
0:dc5ded118d7c | 1597 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1598 | float get_center_frequency(); |
| Sinan Divarci |
0:dc5ded118d7c | 1599 | |
| Sinan Divarci |
0:dc5ded118d7c | 1600 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1601 | * @brief Initial programming steps after power on or soft reset. |
| Sinan Divarci |
0:dc5ded118d7c | 1602 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1603 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1604 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1605 | int initial_programming(void); |
| Sinan Divarci |
0:dc5ded118d7c | 1606 | |
| Sinan Divarci |
0:dc5ded118d7c | 1607 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1608 | * @brief Configures the crystal divider to maintain the internal 3.2MHz time base. |
| Sinan Divarci |
0:dc5ded118d7c | 1609 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1610 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1611 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1612 | * @description The available crystal frequencies are 12.8MHz, 16.0MHz (default), and 19.2MHz. |
| Sinan Divarci |
0:dc5ded118d7c | 1613 | * Crystal Freq(MHz) / Divider Ratio / XOCLKDIV |
| Sinan Divarci |
0:dc5ded118d7c | 1614 | * 12.8 / 4 / 0 |
| Sinan Divarci |
0:dc5ded118d7c | 1615 | * 16.0 / 5 / 1 |
| Sinan Divarci |
0:dc5ded118d7c | 1616 | * 19.2 / 6 / 2 |
| Sinan Divarci |
0:dc5ded118d7c | 1617 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1618 | int adjust_crystal_divider(void); |
| Sinan Divarci |
0:dc5ded118d7c | 1619 | |
| Sinan Divarci |
0:dc5ded118d7c | 1620 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1621 | * @brief Read data for selected Preset/I2C/SPI mode |
| Sinan Divarci |
0:dc5ded118d7c | 1622 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1623 | * @param[in] data data pointer for data to be read |
| Sinan Divarci |
0:dc5ded118d7c | 1624 | * @param[in] length legth of data to be read |
| Sinan Divarci |
0:dc5ded118d7c | 1625 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1626 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1627 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1628 | int read_data(uint8_t *data, uint32_t length); |
| Sinan Divarci |
0:dc5ded118d7c | 1629 | |
| Sinan Divarci |
0:dc5ded118d7c | 1630 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1631 | * @brief Updates Parameter #1 for ASK Threshold Generation(ath_lb) according to parameters |
| Sinan Divarci |
0:dc5ded118d7c | 1632 | * Intermediate Frequency, Channel Filter, Sample Rate Converter and ASK/FSK Selection. |
| Sinan Divarci |
0:dc5ded118d7c | 1633 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1634 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1635 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1636 | int update_ath_lb(void); |
| Sinan Divarci |
0:dc5ded118d7c | 1637 | |
| Sinan Divarci |
0:dc5ded118d7c | 1638 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1639 | * @brief Updates Parameter #2 for ASK Threshold Generation(ath_tc) according to parameters |
| Sinan Divarci |
0:dc5ded118d7c | 1640 | * "Large" adjustment for the Sample Rate Converter(src_lg) and ASK/FSK Selection. |
| Sinan Divarci |
0:dc5ded118d7c | 1641 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1642 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1643 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1644 | int update_ath_tc(void); |
| Sinan Divarci |
0:dc5ded118d7c | 1645 | |
| Sinan Divarci |
0:dc5ded118d7c | 1646 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1647 | * @brief Updates Parameter #3 for ASK Threshold Generation(ath_gc) according to parameters |
| Sinan Divarci |
0:dc5ded118d7c | 1648 | * Intermediate Frequency, Channel Filter and ASK/FSK Selection. |
| Sinan Divarci |
0:dc5ded118d7c | 1649 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1650 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1651 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1652 | int update_ath_gc(void); |
| Sinan Divarci |
0:dc5ded118d7c | 1653 | |
| Sinan Divarci |
0:dc5ded118d7c | 1654 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1655 | * @brief Updates Parameter #4 for ASK Threshold Generation(ath_dt) according to parameters |
| Sinan Divarci |
0:dc5ded118d7c | 1656 | * Baud Rate Ratio, Encoding and ASK/FSK Selection. |
| Sinan Divarci |
0:dc5ded118d7c | 1657 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1658 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1659 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1660 | int update_ath_dt(void); |
| Sinan Divarci |
0:dc5ded118d7c | 1661 | |
| Sinan Divarci |
0:dc5ded118d7c | 1662 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1663 | * @brief Updates Parameter #5 for ASK Threshold Generation(ath_bw) according to parameters |
| Sinan Divarci |
0:dc5ded118d7c | 1664 | * Baud Rate Ratio, Encoding and ASK/FSK Selection. |
| Sinan Divarci |
0:dc5ded118d7c | 1665 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1666 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1667 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1668 | int update_ath_bw(void); |
| Sinan Divarci |
0:dc5ded118d7c | 1669 | |
| Sinan Divarci |
0:dc5ded118d7c | 1670 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1671 | * @brief Updates AFC Frequency Offset Limit(afc_mo) |
| Sinan Divarci |
0:dc5ded118d7c | 1672 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1673 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1674 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1675 | int update_afc_mo(void); |
| Sinan Divarci |
0:dc5ded118d7c | 1676 | |
| Sinan Divarci |
0:dc5ded118d7c | 1677 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1678 | * @brief Updates AFC Loop Gain Control(afc_lg) according to ASK/FSK Selection. |
| Sinan Divarci |
0:dc5ded118d7c | 1679 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1680 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1681 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1682 | int update_afc_lg(void); |
| Sinan Divarci |
0:dc5ded118d7c | 1683 | |
| Sinan Divarci |
0:dc5ded118d7c | 1684 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1685 | * @brief Updates Demodulator Parameter #1(demod_tctrl) according to parameters |
| Sinan Divarci |
0:dc5ded118d7c | 1686 | * "Large" adjustment for the Sample Rate Converter(src_lg), Channel Filter(chf_sel), |
| Sinan Divarci |
0:dc5ded118d7c | 1687 | * ASK Threshold Adjustment Method(ath_type) and ASK/FSK Selection. |
| Sinan Divarci |
0:dc5ded118d7c | 1688 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1689 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1690 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1691 | int update_demod_tctrl(void); |
| Sinan Divarci |
0:dc5ded118d7c | 1692 | |
| Sinan Divarci |
0:dc5ded118d7c | 1693 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1694 | * @brief Updates AGC-Release Threshold Fine Tune(agc_threl) according to Data Rate, |
| Sinan Divarci |
0:dc5ded118d7c | 1695 | * Encoding and ASK/FSK Selection. |
| Sinan Divarci |
0:dc5ded118d7c | 1696 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1697 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1698 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1699 | int update_agc_threl(void); |
| Sinan Divarci |
0:dc5ded118d7c | 1700 | |
| Sinan Divarci |
0:dc5ded118d7c | 1701 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1702 | * @brief Updates ASK Threshold Adjustment Method(ath_type) according to Encoding and |
| Sinan Divarci |
0:dc5ded118d7c | 1703 | * ASK/FSK Selection. |
| Sinan Divarci |
0:dc5ded118d7c | 1704 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1705 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1706 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1707 | int update_ath_type(void); |
| Sinan Divarci |
0:dc5ded118d7c | 1708 | |
| Sinan Divarci |
0:dc5ded118d7c | 1709 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1710 | * @brief Adjust demodulation type |
| Sinan Divarci |
0:dc5ded118d7c | 1711 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1712 | * @param[in] demodulation_type ASK(0x00) or FSK(0x01) |
| Sinan Divarci |
0:dc5ded118d7c | 1713 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1714 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1715 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1716 | * @description Adjusts the Register settings of the Receiver according to the modulation type. |
| Sinan Divarci |
0:dc5ded118d7c | 1717 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1718 | int adjust_demodulation(ask_fsk_sel_t demodulation_type); |
| Sinan Divarci |
0:dc5ded118d7c | 1719 | |
| Sinan Divarci |
0:dc5ded118d7c | 1720 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1721 | * @brief Adjust encoding type |
| Sinan Divarci |
0:dc5ded118d7c | 1722 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1723 | * @param[in] encoding_type Manchester(0x00) or NRZ(0x01) |
| Sinan Divarci |
0:dc5ded118d7c | 1724 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1725 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1726 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1727 | * @description Adjusts the register settings of the Receiver according to the encoding type. |
| Sinan Divarci |
0:dc5ded118d7c | 1728 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1729 | int adjust_encoding_type(encoding_t encoding_type); |
| Sinan Divarci |
0:dc5ded118d7c | 1730 | |
| Sinan Divarci |
0:dc5ded118d7c | 1731 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1732 | * @brief Gets encoding type |
| Sinan Divarci |
0:dc5ded118d7c | 1733 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1734 | * @returns encoding type |
| Sinan Divarci |
0:dc5ded118d7c | 1735 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1736 | * @description |
| Sinan Divarci |
0:dc5ded118d7c | 1737 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1738 | int get_encoding_type(); |
| Sinan Divarci |
0:dc5ded118d7c | 1739 | |
| Sinan Divarci |
0:dc5ded118d7c | 1740 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1741 | * @brief Adjust receiver bandwidth(chf_sel). Used only in ASK mode. |
| Sinan Divarci |
0:dc5ded118d7c | 1742 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1743 | * @param[in] receiver_bw Receiver bandwidth(kHz) |
| Sinan Divarci |
0:dc5ded118d7c | 1744 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1745 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1746 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1747 | * @description Adjusts the register settings of the receiver according to the desired bandwidth. |
| Sinan Divarci |
0:dc5ded118d7c | 1748 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1749 | int adjust_receiver_bandwidth(int receiver_bw); |
| Sinan Divarci |
0:dc5ded118d7c | 1750 | |
| Sinan Divarci |
0:dc5ded118d7c | 1751 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1752 | * @brief Adjust intermediate frequency selection(if_sel). Used only in ASK mode. |
| Sinan Divarci |
0:dc5ded118d7c | 1753 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1754 | * @param[in] if_sel intermediate frequency. 400kHz(0x00) or 200kHz(0x01). |
| Sinan Divarci |
0:dc5ded118d7c | 1755 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1756 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1757 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1758 | * @description Adjusts the register settings of the receiver according to the desired intermediate frequency. |
| Sinan Divarci |
0:dc5ded118d7c | 1759 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1760 | int adjust_if_sel(if_sel_t if_sel); |
| Sinan Divarci |
0:dc5ded118d7c | 1761 | |
| Sinan Divarci |
0:dc5ded118d7c | 1762 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1763 | * @brief Adjust receiver bandwidth(chf_sel). Used only in FSK mode. |
| Sinan Divarci |
0:dc5ded118d7c | 1764 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1765 | * @param[in] receiver_bw Receiver bandwidth(kHz). |
| Sinan Divarci |
0:dc5ded118d7c | 1766 | * @param[in] deviation FSK deviation(kHz). |
| Sinan Divarci |
0:dc5ded118d7c | 1767 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1768 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1769 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1770 | * @description Adjusts the register settings of the receiver according to the desired bandwidth and FSK deviation. |
| Sinan Divarci |
0:dc5ded118d7c | 1771 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1772 | int adjust_receiver_bandwidth(int receiver_bw, float deviation); |
| Sinan Divarci |
0:dc5ded118d7c | 1773 | |
| Sinan Divarci |
0:dc5ded118d7c | 1774 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1775 | * @brief Adjust intermediate frequency selection(if_sel). Used only in FSK mode. |
| Sinan Divarci |
0:dc5ded118d7c | 1776 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1777 | * @param[in] if_sel intermediate frequency. 400kHz(0x00) or 200kHz(0x01). |
| Sinan Divarci |
0:dc5ded118d7c | 1778 | * @param[in] deviation FSK deviation(kHz). |
| Sinan Divarci |
0:dc5ded118d7c | 1779 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1780 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1781 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1782 | * @description Adjusts the register settings of the receiver according to the desired intermediate frequency and FSK deviation. |
| Sinan Divarci |
0:dc5ded118d7c | 1783 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1784 | int adjust_if_sel(if_sel_t if_sel, float deviation); |
| Sinan Divarci |
0:dc5ded118d7c | 1785 | |
| Sinan Divarci |
0:dc5ded118d7c | 1786 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1787 | * @brief Adjust Demodulator Parameter #2 according to desired FSK deviation. |
| Sinan Divarci |
0:dc5ded118d7c | 1788 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1789 | * @param[in] deviation FSK deviation(kHz). |
| Sinan Divarci |
0:dc5ded118d7c | 1790 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1791 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1792 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1793 | * @description Adjusts the register settings of the receiver according to the desired FSK deviation. |
| Sinan Divarci |
0:dc5ded118d7c | 1794 | * There are a total of 28 options for configuring the FSK demodulator. Please refer to the Demodulator |
| Sinan Divarci |
0:dc5ded118d7c | 1795 | * Configuration section in the datasheet |
| Sinan Divarci |
0:dc5ded118d7c | 1796 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1797 | int adjust_fsk_deviation(float deviation); |
| Sinan Divarci |
0:dc5ded118d7c | 1798 | |
| Sinan Divarci |
0:dc5ded118d7c | 1799 | /** |
| Sinan Divarci |
0:dc5ded118d7c | 1800 | * @brief Adjust Receiver's preamble detector |
| Sinan Divarci |
0:dc5ded118d7c | 1801 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1802 | * @param[in] preamble Preamble bit pattern. |
| Sinan Divarci |
0:dc5ded118d7c | 1803 | * @param[in] preamb_len pattern length. |
| Sinan Divarci |
0:dc5ded118d7c | 1804 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1805 | * @returns 0 on success, negative error code on failure. |
| Sinan Divarci |
0:dc5ded118d7c | 1806 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1807 | * @description Adjusts the receiver's preamble detector to be used with the self-polling operation. The preamble must be Manchester encoded. |
| Sinan Divarci |
0:dc5ded118d7c | 1808 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1809 | int adjust_preamble(int preamble, uint8_t preamb_len); |
| Sinan Divarci |
0:dc5ded118d7c | 1810 | }; |
| Sinan Divarci |
0:dc5ded118d7c | 1811 | |
| Sinan Divarci |
0:dc5ded118d7c | 1812 | /** MAX41470 Device Class |
| Sinan Divarci |
0:dc5ded118d7c | 1813 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1814 | * Hold configurations for the MAX41470 |
| Sinan Divarci |
0:dc5ded118d7c | 1815 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1816 | class MAX41470 : public MAX4147X <max41470_reg_map_t> |
| Sinan Divarci |
0:dc5ded118d7c | 1817 | { |
| Sinan Divarci |
0:dc5ded118d7c | 1818 | max41470_reg_map_t regmap; |
| Sinan Divarci |
0:dc5ded118d7c | 1819 | public: |
| Sinan Divarci |
0:dc5ded118d7c | 1820 | MAX41470(SPI *spi, DigitalOut *cs, DigitalOut *powerPin, DigitalIn *dataPin) : MAX4147X<max41470_reg_map_t>(®map, spi, cs, powerPin, dataPin) {} |
| Sinan Divarci |
0:dc5ded118d7c | 1821 | |
| Sinan Divarci |
0:dc5ded118d7c | 1822 | MAX41470(SPI *spi, DigitalOut *powerPin, DigitalIn *dataPin) : MAX4147X<max41470_reg_map_t>(®map, spi, powerPin, dataPin) {} |
| Sinan Divarci |
0:dc5ded118d7c | 1823 | }; |
| Sinan Divarci |
0:dc5ded118d7c | 1824 | |
| Sinan Divarci |
0:dc5ded118d7c | 1825 | /** MAX41473 Device Class |
| Sinan Divarci |
0:dc5ded118d7c | 1826 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1827 | * Hold configurations for the MAX41473 |
| Sinan Divarci |
0:dc5ded118d7c | 1828 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1829 | class MAX41473 : public MAX4147X <max41473_4_reg_map_t> |
| Sinan Divarci |
0:dc5ded118d7c | 1830 | { |
| Sinan Divarci |
0:dc5ded118d7c | 1831 | max41473_4_reg_map_t regmap; |
| Sinan Divarci |
0:dc5ded118d7c | 1832 | public: |
| Sinan Divarci |
0:dc5ded118d7c | 1833 | MAX41473(I2C *i2c, DigitalOut *powerPin, DigitalIn *dataPin) : MAX4147X<max41473_4_reg_map_t>(®map, i2c, powerPin, dataPin) {} |
| Sinan Divarci |
0:dc5ded118d7c | 1834 | }; |
| Sinan Divarci |
0:dc5ded118d7c | 1835 | |
| Sinan Divarci |
0:dc5ded118d7c | 1836 | /** MAX41474 Device Class |
| Sinan Divarci |
0:dc5ded118d7c | 1837 | * |
| Sinan Divarci |
0:dc5ded118d7c | 1838 | * Hold configurations for the MAX41474 |
| Sinan Divarci |
0:dc5ded118d7c | 1839 | */ |
| Sinan Divarci |
0:dc5ded118d7c | 1840 | class MAX41474 : public MAX41473 |
| Sinan Divarci |
0:dc5ded118d7c | 1841 | { |
| Sinan Divarci |
0:dc5ded118d7c | 1842 | public: |
| Sinan Divarci |
0:dc5ded118d7c | 1843 | MAX41474(I2C *i2c, DigitalOut *powerPin, DigitalIn *dataPin) : MAX41473(i2c, powerPin, dataPin) {} |
| Sinan Divarci |
0:dc5ded118d7c | 1844 | }; |
| Sinan Divarci |
0:dc5ded118d7c | 1845 | |
| Sinan Divarci |
0:dc5ded118d7c | 1846 | #endif /* MAX4147X_MAX4147X_H_ */ |
