00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00041 #include "pic_utils.h"
00042 #include "i2c.h"
00043
00044
00045
00046 #define AR1000_DEV_ADDR 0b00100000
00047
00048
00049
00050
00051
00052 #define AR1000_R0 0
00053
00054
00055 #define R0_INT_OSC_EN 15
00056
00057
00058
00059 #define R0_ENABLE 0
00060
00061
00062
00063
00064 #define AR1000_R1 1
00065
00067 #define R1_RDS_ENABLE 13
00068
00069 #define R1_RDS_INT_ENABLE 6
00070
00071 #define R1_STC_INT_ENABLE 5
00072
00073 #define R1_DEEMP_SETTING 4
00074
00075 #define R1_FORCE_MONO 3
00076
00077 #define R1_SOFT_MUTE_ENABLE 2
00078
00079 #define R1_HARD_MUTE_ENABLE 1
00080
00081
00082
00083
00084
00085 #define AR1000_R2 2
00086
00088 #define R2_TUNE_ENABLE 9
00089
00090
00091
00092 #define R2_CHAN_8 8
00093 #define R2_CHAN_7 7
00094 #define R2_CHAN_6 6
00095 #define R2_CHAN_5 5
00096 #define R2_CHAN_4 4
00097 #define R2_CHAN_3 3
00098 #define R2_CHAN_2 2
00099 #define R2_CHAN_1 1
00100 #define R2_CHAN_0 0
00101
00102
00103
00104
00105
00106 #define AR1000_R3 3
00107
00109 #define R3_SEEK_UP 15
00110
00111 #define R3_SEEK_ENABLE 14
00112
00113 #define R3_SEEK_CHANNEL_SPACING 13
00114
00115 #define R3_BAND_1 12
00116
00117 #define R3_BAND_0 11
00118
00119
00120 #define R3_VOL_3 10
00121 #define R3_VOL_2 9
00122 #define R3_VOL_1 8
00123 #define R3_VOL_0 7
00124
00125
00126 #define R3_SEEKTH_6 6
00127 #define R3_SEEKTH_5 5
00128 #define R3_SEEKTH_4 4
00129 #define R3_SEEKTH_3 3
00130 #define R3_SEEKTH_2 2
00131 #define R3_SEEKTH_1 1
00132 #define R3_SEEKTH_0 0
00133
00134
00135
00136
00137
00138 #define AR1000_R10 10
00139
00141 #define R10_SEEK_WRAP_ENABLE 3
00142
00143
00144
00145 #define AR1000_R11 11
00146
00148 #define R11_AFC_INJECTION_CONTROL 15
00149 #define R11_HILO_SIDE 15
00150
00151 #define R11_AFC_HIGH_SIDE_b1 2
00152 #define R11_AFC_HIGH_SIDE_b2 0
00153
00154
00155
00156
00157
00160 #define AR1000_R13 13
00161
00163 #define R13_GPIO3_1 5
00164 #define R13_GPIO3_0 4
00165
00167 #define R13_GPIO2_1 3
00168 #define R13_GPIO2_0 2
00169
00171 #define R13_GPIO1_1 1
00172 #define R13_GPIO1_0 0
00173
00174
00175
00176
00177 #define AR1000_R14 14
00178
00180 #define R14_VOL2_3 15
00181
00182 #define R14_VOL2_2 14
00183
00184 #define R14_VOL2_1 13
00185
00186 #define R14_VOL2_0 12
00187
00188
00189
00190 #define AR1000_R15 15
00191
00193 #define R15_RDS_STA_EN 5
00194
00196 #define R15_RDS_MECC_1 4
00197 #define R15_RDS_MECC_0 3
00198
00202 #define R15_RDS_CTRL 0
00203
00204
00205
00206
00207
00208
00209
00210
00211 #define AR1000_RSSI 18
00212
00213
00214
00215
00216
00217
00218
00219
00220 #define AR1000_STATUS 19
00221
00223 #define STATUS_CHAN_8 15
00224
00225 #define STATUS_CHAN_7 14
00226
00227 #define STATUS_CHAN_6 13
00228
00229 #define STATUS_CHAN_5 12
00230
00231 #define STATUS_CHAN_4 11
00232
00233 #define STATUS_CHAN_3 10
00234
00235 #define STATUS_CHAN_2 9
00236
00237 #define STATUS_CHAN_1 8
00238
00239 #define STATUS_CHAN_0 7
00240
00242 #define STATUS_RDS_DATA_READY 6
00243
00245 #define STATUS_SEEK_TUNE_COMPLETE 5
00246
00248 #define STATUS_SEEK_FAIL 4
00249
00251 #define STATUS_STEREO 3
00252
00254 #define STATUS_BIT_2 2
00255
00256
00257
00258 #define AR1000_RBS 20
00259
00260
00261
00262 #define AR1000_RDS_1 21
00263
00264
00265
00266 #define AR1000_RDS_2 22
00267
00268
00269
00270 #define AR1000_RDS_3 23
00271
00272
00273
00274 #define AR1000_RDS_4 24
00275
00276
00277
00278 #define AR1000_RDS_5 25
00279
00280
00281
00282 #define AR1000_RDS_6 26
00283
00284
00285
00286 #define AR1000_DEV_ID 27
00287
00289 #define DEV_ID_VERSION_3 15
00290
00291 #define DEV_ID_VERSION_2 14
00292
00293 #define DEV_ID_VERSION_1 13
00294
00295 #define DEV_ID_VERSION_0 12
00296
00298 #define DEV_ID_MFID_11 11
00299
00300 #define DEV_ID_MFID_10 10
00301
00302 #define DEV_ID_MFID_9 9
00303
00304 #define DEV_ID_MFID_8 8
00305
00306 #define DEV_ID_MFID_7 7
00307
00308 #define DEV_ID_MFID_6 6
00309
00310 #define DEV_ID_MFID_5 5
00311
00312 #define DEV_ID_MFID_4 4
00313
00314 #define DEV_ID_MFID_3 3
00315
00316 #define DEV_ID_MFID_2 2
00317
00318 #define DEV_ID_MFID_1 1
00319
00320 #define DEV_ID_MFID_0 0
00321
00322
00323
00325 #define AR1000_CHIP_ID 28
00326
00327
00334 #define ar1000_setup() ar1000_setup_io()
00335
00340 void ar1000_setup_io();
00341 void ar1000_init();
00342 void ar1000_set_register(uns8 reg, uns8 data);
00343 uns8 ar1000_get_register(uns8 reg);
00344 void ar1000_write_registers();
00345 void ar1000_read_registers();
00346 uns16 ar1000_read_register(uns8 reg);
00347 void ar1000_write_register(uns8 reg, uns16 data);
00348 void ar1000_tune(uns16 frequency);
00349 void ar1000_set_seek_threshold(uns8 new_seek_threshold);
00350 void ar1000_seek(uns16 frequency, bit seek_up);
00351 void ar1000_seek2();
00352 void ar1000_test();
00353 void ar1000_seek_more();
00354 void ar1000_set_volume(uns8 volume) ;