#define uchar unsigned char #define ulong unsigned long #define uint unsigned int #define KTAMw_address 0x6A #define KTAMr_address 0x6B #define AMOLDSEEK //#define FMOLDSEEK //#define AMNEWSEEK //#define FMNEWSEEK //#define AM_SEEK_MODE2 //#define FM_SEEK_MODE2 //#define AM_SEEK_MODE3 #define FM_SEEK_MODE3 #define LOWFM_MODE #define FMSMUTE //to enable FM softmute //#define AMSMUTE //to enable AM softmute #define GOODCHANNEL //#define AUDIO_LEVEL_BOOST //#define FM_HIGHLEVER_RF_SIGAL_INPUT #define KT0923 #define X32P768K //32.768KHz crystal //#define R32P768K //32.768KHz reference clock //#define X38K //38KHz crystal //#define R38K //38KHz reference clock //#define R7P6M //7.6MHz reference clock //#define R12M //12MHz reference clock //#define R13M //13MHz reference clock //#define R24M //24MHz reference clock //#define R26M //26MHz reference clock #define FM_100KHz_STEP 10 #define FM_1MHz_STEP 100 #define AM_1KHz_STEP 1 #define AM_2KHz_STEP 2 #define AM_9KHz_STEP 9 #define AM_100KHz_STEP 100 #define FM_SEEK_UP_LIMIT 10800 #define FM_SEEK_DOWN_LIMIT 8600 #define FM_BAND_TOP 10900 #ifdef LOWFM_MODE #define FM_BAND_BOTTOM 3200 #else #define FM_BAND_BOTTOM 6400 #endif #define MW_SEEK_UP_LIMIT 1710 #define MW_SEEK_DOWN_LIMIT 504 #define MW_BAND_TOP 1710 #define MW_BAND_BOTTOM 504 #define FM_AFCTH_PREV 20 //Range from 0 to 127 #define FM_AFCTH 10 //Range from 0 to 127 #define FM_AFCTH_NEXT 20 //Range from 0 to 127 #define FM_SNR_TH 0x10 #define FM_RSSI_TH -100 #define MW_AFCTH_PREV 6 //Range from 128 to 127 #define MW_AFCTH 4 //Range from 128 to 127 #define MW_AFCTH_NEXT 6 //Range from 128 to 127 #define AM_SNR_TH 0x28 #define AM_RSSI_TH -90 #define BAND_NUM 2 enum Band_Mode {FM_MODE,MW_MODE}; struct Str_Band { enum Band_Mode Band; // band uint Band_Top; //tune, threshold of top uint Band_Bottom; //tune, threshold of top uint Seek_Up_Limit; //seek, threshold of up_limit uint Seek_Down_Limit; //seek, threshold of down limit uchar Min_Step; // uchar Max_Step; // uchar Seek_Step; // SeekFromCurrentCh uchar ValidStation_Step; // ValidStation uchar AFCTH_Prev; // uchar AFCTH; // uchar AFCTH_Next; // }; #define INIT_FAIL_TH 3 #define SEEKUP 1 #define SEEKDOWN 0 uchar KT_AMFM_PreInit(void); uchar KT_AMFM_Init(void); uchar KT_AMFM_Standby(void); uchar KT_AMFM_WakeUp(void); uchar KT_AMFM_VolumeSet(uchar cVol); uchar KT_AMFM_Mute(void); uchar KT_AMFM_UnMute(void); uchar KT_AMFM_SetMode(uchar cAMFM_Mode); uchar KT_AMFM_SetLineIn(uchar cLineNum); uchar KT_FM_Tune(uint iFrequency); uchar KT_AM_Tune(uint iFrequency); uint KT_FM_GetFreq(void); uint KT_AM_GetFreq(void); uchar KT_FM_ReadRSSI(char *RSSI); uchar KT_AM_ReadRSSI(char *RSSI); char KT_FM_GetAFC(void); char KT_AM_GetAFC(void); uchar KT_FM_GetSNR(void); uchar KT_AM_GetSNR(void); uchar KT_AMFM_SeekFromCurrentCh(bit bSeekDir, uint *Frequency); // seekDir: 0-->seek down 1-->seek up uchar KT_FM_ValidStation(uint iFrequency); uchar KT_AM_ValidStation(uint iFrequency); void KT_FM_ST_Indicator_Initial(void); uchar KT_FM_GetST(void); uchar KT_AMFM_SetBW(uchar cFlt_Sel); bit KT_AMFM_SetBass(uchar cBass); bit KT_AMFM_Tuning_Indicator(void); void KT_AMFM_Softmute_Initial(void); void KT_FM_Tuning_Indicator_Initial(void); void KT_AM_Tuning_Indicator_Initial(void); #ifdef GOODCHANNEL void KT_FM_Good_Channel(void); void KT_AM_Good_Channel(void); #endif void KT_Bus_Write(uchar Register_Address, uint Word_Data); uint KT_Bus_Read(uchar Register_Address); #define CHFLT_NOTCH 1 //0: 14kHz corner frequency, 1: 800Hz corner frequency #define BP_180K 0 //0:enable 180kHz notch filter 1: bypass 180kHz notch filter #define EN_150K 0 //0:bypass 150kHz notch filter 1: enable 150KHz notch filter #define BP_190K 0 //0:enable 190kHz notch filter 1: bypass 190kHz notch filter #define AU_GAIN 2 //0:3dB, 1:6dB, 2:-3dB, 3:0dB #define IFPGA 2 //0:0dB, 1:6dB, 2:9dB, 3:12dB #define AMAFCD 0 //0: enable AM AFC loop, 1: disable AM AFC loop #define FMAFCD 0 //0: enable FM AFC loop, 1: disable FM AFC loop #define FM_AFCRF 1 //1:AFC feedback to RF, 0:AFC feedback to DSP #define DBLND 0 //0: blend enable, 1:blend disable #define QUICK_BLEND 1 //0: slow blend, 1: quick blend //Interference Frequency// #define FMBADFREQ0 1806 //90.3MHz #define FMDELTAN0 6 #define FMBADFREQ1 1934 //96.7MHz #define FMDELTAN1 1 #define FMBADFREQ2 1970 //98.5MHz #define FMDELTAN2 1 #define FMBADFREQ3 1984 //99.2MHz #define FMDELTAN3 1 #define FMBADFREQ4 2044 //102.2MHz #define FMDELTAN4 5 #define FMBADFREQ5 2046 //102.3MHz #define FMDELTAN5 6 #define FMBADFREQ6 2048 //102.4MHz #define FMDELTAN6 7 #define FMBADFREQ7 2104 //105.2MHz #define FMDELTAN7 7 #define FMDELTAN 0 /* #define FMBADFREQ0 1806 //90.3MHz #define FMDELTAN0 6 #define FMBADFREQ1 1778 //88.9MHz #define FMDELTAN1 7 //#define FMBADFREQ1 1888 //94.4MHz //#define FMDELTAN1 7 #define FMBADFREQ2 1970 //98.5MHz #define FMDELTAN2 5 #define FMBADFREQ3 2052 //102.6MHz #define FMDELTAN3 3 #define FMBADFREQ4 2134 //106.7MHz #define FMDELTAN4 6 #define FMBADFREQ5 1724 //86.2MHz #define FMDELTAN5 3 //#define FMBADFREQ5 1724 //86.2MHz //#define FMDELTAN5 3 #define FMBADFREQ6 1934 //96.7 #define FMDELTAN6 5 #define FMBADFREQ7 2046 //102.3 #define FMDELTAN7 2 #define FMDELTAN 0 */ #define AMBADFREQ0 1368 //1.368MHz #define AMDELTAN0 3 #define AMBADFREQ1 684 //684kHz #define AMDELTAN1 0 #define AMBADFREQ2 909 //909kHz #define AMDELTAN2 3 #define AMBADFREQ3 0 // #define AMDELTAN3 0 #define AMBADFREQ4 0 // #define AMDELTAN4 0 #define AMBADFREQ5 0 #define AMDELTAN5 0 #define AMBADFREQ6 0 #define AMDELTAN6 0 #define AMBADFREQ7 0 #define AMDELTAN7 0 //Interference Frequency end// //ST Indicator Configuration// #define FM_ST_DLY 2 //0:50ms, 1:100ms, 2:150ms, 3:200ms #define FMST_SEN_HIGHTH 3 //0:-102, 1:-99, 2:-96, 3:-93 #define FMST_SEN_LOWTH 3 //0:-105, 1:-102, 2:-99, 3:-96 #define FMST_IND_HIGHTH 3 //0:5, 1:6, 2:7, 3:8 #define FMST_IND_LOWTH 0 //0:1, 1:2, 2:3, 3:4 //ST Indicator Configuration end// //FM Tuning Indicator Configuration// #define TUNE_VALID_WIN 0 //0:50ms, 1:75ms, 2:100ms,3:125ms, 4 :150ms, 5:200ms, 6:300ms, 7:400ms #define TUNE_VALID_DLY 1 //0:25ms 1:50ms 2:75ms 3:100ms 4 :125ms 5:150ms 6:200ms 7:300ms #define FM_TUNE_SNR_HIGHTH 0 //0:18, 1:21, 2:24, 3:27, 4:30, 5:33, 6:36, 7:39 #define FM_TUNE_SNR_LOWTH 0 //0:15, 1:18, 2:21, 3:24, 4:27, 5:30, 6:33, 7:36 #define FM_TUNE_AFC_HIGHTH 7 //0:6, 1:9, 2:12, 3:15, 4:18, 5:21, 6:24, 7:27 #define FM_TUNE_AFC_LOWTH 2 //0:3, 1:6, 2:9, 3:12, 4:15, 5:18, 6:21, 7:24 #define FM_TUNE_RSSI_HIGHTH 0 //0:-103dBm 1:-100dBm 2:-97dBm 3:-94dBm 4:-91dBm 5:-88dBm 6:-85dBm 7:-82dBm #define FM_TUNE_RSSI_LOWTH 0 //0:-106dBm 1:-103dBm 2:-100dBm 3:-97dBm 4:-94dBm 5:-91dBm 6:-88dBm 7:-85dBm //FM Tuning Indicator Configuration end// //AM Tuning Indicator// #define AM_TUNE_SNR_HIGHTH 0x18 //Range from 0 to 127 #define AM_TUNE_SNR_LOWTH 0x8 //Range from 0 to 127 #define AM_TUNE_AFC_HIGHTH 2 //0:4, 1:14, 2:24, 3:34, 4:44, 5:54, 6:64, 7:74 #define AM_TUNE_AFC_LOWTH 7 //0:0, 1:1, 2:2, 3:3, 4:4, 5:5, 6:6, 7:7 #define AM_TUNE_RSSI_HIGHTH 20 //Range from 90 to 127 #define AM_TUNE_RSSI_LOWTH 20 //Range from 90 to 127 //AM Tuning Indicator end// //Softmute// #define MUTE_TYPE 2 //0:don't mute, 1: mute within 15ms, 2:mute during tune FSM #define TUNE_DLY 0 //0:0, 1:25ms, 2:50ms, 3:75ms #define SMUTE_RST_DIS 0 // #define SMUTE_GAIN 7 // #define SMUTE_WIN 0 //0:25ms, 1:50ms, 2:75ms, 3:100ms #define SMUTER 3 //0:longest time, 1:long time, 2:short time, 3:shortest time #define SMMD 1 //1:SNR mode, 0:RSSI mode #define VOLUMET 7 //0:0, 1:0.002, 2:0.004, 3:0.01, 4:0.025, 5:0.063, 6:0.15, 7:0.4 #define FM_SFTMUTE_OFST 7//0:6, 1:8, 2:10, 3:12, 4:14, 5:16, 6:18, 7:20 #define FM_SFTMUTE_HIGHTH 0//RSSI MODE: 0:-103, 1:-100, 2:-97, 3:-94, 4:-91, 5:-88, 6:-85, 7:-82 //SNR MODE:0:18, 2:21, 3:24, 4:27, 5:30, 6:33, 7:36 #define FM_SFTMUTE_LOWTH 0 //RSSI MODE: 0:-106, 1:-103, 2:-100, 3:-97, 4:-94, 5:-91, 6:-88, 7:-85 //SNR MODE:0:15, 2:18, 3:21, 4:24, 5:27, 6:30, 7:33 #define AM_SFTMUTE_OFST 7 //0:6, 1:8, 2:10, 3:12, 4:14, 5:16, 6:18, 7:20 #define AM_SFTMUTE_HIGHTH 0x18 //between 0~127 #define AM_SFTMUTE_LOWTH 0x8 //between 0~127 //Softmute end// #define AMIFPGA 5 //0:11.8dB, 1:10.6dB, 2:9.3dB, 3:7.7dB, 4:5.9dB, 5:3.5dB, 6:-5.1dB, 7:NA