Go to the documentation of this file.
35 #ifndef RADIOSTATION_H
36 #define RADIOSTATION_H
38 #include "drv_digital_out.h"
39 #include "drv_digital_in.h"
40 #include "drv_i2c_master.h"
52 #define RADIOSTATION_MAP_MIKROBUS( cfg, mikrobus ) \
53 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
54 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
55 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
56 cfg.sen = MIKROBUS( mikrobus, MIKROBUS_CS ); \
57 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
64 #define RADIOSTATION_RETVAL uint8_t
66 #define RADIOSTATION_OK 0x00
67 #define RADIOSTATION_INIT_ERROR 0xFF
74 #define RADIOSTATION_SLAVE_ADDR0 0x11 // If SEN = 0
75 #define RADIOSTATION_SLAVE_ADDR1 0x63 // If SEN = 1
82 #define RADIOSTATION_CTS 0x80
83 #define RADIOSTATION_ERR 0x40
84 #define RADIOSTATION_RDSINT 0x04
85 #define RADIOSTATION_ASQINT 0x02
86 #define RADIOSTATION_STCINT 0x01
95 #define RADIOSTATION_CTS_INTERRUPT_ENABLE 0x04
96 #define RADIOSTATION_GPO2_OUTPUT_ENABLE 0x02
97 #define RADIOSTATION_PATCH_ENABLE 0x01
100 #define RADIOSTATION_MIN_TUNE_FREQ 7600
101 #define RADIOSTATION_MAX_TUNE_FREQ 10800
102 #define RADIOSTATION_MIN_STEP 5
109 #define RADIOSTATION_PROP_GPO_IEN 0x0001
110 #define RADIOSTATION_GPO_IEN_ASQREP 0x0200
111 #define RADIOSTATION_GPO_IEN_STCREP 0x0100
112 #define RADIOSTATION_GPO_IEN_CTSIEN 0x0080
113 #define RADIOSTATION_GPO_IEN_ERRIEN 0x0040
114 #define RADIOSTATION_GPO_IEN_RDSIEN 0x0004
115 #define RADIOSTATION_GPO_IEN_ASQIEN 0x0002
116 #define RADIOSTATION_GPO_IEN_STCIENP 0x0001
118 #define RADIOSTATION_PROP_REFCLK_FREQ 0x0201 // Value Range: 31130 to 34406
120 #define RADIOSTATION_PROP_REFCLK_PRESCALE 0x0202 // Value Range: 1 to 4095
121 #define RADIOSTATION_REFCLK_PRESCALE_RCLK 0x0000 & 0x1000
122 #define RADIOSTATION_REFCLK_PRESCALE_DCLK 0x1000 & 0x1000
124 #define RADIOSTATION_PROP_TX_COMPONENT_ENABLE 0x2100
125 #define RADIOSTATION_TX_COMPONENT_ENABLE_RDS 0x0004
126 #define RADIOSTATION_TX_COMPONENT_ENABLE_LEFT_MINUS_RIGHT 0x0002
127 #define RADIOSTATION_TX_COMPONENT_ENABLE_PILOT_TONE 0x0001
129 #define RADIOSTATION_PROP_TX_AUDIO_DEVIATION 0x2101 // Value Range: 0 to 9000
131 #define RADIOSTATION_PROP_TX_PILOT_DEVIATION 0x2102 // Value Range: 0 to 9000
133 #define RADIOSTATION_PROP_TX_LINE_INPUT_LEVEL 0x2104
134 #define RADIOSTATION_TX_LINE_INPUT_LEVEL_LIATTEN_1 0x0000 & 0x3000
135 #define RADIOSTATION_TX_LINE_INPUT_LEVEL_LIATTEN_2 0x1000 & 0x3000
136 #define RADIOSTATION_TX_LINE_INPUT_LEVEL_LIATTEN_3 0x2000 & 0x3000
137 #define RADIOSTATION_TX_LINE_INPUT_LEVEL_LIATTEN_4 0x3000 & 0x3000
138 #define RADIOSTATION_TX_LINE_INPUT_LEVEL_MAX_LILEVEL 636 & 0x03FF
140 #define RADIOSTATION_PROP_TX_LINE_INPUT_MUTE 0x2105
141 #define RADIOSTATION_TX_LINE_INPUT_MUTE_R 0x0001
142 #define RADIOSTATION_TX_LINE_INPUT_MUTE_L 0x0002
144 #define RADIOSTATION_PROP_TX_PREEMPHASIS 0x2106
145 #define RADIOSTATION_TX_PREEMPHASIS_75 0x0000
146 #define RADIOSTATION_TX_PREEMPHASIS_50 0x0001
147 #define RADIOSTATION_TX_PREEMPHASIS_DISABLED 0x0002
149 #define RADIOSTATION_PROP_TX_PILOT_FREQUENCY 0x2107 // Value Range: 0 to 19000
151 #define RADIOSTATION_PROP_TX_ACOMP_ENABLE 0x2200
152 #define RADIOSTATION_TX_ACOMP_ENABLE_LIMITEN 0x0002
153 #define RADIOSTATION_TX_ACOMP_ENABLE_ACEN 0x0001
155 #define RADIOSTATION_PROP_TX_ACOMP_THRESHOLD 0x2201 // Value Range: �40 to 0
157 #define RADIOSTATION_PROP_TX_ACOMP_ATTACK_TIME 0x2202
158 #define RADIOSTATION_TX_ACOMP_ATTACK_TIME_0_5_MS 0x0000
159 #define RADIOSTATION_TX_ACOMP_ATTACK_TIME_1_0_MS 0x0001
160 #define RADIOSTATION_TX_ACOMP_ATTACK_TIME_1_5_MS 0x0002
161 #define RADIOSTATION_TX_ACOMP_ATTACK_TIME_2_0_MS 0x0003
162 #define RADIOSTATION_TX_ACOMP_ATTACK_TIME_2_5_MS 0x0004
163 #define RADIOSTATION_TX_ACOMP_ATTACK_TIME_3_0_MS 0x0005
164 #define RADIOSTATION_TX_ACOMP_ATTACK_TIME_3_5_MS 0x0006
165 #define RADIOSTATION_TX_ACOMP_ATTACK_TIME_4_0_MS 0x0007
166 #define RADIOSTATION_TX_ACOMP_ATTACK_TIME_4_5_MS 0x0008
167 #define RADIOSTATION_TX_ACOMP_ATTACK_TIME_5_0_MS 0x0009
169 #define RADIOSTATION_PROP_TX_ACOMP_RELEASE_TIME 0x2203
170 #define RADIOSTATION_TX_ACOMP_RELEASE_TIME_100_MS 0x0000
171 #define RADIOSTATION_TX_ACOMP_RELEASE_TIME_200_MS 0x0001
172 #define RADIOSTATION_TX_ACOMP_RELEASE_TIME_350_MS 0x0002
173 #define RADIOSTATION_TX_ACOMP_RELEASE_TIME_525_MS 0x0003
174 #define RADIOSTATION_TX_ACOMP_RELEASE_TIME_1000_MS 0x0004
176 #define RADIOSTATION_PROP_TX_ACOMP_GAIN 0x2204 // Value Range: 0 to 20
178 #define RADIOSTATION_PROP_TX_LIMITER_RELEASE_TIME 0x2205 // Value Range: 5 to 2000
180 #define RADIOSTATION_PROP_TX_ASQ_INTERRUPT_SELECT 0x2300
181 #define RADIOSTATION_TX_ASQ_INTERRUPT_OVERMODIEN 0x0004
182 #define RADIOSTATION_TX_ASQ_INTERRUPT_IALHIEN 0x0002
183 #define RADIOSTATION_TX_ASQ_INTERRUPT_IALLIEN 0x0001
185 #define RADIOSTATION_PROP_TX_ASQ_LEVEL_LOW 0x2301 // Value Range: -70 to 0
187 #define RADIOSTATION_PROP_TX_ASQ_LEVEL_HIGH 0x2303 // Value Range: -70 to 0
189 #define RADIOSTATION_PROP_TX_ASQ_DURATION_LOW 0x2302
191 #define RADIOSTATION_PROP_TX_ASQ_DURATION_HIGH 0x2304
521 #endif // _RADIOSTATION_H_
uint8_t slave_address
Definition: radiostation.h:221
uint8_t * params
Definition: radiostation.h:235
Click ctx object definition.
Definition: radiostation.h:205
uint8_t status
Definition: radiostation.h:224
void radiostation_busy_wait_for_stcint(radiostation_t *ctx, radiostation_cmd_t *cmd)
Radio Station Click Busy Wait for STCINT.
bool slave_select
Definition: radiostation.h:261
uint32_t i2c_speed
Definition: radiostation.h:260
Click configuration structure definition.
Definition: radiostation.h:246
uint8_t radiostation_get_int_status(radiostation_t *ctx, radiostation_cmd_t *cmd)
Getting int pin status.
pin_name_t int_pin
Definition: radiostation.h:256
void radiostation_write(radiostation_t *ctx, uint8_t *data_buf, uint8_t len)
Generic write function.
uint8_t radiostation_power_down(radiostation_t *ctx, radiostation_cmd_t *cmd)
Radio Station Click Power Down.
uint8_t params_count
Definition: radiostation.h:236
uint8_t radiostation_get_asq_status(radiostation_t *ctx, radiostation_cmd_t *cmd, uint8_t *ret_vals)
Radio Station Click ASQ Status.
digital_out_t rst
Definition: radiostation.h:208
void radiostation_busy_wait_for_asqint(radiostation_t *ctx, radiostation_cmd_t *cmd)
Radio Station Click Busy Wait for ASQINT.
uint8_t radiostation_get_revision(radiostation_t *ctx, radiostation_cmd_t *cmd, uint8_t *ret_vals)
Radio Station Click Get Revision.
Click send command object definition.
Definition: radiostation.h:232
uint16_t transmit_frequency
Definition: radiostation.h:223
uint8_t radiostation_get_tune_measure(radiostation_t *ctx, radiostation_cmd_t *cmd, uint16_t freq, uint8_t capacitance)
Radio Station Click Get Tuning Measurements.
uint16_t radiostation_get_property(radiostation_t *ctx, radiostation_cmd_t *cmd, uint16_t property_id)
Radio Station Click Get Property.
digital_out_t sen
Definition: radiostation.h:209
digital_in_t int_pin
Definition: radiostation.h:213
pin_name_t rst
Definition: radiostation.h:254
RADIOSTATION_RETVAL radiostation_init(radiostation_t *ctx, radiostation_cfg_t *cfg)
Initialization function.
uint8_t * ret_vals
Definition: radiostation.h:237
uint8_t radiostation_set_tune_power(radiostation_t *ctx, radiostation_cmd_t *cmd, uint8_t voltage, uint8_t capacitance)
Radio Station Click Get Revision.
pin_name_t sda
Definition: radiostation.h:250
uint8_t radiostation_set_tune_frequency(radiostation_t *ctx, radiostation_cmd_t *cmd, uint16_t freq)
Radio Station Click Set Tune Frequency.
uint8_t ret_vals_count
Definition: radiostation.h:238
#define RADIOSTATION_RETVAL
Definition: radiostation.h:64
uint8_t radiostation_power_up_advanced(radiostation_t *ctx, radiostation_cmd_t *cmd, uint8_t config)
Radio Station Click Power Up Advanced.
void radiostation_cfg_setup(radiostation_cfg_t *cfg, bool slave_select)
Config Object Initialization function.
i2c_master_t i2c
Definition: radiostation.h:217
uint8_t radiostation_set_property(radiostation_t *ctx, radiostation_cmd_t *cmd, uint16_t property_id, uint16_t property_value)
Radio Station Click Set Property.
void radiostation_read(radiostation_t *ctx, uint8_t *data_buf, uint8_t len)
Generic read function.
uint8_t radiostation_get_tune_status(radiostation_t *ctx, radiostation_cmd_t *cmd, uint8_t clear_stc_status_bit, uint8_t *ret_vals)
Radio Station Click Get Tune Status.
pin_name_t scl
Definition: radiostation.h:249
void radiostation_default_cfg(radiostation_t *ctx, radiostation_cmd_t *cmd)
Click Default Configuration function.
uint8_t radiostation_power_up(radiostation_t *ctx, radiostation_cmd_t *cmd)
Radio Station Click Power Up.
pin_name_t sen
Definition: radiostation.h:255
uint8_t radiostation_get_revision1(radiostation_t *ctx, uint8_t *ret_vals)
Radio Station Click Set Tune Frequency.
void radiostation_busy_wait_for_rdsint(radiostation_t *ctx, radiostation_cmd_t *cmd)
Radio Station Click Busy Wait for RDSINT.