⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 servoparams_dv34.c

📁 Zoran V966 DVD 解码 Soc芯片的源程序
💻 C
📖 第 1 页 / 共 4 页
字号:
// Initial AFE setup
   {AfeCtrlShadow,                        0x4C40}, // DSP (0x4c40)
   {AfeCtrl,                              0x4C40}, // DSP (0x4c40)
   {AlpcGain,                             0x0019}, // DSP (0x19)
   PARAMS_TERMINATOR
};

CONST ServoParam ServoDVDGParams[] = {
// Servo general parameters for all kinds of DVDs
// CD mode
#ifdef CD_EXT
   {CdExtendedMode,                       0x0000}, // DSP (0)
#endif
   {uOlsjOnlyEccThreshold,                0x0000}, // DSP (0)
// Focus parameters
   {FeOffsetVsRfCalibOn,                  0x0000}, // DSP (0): Focus offset according to RF maximum amplitude
   {FocusBalanceVsJitter,                 0x0000}, // DSP (0): Focus Balance according to minimum jitter point
   {FocusBalanceThreshold,                0x00C0}, // DSP (0xc0): The minimum difference between two points in order to find a trend.
// Initial gains
#ifdef FOCUS_CONTROLLER_TEMP_TREATMENT
   {FocusInitialGainCoef,                 0x005A}, // DSP (0x5a)
#else
   {FocusInitialGainCoef,                 0x0144}, // DSP (0x144)
#endif
   {TrackingInitialGainCoef,              0x002F}, // DSP (0x2f)
   {GSLoopGainFactor,                     0x0100}, // DSP (0x100): 0x100 -> 1.0
// Spindle filter coefs
   {iSpindleB0Coef,                       0x3349}, // DSP (13129)
   {iSpindleB1Coef,                       0xCD71}, // DSP (-12943)
   {iSpindleA1Coef,                       0x8000}, // DSP (32768)
   {iSpindleGainCoef,                     0x0006}, // DSP (=ROUND(102/2^4,0))
   {SpindleIntegratorHighLimit,           0x0253}, // DSP (595)
   {uCAVSpindleSpeed,                     0x0500}, // DSP (0x500)
// Short jump profile params
   {SJ_uAcceleration,                     0x0014}, // DSP (20): 2^-16*Tracks/Sample^2 162*10^9*2^-16Tracks/Sec^2 (162e9/SR^2)
   {SJ_uMaxVelocity,                      0x1E00}, // DSP (7680): 2^-16*Tracks/Sample   6912*10^5*2^-16Tracks/Sec (6912e5/SR)
   {SJ_PauseAfterEnd,                     0x00C8}, // DSP (200): 2.23ms (2.23/1000*SR)
   {JM_uShortLongJumpThreshold,           0x0190}, // DSP (400)
// Feedbacks parameters
   {TrackingErrorSign,                    0x0001}, // DSP (1)
// Track pullin params
   {TP_TCMaximalSpeed,                    0x0018}, // DSP (24)
   {BrakeTrackPullinOn,                   0x0000}, // DSP (0)
   {SacTpStep,                            0x285F}, // DSP (0x285f)
// Open loop short jumps
   {OLSJKickTime,                         0x0006}, // DSP (6)
   {OLSJBrakeTime,                        0x0004}, // DSP (4)
   {OLSJKickSize,                         0x02EE}, // DSP (750)
   {OLSJBrakeSize,                        0xFC18}, // DSP (-1000)
   {OLSJMaxJump,                          0x0003}, // DSP (3)
   {OLSJMaxIteration,                     0x0003}, // DSP (3)
   {OLSJIterationDelay,                   0x0010}, // DSP (16)
   {OLSJUseFilter,                        0x0001}, // DSP (1)
// Focus search parameters
#ifdef FOCUS_CONTROLLER_TEMP_TREATMENT
   {FS_iFeHiThresholdLevel,               0x0BB8}, // DSP (3000)
#else
   {FS_iFeHiThresholdLevel,               0x0DAC}, // DSP (3500)
#endif
   {FS_uTime2GoUp,                        0x0A8C}, // DSP (2700): 60ms ~= 1/14Hz = 71ms = 1 rotation (60/1000*SR)
   {FS_iUpRepetitionTime,                 0x0138}, // DSP (312)
   {FS_iHighProfilePoint,                 0x0502}, // DSP (1282)
   {FS_iLowProfilePoint,                  0xFD00}, // DSP (-768)
   {FS_iStartProfilePointL0,              0xFE73}, // DSP (-397)
   {FS_iDownRepetitionTime,               0x0034}, // DSP (52)
   {FS_iStartRepetitionTime,              0x000C}, // DSP (12)
   {FS_iStartOffset,                      0xFD94}, // DSP (-620)
   {FS_iFeKickThreshold,                  0x8001}, // DSP (-32767)
   {FS_iFeStopKickThreshold,              0x7FFF}, // DSP (32767)
   {FS_uFocusLockTimeout,                 0x01C2}, // DSP (450): 10ms
// Basic setup for DVD
// Decimation filters
   {DecimationParams0,                    0x0010}, // DSP (0x10): TE latency
   {DecimationParams1,                    0x00DD}, // DSP (0xdd): FE latency
   {DecimationParams2,                    0x007E}, // DSP (0x7e): GS latency
// DPD setting
   {DpdControl,                           0x000A}, // DSP (0xa)
   {DpdParams0,                           0x0680}, // DSP (0x680)
// mirror
   {ServoMirrorControl,                   0x0006}, // DSP (0x6): Bottom env LPF = 70 Khz
   {ServoMirrorParams0,                   0x0081}, // DSP (0x81)
   {ServoMirrorParams2,                   0x0003}, // DSP (0x3)
   {ServoMirrorParams3,                   0x0AA0}, // DSP (0x0aa0)
   {ServoMirrorParams4,                   0x6060}, // DSP (0x6060)
   {ServoMirrorParams5,                   0x000A}, // DSP (0xa)
   {ServoMirrorParams9,                   0x3E93}, // DSP (0x3e93): R=125, 67.5MHz/126=536kHz
// TZC
   {ServoTzcParams0,                      0x067D}, // DSP (0x67d): R=125, 67.5MHz/126=536kHz LPF = 70kHz
   {ServoTzcParams1,                      0x0200}, // DSP (0x200)
   {ServoTzcParams2,                      0x000D}, // DSP (0xd)
// AQB
   {ServoGsCicControl,                    0x0008}, // DSP (0x8): R1=2 (536kHz/3=178kHz)
   PARAMS_TERMINATOR
};

CONST ServoParam ServoDVDSLParams[] = {
// Servo parameters for DVD single layer
   {FG_iFeThresholdLevel,                 0x0640}, // DSP (1600)
#ifdef FOCUS_CONTROLLER_TEMP_TREATMENT
   {iLGFocusBpfB0Coef,                    0x0072}, // DSP (114)
   {iLGFocusBpfB1Coef,                    0x0000}, // DSP (0)
   {iLGFocusBpfB2Coef,                    0xFF8E}, // DSP (-114)
   {iLGFocusBpfA1Coef,                    0x7D8D}, // DSP (32141)
   {iLGFocusBpfA2Coef,                    0xC0E3}, // DSP (-16157)
#endif
// Initial AFE gain
   {FsrvADGain,                           0x0000}, // DSP (0): Put init A/B/C/D signal to halp ADC range
   {FsrvADDirectGain,                     0x0000}, // DSP (0)
   {FsrvADGainShadow,                     0x0000}, // DSP (0): Put init A/B/C/D signal to halp ADC range
   {FsrvADDirectGainShadow,               0x0000}, // DSP (0)
// Defect
   {uSrvDefectTrackCrossThreshold,        0x80A0}, // DSP (0x80a0)
   {uSrvDefectPlaybackThreshold,          0x80A0}, // DSP (0x80a0)
   {uMirrDefectTrackCrossThreshold,       0x80A0}, // DSP (0x80a0)
   {uMirrDefectPlaybackThreshold,         0x80A0}, // DSP (0x80a0)
   {SrvDefectDelay,                       0x0000}, // DSP (0)
   {SrvWDParameters,                      0x0000}, // DSP (0)
   PARAMS_TERMINATOR
};

CONST ServoParam ServoDVDRWParams[] = {
// Servo parameters for DVD RW
   {OLSJMaxJump,                          0x0003}, // DSP (3): To enable crossing of white dot until SJ hold on GS stack is finished
// Focus search parameters
   {FS_iStartProfilePointL0,              0xFD7F}, // DSP (-641)
// Initial AFE gain
   {FsrvADGain,                           0x0016}, // DSP (0x16): put init A/B/C/D signal to halp ADC range
   {FsrvADDirectGain,                     0x0016}, // DSP (0x16)
   {FsrvADGainShadow,                     0x0016}, // DSP (0x16): put init A/B/C/D signal to halp ADC range
   {FsrvADDirectGainShadow,               0x0016}, // DSP (0x16)
// Defect
   {uSrvDefectTrackCrossThreshold,        0x8090}, // DSP (0x8090)
   {uSrvDefectPlaybackThreshold,          0x8090}, // DSP (0x8090)
   {uMirrDefectTrackCrossThreshold,       0x8090}, // DSP (0x8090)
   {uMirrDefectPlaybackThreshold,         0x8090}, // DSP (0x8090)
   {SrvDefectDelay,                       0x0000}, // DSP (0)
   {SrvWDParameters,                      0x808A}, // DSP (0x808a)
// The following two params are the same as for all DVDs,
// but with decimation filters of order 2 instead of 1.
   {ServoMirrorParams5,                   0x000F}, // DSP (0xf)
// Short jump profile params
   {SJ_PauseAfterEnd,                     0x0050}, // DSP (80)
   PARAMS_TERMINATOR
};

CONST ServoParam ServoDVDRParams[] = {
// Servo parameters for DVD-R
// Initial AFE gain
   {FsrvADGain,                           0x0006}, // DSP (0x6): put init A/B/C/D signal to halp ADC range
   {FsrvADDirectGain,                     0x0006}, // DSP (0x6)
   {FsrvADGainShadow,                     0x0006}, // DSP (0x6): put init A/B/C/D signal to halp ADC range
   {FsrvADDirectGainShadow,               0x0006}, // DSP (0x6)
// Defect
   {uSrvDefectTrackCrossThreshold,        0x80A0}, // DSP (0x80a0)
   {uSrvDefectPlaybackThreshold,          0x80A0}, // DSP (0x80a0)
   {uMirrDefectTrackCrossThreshold,       0x80A0}, // DSP (0x80a0)
   {uMirrDefectPlaybackThreshold,         0x80A0}, // DSP (0x80a0)
   {SrvDefectDelay,                       0x0000}, // DSP (0)
   {SrvWDParameters,                      0x0000}, // DSP (0)
   PARAMS_TERMINATOR
};

CONST ServoParam ServoDVDDLParams[] = {
// Servo parameters for DVD dual layer
   {FeOffsetVsRfCalibOn,                  0x0000}, // DSP (0)
// Focus search parameters
   {FS_iStartProfilePointL0,              0xFD7F}, // DSP (-641)
   {FS_iStartProfilePointL1,              0x0226}, // DSP (550)
// Initial AFE gain
   {FsrvADGain,                           0x0012}, // DSP (0x12): put init A/B/C/D signal to halp ADC range
   {FsrvADDirectGain,                     0x0012}, // DSP (0x12)
   {FsrvADGainShadow,                     0x0012}, // DSP (0x12): put init A/B/C/D signal to halp ADC range
   {FsrvADDirectGainShadow,               0x0012}, // DSP (0x12)
// Defect
   {uSrvDefectTrackCrossThreshold,        0x80A0}, // DSP (0x80a0)
   {uSrvDefectPlaybackThreshold,          0x80A0}, // DSP (0x80a0)
   {uMirrDefectTrackCrossThreshold,       0x80A0}, // DSP (0x80a0)
   {uMirrDefectPlaybackThreshold,         0x80A0}, // DSP (0x80a0)
   {SrvDefectDelay,                       0x0000}, // DSP (0)
   {SrvWDParameters,                      0x0000}, // DSP (0)
   PARAMS_TERMINATOR
};

CONST ServoParam ServoCDGParams[] = {
// Servo general parameters for all kinds of CDs
   {uOlsjOnlyEccThreshold,                0x008C}, // DSP (140)
// Sled gain
   {ESL_OriginalGain,                     0x0050}, // DSP (0x50)
   {ESL_MaxGain,                          0x0000}, // DSP (0)
// Initial gains
   {FocusInitialGainCoef,                 0x0055}, // DSP (0x55)
   {TrackingInitialGainCoef,              0x002F}, // DSP (0x2f)
   {GSLoopGainFactor,                     0x015C}, // DSP (0x15c): 0x100 -> 1.0
// Spindle filter coefs
   {iSpindleB0Coef,                       0x3349}, // DSP (13129)
   {iSpindleB1Coef,                       0xCD71}, // DSP (-12943)
   {iSpindleA1Coef,                       0x8000}, // DSP (32768)
   {iSpindleGainCoef,                     0x000F}, // DSP (=ROUND(238/2^4,0))
   {SpindleIntegratorHighLimit,           0x0165}, // DSP (357)
// Short jump profile params
   {SJ_uAcceleration,                     0x000A}, // DSP (10): 2^-16*Tracks/Sample^2 81*10^9*2^-16Tracks/Sec^2 (81e9/SR^2)
   {SJ_uMaxVelocity,                      0x0F00}, // DSP (3840): 2^-16*Tracks/Sample   3456*10^5*2^-16Tracks/Sec (3456e5/SR)
   {SJ_PauseAfterEnd,                     0x00C8}, // DSP (200): 2.23ms (2.23/1000*SR)
   {JM_uShortLongJumpThreshold,           0x0100}, // DSP (256)
// Feedbacks parameters
   {TrackingErrorSign,                    0x0001}, // DSP (1)
// Track pullin params
   {TP_TCMaximalSpeed,                    0x0014}, // DSP (20)
   {BrakeTrackPullinOn,                   0x0000}, // DSP (0)
   {SacTpStep,                            0x285F}, // DSP (0x285f)
// Open loop short jumps
   {OLSJKickTime,                         0x0008}, // DSP (8)
   {OLSJBrakeTime,                        0x0006}, // DSP (6)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -