1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
/**
* @(#)Microtune_MT2260B0.cpp
*
* ==========================================================
* Version: 2.0
* Date: 2008.07.02
* ==========================================================
*
* ==========================================================
* History:
*
* Date Author Description
* ----------------------------------------------------------
*
* 2008.07.02 Tom Lin added tuner version
* ==========================================================
*
* Copyright 2005 Afatech, Inc. All rights reserved.
*
*/
//#include <stdio.h> //for Linux
#include "type.h"
#include "error.h"
#include "user.h"
#include "register.h"
#include "standard.h"
#include "mt2260.h"
#include "Microtune_MT2260B0_Script.h"
#define Microtune_MT2260B0_EXT_ADDRESS 0xC0
Handle_t Microtune_MT2260B0_tunerHandles[2];
UserData Microtune_MT2260B0_userDatas[2];
Dword MT2260B0_open (
IN Demodulator* demodulator,
IN Byte chip
) {
Dword error = Error_NO_ERROR;
UData_t status = MT_OK;
Microtune_MT2260B0_userDatas[chip].chip = chip;
Microtune_MT2260B0_userDatas[chip].demodulator = demodulator;
status = MT2260_Open ((unsigned int)Microtune_MT2260B0_EXT_ADDRESS, &Microtune_MT2260B0_tunerHandles[chip], &Microtune_MT2260B0_userDatas[chip]);
if (MT_NO_ERROR (status))
status |= MT2260_SetParam (Microtune_MT2260B0_tunerHandles[chip], MT2260_STEPSIZE, 62500);
if (MT_NO_ERROR (status))
status |= MT2260_SetParam (Microtune_MT2260B0_tunerHandles[chip], MT2260_RF_EXT, 1);
if (MT_NO_ERROR (status))
status |= MT2260_SetParam (Microtune_MT2260B0_tunerHandles[chip], MT2260_BB_EXT, 1);
if (MT_IS_ERROR (status))
error = Error_MT_TUNE_FAIL;
return (error);
}
Dword MT2260B0_close (
IN Demodulator* demodulator,
IN Byte chip
) {
Dword error = Error_NO_ERROR;
UData_t status = MT_OK;
status |= MT2260_Close (Microtune_MT2260B0_tunerHandles[chip]);
if (MT_IS_ERROR (status))
error = Error_MT_TUNE_FAIL;
return (error);
}
Dword MT2260B0_set (
IN Demodulator* demodulator,
IN Byte chip,
IN Word bandwidth,
IN Dword frequency
) {
Dword error = Error_NO_ERROR;
UData_t status = MT_OK;
UData_t freq;
UData_t bw;
freq = frequency * 1000UL;
bw = (UData_t) bandwidth * 1000UL;
/** Change frequency */
status = MT2260_ChangeFreq (Microtune_MT2260B0_tunerHandles[chip], freq);
if (MT_NO_ERROR (status))
status |= MT2260_SetParam (Microtune_MT2260B0_tunerHandles[chip], MT2260_OUTPUT_BW, bw);
if (MT_IS_ERROR (status))
error = Error_MT_TUNE_FAIL;
User_delay (demodulator, 100);
return (error);
}
TunerDescription tuner_MT2260B0 = {
MT2260B0_open,
MT2260B0_close,
MT2260B0_set,
MT2260B0_scripts,
MT2260B0_scriptSets,
MT2260B0_ADDRESS, /** tuner i2c address */
1, /** length of tuner register address */
0, /** tuner if */
True, /** spectrum inverse */
0x21, /** tuner id */
};
|