tcmu30311.h
上传用户:fy98168
上传日期:2015-06-26
资源大小:13771k
文件大小:16k
源码类别:

DVD

开发平台:

C/C++

  1. #ifndef _TCMU30311_H_
  2. #define _TCMU30311_H_
  3. #include "gendef.h"
  4. #include <string.h>
  5. #include "dmd.h"
  6. //#define FALSE 0
  7. //#define TRUE 1
  8. #define NBPARAM       50
  9. #define NBREG   86 // papi 86
  10. #define NBFIELD 188
  11. #define SET 0
  12. #define GET 1
  13. #define NOCHANGE    0
  14. #define END 0
  15. #define ON     1
  16. #define OFF 0
  17. #define UNSIGNED  0
  18. #define SIGNED 1
  19. /*********** Register structure definition ******************************/
  20. typedef enum {NO = 0, YES = 1, AUTO = 2} FLAG_SAM ;  /*version 3p8 */
  21. /*********** Signal structure *************************************/
  22. typedef struct
  23. {
  24. INT32     Frequency ;             /* carrier frequency (in Hz)   */
  25. UINT32 SymbolRate; /* Symbol Rate (in Baud)       */
  26. INT32   QAMSize; /* QAM size (16/32/64/128/256) */
  27. } SIGNAL;
  28. /*********** Register structure *************************************/
  29. typedef struct
  30. {
  31. UINT8     Addr, //Address
  32. Reset, //Default value
  33. Value, //Current value
  34. Store;  //Stored value
  35. char Name[30]; //Name
  36. } REGISTER;
  37. typedef struct
  38. {
  39. INT32 Reg;  //Register index
  40. UINT8      Pos,  //Bit position
  41. Bits,  //Bit width
  42. Type,  //Signed or unsigned
  43. Mask;  //Mask compute with width and position
  44. char Name[30];  //Name
  45. }   FIELD;
  46. // REGISTERS
  47. //
  48. #define EQU_0    0
  49. #define EQU_1    1
  50. #define EQU_3    2
  51. #define EQU_4    3
  52. #define EQU_7    4
  53. #define EQU_8    5
  54. #define INITDEM_0    6
  55. #define INITDEM_1    7
  56. #define INITDEM_2    8
  57. #define INITDEM_3    9
  58. #define INITDEM_4   10
  59. #define INITDEM_5   11
  60. #define DELAGC_0   12
  61. #define DELAGC_1   13
  62. #define DELAGC_2   14
  63. #define DELAGC_3   15
  64. #define DELAGC_4   16
  65. #define DELAGC_5   17
  66. #define DELAGC_6   18
  67. #define DELAGC_7   19
  68. #define DELAGC_8   20
  69. #define WBAGC_0   21
  70. #define WBAGC_1   22
  71. #define WBAGC_2   23
  72. #define WBAGC_3   24
  73. #define WBAGC_4   25
  74. #define WBAGC_5   26
  75. #define WBAGC_6   27
  76. #define WBAGC_9   28
  77. #define WBAGC_10   29
  78. #define WBAGC_11   30
  79. #define STLOOP_2   31
  80. #define STLOOP_3   32
  81. #define STLOOP_5   33
  82. #define STLOOP_6   34
  83. #define STLOOP_7   35
  84. #define STLOOP_8   36
  85. #define STLOOP_9   37
  86. #define STLOOP_10   38
  87. #define STLOOP_11   39
  88. #define CRL_0   40
  89. #define CRL_1   41
  90. #define CRL_2   42
  91. #define CRL_3   43
  92. #define CRL_4   44
  93. #define CRL_5   45
  94. #define CRL_6   46
  95. #define CRL_7   47
  96. #define CRL_8   48
  97. #define CRL_9    49
  98. #define CRL_10   50
  99. #define CRL_11    51
  100. #define PMFAGC_0   52
  101. #define PMFAGC_1       53
  102. #define PMFAGC_2       54
  103. #define PMFAGC_3       55
  104. #define PMFAGC_4       56
  105. #define CTRL_0                  57
  106. #define CTRL_1           58
  107. #define CTRL_2           59
  108. #define CTRL_3           60
  109. #define CTRL_4           61
  110. #define CTRL_5   62
  111. #define CTRL_6   63
  112. #define CTRL_7   64
  113. #define CTRL_8   65
  114. #define CTRL_9   66
  115. #define DEINT_SYNC_0   67
  116. #define DEINT_SYNC_1   68
  117. #define BERT_0   69
  118. #define BERT_1   70
  119. #define BERT_2   71
  120. #define DEINT_0   72
  121. #define DEINT_1   73
  122. #define OUTFORMAT_0   74
  123. #define OUTFORMAT_1   75
  124. #define OUTFORMAT_2   76
  125. #define RS_DESC_0       77
  126. #define RS_DESC_1       78
  127. #define RS_DESC_2       79
  128. #define RS_DESC_3       80
  129. #define RS_DESC_4       81
  130. #define RS_DESC_5       82
  131. #define RS_DESC_14       83
  132. #define RS_DESC_15       84
  133. // Test registers
  134. #define TST_EQU_2       85
  135. // FIELDS
  136. //
  137. #define U_THRESHOLD        0
  138. #define MODE_SELECT        1
  139. #define BLIND_U          2
  140. #define INITIAL_U               3
  141. #define EQ_FSM_CTL                         4
  142. #define EQ_COEFF_CTL                       5
  143. #define NBLIND                             6
  144. #define NOISE_EST_LO                       7
  145. #define NOISE_EST_HI                       8
  146. #define DEM_FQCY_LO                        9
  147. #define DEM_FQCY_HI                       10
  148. #define LATENCY                           11
  149. #define SCAN_STEP_LO                      12
  150. #define CHSCANITEN                        13
  151. #define CHSCANITSOFT                      14
  152. #define SCAN_STEP_HI                      15
  153. #define IN_DEMOD_EN                       16
  154. #define SCAN_ON                           17
  155. #define AUTOSTOP                          18
  156. #define SCALE_A                           19
  157. #define SCALE_B                           20
  158. #define AGC2MAX                           21
  159. #define AGC2MIN                           22
  160. #define AGC1MAX                           23
  161. #define AGC1MIN                           24
  162. #define RATIO_A                           25
  163. #define RATIO_B                           26
  164. #define RATIO_C                           27
  165. #define AGC2_THRES                        28
  166. #define DAGC_ON                           29
  167. #define FRZ2_CTRL                         30
  168. #define FRZ1_CTRL                         31
  169. #define TIME_CST                          32
  170. #define OVF_RATE_LO                       33
  171. #define CORNER_RATE_LO                    34
  172. #define OVF_RATE_HI                       35
  173. #define CORNER_RATE_HI                    36
  174. #define I_REF       37
  175. #define AGC2SD_LO   38
  176. #define AGC2SD_HI   39
  177. #define ACQ_THRESH            40
  178. #define WAGC_CLR   41
  179. #define WAGC_INV     42
  180. #define WAGC_EN     43
  181. #define WAGC_ACQ     44
  182. #define SWAP        45
  183. #define ROLL_LO           46
  184. #define ACQ_COUNT_LO                      47
  185. #define ACQ_COUNT_HI                      48
  186. #define ROLL_HI        49
  187. #define IF_PWM_LO   50
  188. #define TARGET_RATE_LO     51
  189. #define IF_PWM_HI   52
  190. #define TARGET_RATE_HI   53
  191. #define GAIN_SCALE_PATH0                  54
  192. #define GAIN_SCALE_PATH1                  55
  193. #define INTEGRAL_GAIN_HI   56
  194. #define DIRECT_GAIN_LO         57
  195. #define SYMB_RATE_0     58
  196. #define SYMB_RATE_1     59
  197. #define SYMB_RATE_2     60
  198. #define SYMB_RATE_3     61
  199. #define INTEGRAL_GAIN_LO   62
  200. #define DIRECT_GAIN_HI         63
  201. #define PHASE_EN                          64
  202. #define PHASE_CLR                         65
  203. #define ERR_RANGE                         66
  204. #define ALGOSEL                           67
  205. #define ERR_CLR                           68
  206. #define ERR_EN                            69
  207. #define SWEEP_LO           70
  208. #define GAIN_INT       71
  209. #define GAIN_DIR   72
  210. #define GAIN_INT_ADJ        73
  211. #define GAIN_DIR_ADJ      74
  212. #define APHASE_0       75
  213. #define APHASE_1       76
  214. #define APHASE_2       77
  215. #define IPHASE_0           78
  216. #define IPHASE_1           79
  217. #define IPHASE_2           80
  218. #define IPHASE_3           81
  219. #define SWEEP_HI       82
  220. #define SWEEP_EN   83
  221. #define PH_EN                             84
  222. #define DIR_EN                            85
  223. #define INT_EN                            86
  224. #define DIR_DIS                           87
  225. #define INT_DIS                           88
  226. #define CRL_SNAPSHOT    89
  227. #define LOCK_THRES_LO              90
  228. #define PMFA_F_UNLOCK   91
  229. #define PMFA_F_LOCK   92
  230. #define WBAGC_F_LOCK       93
  231. #define UP_STOP            94
  232. #define LOCK_THRES_HI                 95
  233. #define PMFA_ACC0                     96
  234. #define PMFA_ACC1                     97
  235. #define PMFA_LOCK_STATE                   98
  236. #define PMFA_ACC2                     99
  237. #define SOFT_RESET   100
  238. #define VERSION      101
  239. #define RESET_DI      102
  240. #define RS_UNCORR                        103
  241. #define CORNER_LOCK                      104
  242. #define EQU_LMS2    105
  243. #define EQU_LMS1    106
  244. #define PMFAGC_IT    107
  245. #define WBAGC_IT    108
  246. #define J83C         109
  247. #define DFS      110
  248. #define SPEC_INV             111
  249. #define RESET_RS                         112
  250. #define RESET_EQL      113
  251. #define CKX2SEL  114
  252. #define CKX2DIS  115
  253. #define INVADCLK      116
  254. #define M_OEN                            117
  255. #define AGC_OD  118
  256. #define LOCKPOL                          119
  257. #define DY_SY_MASK                       120
  258. #define DY_SY_EV                         121
  259. #define DY_SY_DIR                        122
  260. #define SYNC_MSK                         123
  261. #define SYNC_EV                          124
  262. #define SYNC_DIR                         125
  263. #define I2CT_EN                          126
  264. #define SCLT_OD                          127
  265. #define EXTADCLK_EN                      128
  266. #define ITLOCKSEL                        129
  267. #define ITPWMSEL                         130
  268. #define LOCKSCE                          131
  269. #define TWB_ACT                          132
  270. #define SOURCESEL  133
  271. #define PRGCLKDIV  134
  272. #define AUXCLKSEL                        135
  273. #define ITLOCK_OD                        136
  274. #define ITPWM_OD                         137
  275. #define AGC12SEL  138
  276. #define AGC12B_EN      139
  277. #define SIGMA_INV_1  140
  278. #define SIGMA_INV_2  141
  279. #define AUTOQAMMODE_SEL  142
  280. #define AUTOCONSTEL_TIMER  143
  281. #define AUTOSTOP_CONSTEL  144
  282. #define AUTOCONSTEL_ON  145
  283. #define DI_UNLOCK  146
  284. #define DI_FREEZE  147
  285. #define MISMATCH  148
  286. #define ACQ_MODE  149
  287. #define TRKMODE  150
  288. #define SYNLOST  151
  289. #define BERT_ON  152
  290. #define ERR_SOURCE  153
  291. #define ERR_MODE  154
  292. #define NBYTE  155
  293. #define ERRCOUNT_LO  156
  294. #define ERRCOUNT_HI                      157
  295. #define USEINT                           158
  296. #define DAVIC      159
  297. #define M          160
  298. #define DEPTH      161
  299. #define REFRESH47  162
  300. #define BE_BYPASS                        163
  301. #define CKOUTPAR  164
  302. #define CT_NBST                         165
  303. #define S_NP  166
  304. #define TEI_ENA  167
  305. #define DS_ENA                           168
  306. #define SYNC_STRIP  169
  307. #define CI_EN  170
  308. #define CICLK_POL  171
  309. #define CICLK_BASE  172
  310. #define CI_DIVRANGE                      173
  311. #define BK_CT_LO          174
  312. #define BK_CT_HI          175
  313. #define CORR_CT_LO        176
  314. #define CORR_CT_HI         177
  315. #define UNCORR_CT_HI             178
  316. #define UNCORR_CT_LO          179
  317. #define DIS_UNLOCK  180
  318. #define MODE  181
  319. #define CT_CLEAR  182
  320. #define CT_HOLD  183
  321. #define RS_NOCORR  184
  322. #define SYNCSTATE   185
  323. #define EN_CORNER_DET  186
  324. #define TEST_SEL       187
  325. #define IIC_ADDR_NIM_30311    (0x38) // 定义TCMU30311的IIC地址
  326. #define IIC_TUNER_ADDRESS_SAM     (0xc2) // samsung tuner IIC地址
  327. #define IIC_TUNER_ADDRESS_TH     (0xc0) // Thomson tuner IIC地址
  328. //QAM 定义
  329. #define SAM_QAM16     0
  330. #define SAM_QAM32   1
  331. #define SAM_QAM64    4
  332. #define SAM_QAM128    2
  333. #define SAM_QAM256   3
  334. //定义STV0297的寄存器
  335. #define STV_EQU_0 0x00
  336. #define STV_EQU_1 0x01
  337. #define STV_EQU_2 0x02
  338. #define STV_EQU_3 0x03
  339. #define STV_EQU_4 0x04
  340. #define STV_EQU_5 0x05
  341. #define STV_EQU_6 0x06
  342. #define STV_EQU_7 0x07
  343. #define STV_EQU_8 0x08
  344. #define STV_INITDEM_0 0x20
  345. #define STV_INITDEM_1 0x21
  346. #define STV_INITDEM_2 0x22
  347. #define STV_INITDEM_3 0x23
  348. #define STV_INITDEM_4 0x24
  349. #define STV_INITDEM_5 0x25
  350. #define STV_DELAGC_0 0x30
  351. #define STV_DELAGC_1 0x31
  352. #define STV_DELAGC_2 0x32
  353. #define STV_DELAGC_3 0x33
  354. #define STV_DELAGC_4 0x34
  355. #define STV_DELAGC_5 0x35
  356. #define STV_DELAGC_6 0x36
  357. #define STV_DELAGC_7 0x37
  358. #define STV_DELAGC_8 0x38
  359. #define STV_WBAGC_0 0x40
  360. #define STV_WBAGC_1 0x41
  361. #define STV_WBAGC_2 0x42
  362. #define STV_WBAGC_3 0x43
  363. #define STV_WBAGC_4 0x44
  364. #define STV_WBAGC_5 0x45
  365. #define STV_WBAGC_6 0x46
  366. #define STV_WBAGC_9 0x49
  367. #define STV_WBAGC_10 0x4a
  368. #define STV_WBAGC_11 0x4b
  369. #define STV_STLOOP_2 0x52
  370. #define STV_STLOOP_3 0x53
  371. #define STV_STLOOP_5 0x55
  372. #define STV_STLOOP_6 0x56
  373. #define STV_STLOOP_7 0x57
  374. #define STV_STLOOP_8 0x58
  375. #define STV_STLOOP_9 0x59
  376. #define STV_STLOOP_10 0x5a
  377. #define STV_STLOOP_11 0x5b
  378. #define STV_CRL_0 0x60
  379. #define STV_CRL_1 0x61
  380. #define STV_CRL_2 0x62
  381. #define STV_CRL_3 0x63
  382. #define STV_CRL_4 0x64
  383. #define STV_CRL_5 0x65
  384. #define STV_CRL_6 0x66
  385. #define STV_CRL_7 0x67
  386. #define STV_CRL_8 0x68
  387. #define STV_CRL_9  0x69
  388. #define STV_CRL_10 0x6a
  389. #define STV_CRL_11 0x6b
  390. #define STV_PMFAGC_0 0x70
  391. #define STV_PMFAGC_1     0x71
  392. #define STV_PMFAGC_2     0x72
  393. #define STV_PMFAGC_3     0x73
  394. #define STV_PMFAGC_4     0x74
  395. #define STV_CTRL_0     0x80
  396. #define STV_CTRL_1     0x81
  397. #define STV_CTRL_2     0x82
  398. #define STV_CTRL_3     0x83
  399. #define STV_CTRL_4     0x84
  400. #define STV_CTRL_5 0x85
  401. #define STV_CTRL_6 0x86
  402. #define STV_CTRL_7 0x87
  403. #define STV_CTRL_8 0x88
  404. #define STV_CTRL_9 0x89
  405. #define STV_DEINT_SYNC_0 0x90
  406. #define STV_DEINT_SYNC_1 0x91
  407. #define STV_BERT_0 0xa0
  408. #define STV_BERT_1 0xa1
  409. #define STV_BERT_2 0xa2
  410. #define STV_DEINT_0 0xb0
  411. #define STV_DEINT_1 0xb1
  412. #define STV_DEINT_2 0xb2
  413. #define STV_DEINT_3 0xb3
  414. #define STV_OUTFORMAT_0 0xc0
  415. #define STV_OUTFORMAT_1 0xc1
  416. #define STV_OUTFORMAT_2 0xc2
  417. #define STV_RS_DESC_0 0xd0
  418. #define STV_RS_DESC_1 0xd1
  419. #define STV_RS_DESC_2 0xd2
  420. #define STV_RS_DESC_3 0xd3
  421. #define STV_RS_DESC_4 0xd4
  422. #define STV_RS_DESC_5 0xd5
  423. #define STV_RS_DESC_14 0xde
  424. #define STV_RS_DESC_15 0xdf
  425. //操作SAM1216的函数
  426. UINT8 SAMRevision(void);
  427. void SAMInit(KB_DMDTunerParameters *pParam);
  428. INT32 SAMCheckLock(void);
  429. void SAMReset(void);
  430. void SAMResetAll(void);
  431. void QAMHandleTimeout2(void);
  432. INT32 SAMWriteReg(UINT32 whichReg,UINT32 writeValue);
  433. INT32 SAMStartConnect(void);
  434. void SAMStopConnect(void);
  435. void SAMSetQAMMode(UINT8 qammode);
  436. UINT32 SAMSignalVAGC(void);
  437. INT32 SAMCalSAMlateVAFC(void);
  438. UINT32 SAMReadSCOffset(void);
  439. UINT8 SAMReadUncor(void);
  440. //操作TUNER的函数
  441. void SAMEnableIICTuner(void);
  442. void SAMDisableIICTuner(void);
  443. INT32 SAMWriteTunerReg(UINT8 *cont,UINT8 DEMOD_ADD);
  444. INT32 SAMSetTunerFrequency(UINT32 frequency);
  445. void samDelay(int n);
  446. UINT8 FieldCreateMask(INT32 field);
  447. void RegSetOneRegister(INT32 reg_id, UINT8 Data);
  448. INT32 RegGetOneRegister(INT32 reg_id);
  449. void FieldSetVal(INT32 field, INT32 fieldval);
  450. void RegSetField(INT32 field,INT32 value);
  451. INT32 FieldGetVal(INT32 field);
  452. INT32 RegGetField(INT32 field);
  453. void QAM64_RegInit(void);
  454. void QAM64_Regreset(void);
  455. void QAM256_Regreset(void);
  456. void RegSTV0297reset(void);
  457. void RegResetAfterDI(void);
  458. void RegSetQAMSize(INT32 _QAMSize);
  459. INT32 RegGetQAMSize(void);
  460. INT32 RegGetSymbolRate(void);
  461. void RegSetSymbolRate(INT32 _SymbolRate);
  462. INT32 RegGetSweepRate(void);
  463. void RegSetSweepRate(INT16 _FShift);
  464. INT32 RegGetCarrierOffset(void);
  465. void Driv0297Init(void);
  466. void Driv0297DemodSetting(INT32 _Offset);
  467. FLAG_SAM Driv0297DataSearch(SIGNAL *_pSignal, INT32 _SweepRate, INT32 _CarrierOffset,
  468. FLAG_SAM _SpectrumInversion, INT32 _InitDemodOffset);
  469. FLAG_SAM Driv0297CarrierSearch(SIGNAL  *_pSignal, FLAG_SAM _SpectrumInversion,
  470. INT32 _SweepRate, INT32 _CarrierOffset);
  471. void CarrierStatusSetAcquisitionStatus(void);
  472. FLAG_SAM Acquisition(float _Freq1, UINT32 _SymbolRate,
  473.  INT32 _QAMSize, FLAG_SAM _SpectrumInversion);
  474. void QAM_Init(void);
  475. INT16 Check_Lock(void);
  476. void RegReset(void);
  477. void LoadRegisters(void);
  478. void RegStoreValue(void);
  479. INT32  RegSearchAddress(INT32 _Address);
  480. void RegReloadValue(void);
  481. UINT32 SAMReadNoise(void);
  482. UINT32 SAMReadBER(void);
  483. INT32 QamagcToDbuv(UINT32 nQamagc);
  484. void init_RF_Level(void);
  485. boolean Check_Signal_Strenth_Quality(int *Signal_Strengh,int *Signal_Quality);
  486. INT32 SAMDetect(UINT16 addr);
  487. #endif /* #ifdef _TCMU30311_H_ */