📄 srvpro.c
字号:
/**************************(c) STMicroelectronics *****************************//*!\file * * CVS ID: $Id: srvpro.c,v 1.10 2007/09/26 15:09:44 dellorto Exp $ * Author: Fabio Dell'Orto [FD] - STM * Date: $Date: 2007/09/26 15:09:44 $ * Revision: $Revision: 1.10 $ * * Project Scope: CDM M8 * * Organisation: Optical Media Storage B.U. * AGRATE (ITALY) Application Lab * * Version Control: * \source sources/servo/srvpro.h * \version 0.1 * \author ST Agrate * \date 00-00-00 * ******************************************************************************* * \brief Servo Profile definition (structure + initial values) * * \par Change History: * *************************************************** * * STM CVS Log: * * $Log: srvpro.c,v $ * Revision 1.10 2007/09/26 15:09:44 dellorto * added items for tracking recover and hf detection improvements * * Revision 1.9 2007/09/07 07:10:05 dellorto * Fine tuning of parameters related to Tanahin mechanisms * * Revision 1.8 2007/08/14 15:29:57 dellorto * multiple mechanisms * * Revision 1.7 2007/03/16 14:22:30 dellorto * introduced new profile items * * Revision 1.6 2006/09/18 09:55:26 belardi * Corrected CVS keyword usage * * Revision 1.5 2006/09/18 09:25:48 belardi * Added Log CVS keyword into file header * * ******************************************************************************/#include "gendef.h"#include "srvpro.h"#include "osal.h"t_mechanism_model mechanism_model;t_mechanism_model detect_mechanism(void){#if (HAVE_MULTI_MECHANISM == 1) return (t_mechanism_model)(SW0_MECHANISM_MODEL | SW1_MECHANISM_MODEL | SW2_MECHANISM_MODEL);#else return M0_SHINWA_CDC02;#endif}/*===========================================================================*//*=== ROM profile initialisation ===========================================*//*===========================================================================*/#if (1 == HAVE_PROFILES)SLEDGE_MOTOR_PROFILE_STRUCT *sledge_motor_profile_ptr;SPINDLE_MOTOR_PROFILE_STRUCT *spindle_motor_profile_ptr;PICK_UP_PROFILE_STRUCT *pick_up_profile_ptr;MISC_PROFILE_STRUCT *misc_profile_ptr;#if (1 == DEBUG_SERVO_SUPPORT)static SLEDGE_MOTOR_PROFILE_STRUCT sledge_motor_ram_profile;static SPINDLE_MOTOR_PROFILE_STRUCT spindle_motor_ram_profile;static PICK_UP_PROFILE_STRUCT pick_up_ram_profile;static MISC_PROFILE_STRUCT misc_ram_profile;#endifstatic SLEDGE_MOTOR_PROFILE_STRUCT const M0_sledge_motor_rom_profile ={#ifdef SLEDGE_USE_PROFILES { M0_SLEDGE_PRO_KICK_FORWARD, M0_SLEDGE_PRO_KICK_BACKWARD, M0_SLEDGE_PRO_CONSTANT_FORWARD, M0_SLEDGE_PRO_CONSTANT_BACKWARD, M0_SLEDGE_PRO_BRAKE_FORWARD, M0_SLEDGE_PRO_BRAKE_BACKWARD, M0_SLEDGE_PRO_KICK_TIME, M0_SLEDGE_PRO_BRAKE_TIME, M0_SLEDGE_PRO_BRAKE_TRACKS, M0_SLEDGE_HOME_PRO_INSIDE_PARAM, M0_SLEDGE_HOME_PRO_OUTSIDE_PARAM, M0_SLEDGE_HOME_PRO_EXTRA_TIME, M0_SLEDGE_PRO_SEEK_PARAM }#endif#ifdef SLEDGE_PLAY_USE_PROFILES , { M0_SLEDGE_PLAY_PRO_TAFILT_GAIN, M0_SLEDGE_PLAY_PRO_TAFILT_POLE, M0_SLEDGE_PLAY_PRO_SLEDTIME, M0_SLEDGE_PLAY_PRO_TAWIN, M0_SLEDGE_PLAY_PRO_SLEDPULSE_FWD_TIME, M0_SLEDGE_PLAY_PRO_SLEDPULSE_FWD_AMP }#endif#ifdef SLEDGE_JUMP_USE_PROFILES , { M0_SLEDGE_JUMP_PRO_TAFILT_GAIN, M0_SLEDGE_JUMP_PRO_TAFILT_POLE, M0_SLEDGE_JUMP_PRO_SLEDTIME_1, M0_SLEDGE_JUMP_PRO_SLEDTIME_2, M0_SLEDGE_JUMP_PRO_TAWIN, M0_SLEDGE_JUMP_PRO_SLEDPULSE_FWD_TIME, M0_SLEDGE_JUMP_PRO_SLEDPULSE_BWD_TIME, M0_SLEDGE_JUMP_PRO_SLEDPULSE_FWD_AMP, M0_SLEDGE_JUMP_PRO_SLEDPULSE_BWD_AMP }#endif#ifdef RECOVER_USE_PROFILE , { M0_RECOVER_PRO_FOCUS_RECOVER_OUTSIDE_RETRIES_12CM, M0_RECOVER_PRO_FOCUS_RECOVER_OUTSIDE_RETRIES_8CM, M0_RECOVER_PRO_FOCUS_LOST_DURING_HF_RECOVER_RETRIES, M0_RECOVER_PRO_FOCUS_RECOVER_SLEDGE_PARAM, M0_RECOVER_PRO_HF_RECOVER_INITIAL_SLEDGE_PARAM_12CM, M0_RECOVER_PRO_HF_RECOVER_INITIAL_SLEDGE_PARAM_8CM, M0_RECOVER_PRO_HF_RECOVER_PLAY_SLEDGE_PARAM, M0_RECOVER_PRO_HF_RECOVER_JUMP_SLEDGE_PARAM, M0_RECOVER_PRO_HF_RECOVER_EXTRA_TIME, M0_RECOVER_PRO_ERASED_CD_RW_RECOVER_SLEDGE_PARAM, M0_RECOVER_PRO_PLL_RECOVER_SLEDGE_PARAM, M0_RECOVER_PRO_TTM_RECOVER_TRACK_COUNT_TIMEOUT, M0_RECOVER_PRO_TTM_RECOVER_TRACK_COUNT_THS }#endif#ifdef LOADER_USE_PROFILE , { M0_LOADER_PRO_PARAM_1, M0_LOADER_PRO_PARAM_2 }#endif};static SLEDGE_MOTOR_PROFILE_STRUCT const M1_sledge_motor_rom_profile ={#ifdef SLEDGE_USE_PROFILES { M1_SLEDGE_PRO_KICK_FORWARD, M1_SLEDGE_PRO_KICK_BACKWARD, M1_SLEDGE_PRO_CONSTANT_FORWARD, M1_SLEDGE_PRO_CONSTANT_BACKWARD, M1_SLEDGE_PRO_BRAKE_FORWARD, M1_SLEDGE_PRO_BRAKE_BACKWARD, M1_SLEDGE_PRO_KICK_TIME, M1_SLEDGE_PRO_BRAKE_TIME, M1_SLEDGE_PRO_BRAKE_TRACKS, M1_SLEDGE_HOME_PRO_INSIDE_PARAM, M1_SLEDGE_HOME_PRO_OUTSIDE_PARAM, M1_SLEDGE_HOME_PRO_EXTRA_TIME, M1_SLEDGE_PRO_SEEK_PARAM }#endif#ifdef SLEDGE_PLAY_USE_PROFILES , { M1_SLEDGE_PLAY_PRO_TAFILT_GAIN, M1_SLEDGE_PLAY_PRO_TAFILT_POLE, M1_SLEDGE_PLAY_PRO_SLEDTIME, M1_SLEDGE_PLAY_PRO_TAWIN, M1_SLEDGE_PLAY_PRO_SLEDPULSE_FWD_TIME, M1_SLEDGE_PLAY_PRO_SLEDPULSE_FWD_AMP }#endif#ifdef SLEDGE_JUMP_USE_PROFILES , { M1_SLEDGE_JUMP_PRO_TAFILT_GAIN, M1_SLEDGE_JUMP_PRO_TAFILT_POLE, M1_SLEDGE_JUMP_PRO_SLEDTIME_1, M1_SLEDGE_JUMP_PRO_SLEDTIME_2, M1_SLEDGE_JUMP_PRO_TAWIN, M1_SLEDGE_JUMP_PRO_SLEDPULSE_FWD_TIME, M1_SLEDGE_JUMP_PRO_SLEDPULSE_BWD_TIME, M1_SLEDGE_JUMP_PRO_SLEDPULSE_FWD_AMP, M1_SLEDGE_JUMP_PRO_SLEDPULSE_BWD_AMP }#endif#ifdef RECOVER_USE_PROFILE , { M1_RECOVER_PRO_FOCUS_RECOVER_OUTSIDE_RETRIES_12CM, M1_RECOVER_PRO_FOCUS_RECOVER_OUTSIDE_RETRIES_8CM, M1_RECOVER_PRO_FOCUS_LOST_DURING_HF_RECOVER_RETRIES, M1_RECOVER_PRO_FOCUS_RECOVER_SLEDGE_PARAM, M1_RECOVER_PRO_HF_RECOVER_INITIAL_SLEDGE_PARAM_12CM, M1_RECOVER_PRO_HF_RECOVER_INITIAL_SLEDGE_PARAM_8CM, M1_RECOVER_PRO_HF_RECOVER_PLAY_SLEDGE_PARAM, M1_RECOVER_PRO_HF_RECOVER_JUMP_SLEDGE_PARAM, M1_RECOVER_PRO_HF_RECOVER_EXTRA_TIME, M1_RECOVER_PRO_ERASED_CD_RW_RECOVER_SLEDGE_PARAM, M1_RECOVER_PRO_PLL_RECOVER_SLEDGE_PARAM, M1_RECOVER_PRO_TTM_RECOVER_TRACK_COUNT_TIMEOUT, M1_RECOVER_PRO_TTM_RECOVER_TRACK_COUNT_THS }#endif#ifdef LOADER_USE_PROFILE , { M1_LOADER_PRO_PARAM_1, M1_LOADER_PRO_PARAM_2 }#endif};static SLEDGE_MOTOR_PROFILE_STRUCT const M45_sledge_motor_rom_profile ={#ifdef SLEDGE_USE_PROFILES { M45_SLEDGE_PRO_KICK_FORWARD, M45_SLEDGE_PRO_KICK_BACKWARD, M45_SLEDGE_PRO_CONSTANT_FORWARD, M45_SLEDGE_PRO_CONSTANT_BACKWARD, M45_SLEDGE_PRO_BRAKE_FORWARD, M45_SLEDGE_PRO_BRAKE_BACKWARD, M45_SLEDGE_PRO_KICK_TIME, M45_SLEDGE_PRO_BRAKE_TIME, M45_SLEDGE_PRO_BRAKE_TRACKS, M45_SLEDGE_HOME_PRO_INSIDE_PARAM, M45_SLEDGE_HOME_PRO_OUTSIDE_PARAM, M45_SLEDGE_HOME_PRO_EXTRA_TIME, M45_SLEDGE_PRO_SEEK_PARAM }#endif#ifdef SLEDGE_PLAY_USE_PROFILES , { M45_SLEDGE_PLAY_PRO_TAFILT_GAIN, M45_SLEDGE_PLAY_PRO_TAFILT_POLE, M45_SLEDGE_PLAY_PRO_SLEDTIME, M45_SLEDGE_PLAY_PRO_TAWIN, M45_SLEDGE_PLAY_PRO_SLEDPULSE_FWD_TIME, M45_SLEDGE_PLAY_PRO_SLEDPULSE_FWD_AMP }#endif#ifdef SLEDGE_JUMP_USE_PROFILES , { M45_SLEDGE_JUMP_PRO_TAFILT_GAIN, M45_SLEDGE_JUMP_PRO_TAFILT_POLE, M45_SLEDGE_JUMP_PRO_SLEDTIME_1, M45_SLEDGE_JUMP_PRO_SLEDTIME_2, M45_SLEDGE_JUMP_PRO_TAWIN, M45_SLEDGE_JUMP_PRO_SLEDPULSE_FWD_TIME, M45_SLEDGE_JUMP_PRO_SLEDPULSE_BWD_TIME, M45_SLEDGE_JUMP_PRO_SLEDPULSE_FWD_AMP, M45_SLEDGE_JUMP_PRO_SLEDPULSE_BWD_AMP }#endif#ifdef RECOVER_USE_PROFILE , { M45_RECOVER_PRO_FOCUS_RECOVER_OUTSIDE_RETRIES_12CM, M45_RECOVER_PRO_FOCUS_RECOVER_OUTSIDE_RETRIES_8CM, M45_RECOVER_PRO_FOCUS_LOST_DURING_HF_RECOVER_RETRIES, M45_RECOVER_PRO_FOCUS_RECOVER_SLEDGE_PARAM, M45_RECOVER_PRO_HF_RECOVER_INITIAL_SLEDGE_PARAM_12CM, M45_RECOVER_PRO_HF_RECOVER_INITIAL_SLEDGE_PARAM_8CM, M45_RECOVER_PRO_HF_RECOVER_PLAY_SLEDGE_PARAM, M45_RECOVER_PRO_HF_RECOVER_JUMP_SLEDGE_PARAM, M45_RECOVER_PRO_HF_RECOVER_EXTRA_TIME, M45_RECOVER_PRO_ERASED_CD_RW_RECOVER_SLEDGE_PARAM, M45_RECOVER_PRO_PLL_RECOVER_SLEDGE_PARAM, M45_RECOVER_PRO_TTM_RECOVER_TRACK_COUNT_TIMEOUT, M45_RECOVER_PRO_TTM_RECOVER_TRACK_COUNT_THS }#ifdef LOADER_USE_PROFILE , { M45_LOADER_PRO_PARAM_1, M45_LOADER_PRO_PARAM_2 }#endif#endif};static SLEDGE_MOTOR_PROFILE_STRUCT const M67_sledge_motor_rom_profile ={#ifdef SLEDGE_USE_PROFILES { M67_SLEDGE_PRO_KICK_FORWARD, M67_SLEDGE_PRO_KICK_BACKWARD, M67_SLEDGE_PRO_CONSTANT_FORWARD, M67_SLEDGE_PRO_CONSTANT_BACKWARD, M67_SLEDGE_PRO_BRAKE_FORWARD, M67_SLEDGE_PRO_BRAKE_BACKWARD, M67_SLEDGE_PRO_KICK_TIME, M67_SLEDGE_PRO_BRAKE_TIME, M67_SLEDGE_PRO_BRAKE_TRACKS, M67_SLEDGE_HOME_PRO_INSIDE_PARAM, M67_SLEDGE_HOME_PRO_OUTSIDE_PARAM, M67_SLEDGE_HOME_PRO_EXTRA_TIME, M67_SLEDGE_PRO_SEEK_PARAM }#endif#ifdef SLEDGE_PLAY_USE_PROFILES , { M67_SLEDGE_PLAY_PRO_TAFILT_GAIN, M67_SLEDGE_PLAY_PRO_TAFILT_POLE, M67_SLEDGE_PLAY_PRO_SLEDTIME, M67_SLEDGE_PLAY_PRO_TAWIN, M67_SLEDGE_PLAY_PRO_SLEDPULSE_FWD_TIME, M67_SLEDGE_PLAY_PRO_SLEDPULSE_FWD_AMP }#endif#ifdef SLEDGE_JUMP_USE_PROFILES , { M67_SLEDGE_JUMP_PRO_TAFILT_GAIN, M67_SLEDGE_JUMP_PRO_TAFILT_POLE, M67_SLEDGE_JUMP_PRO_SLEDTIME_1, M67_SLEDGE_JUMP_PRO_SLEDTIME_2, M67_SLEDGE_JUMP_PRO_TAWIN, M67_SLEDGE_JUMP_PRO_SLEDPULSE_FWD_TIME, M67_SLEDGE_JUMP_PRO_SLEDPULSE_BWD_TIME, M67_SLEDGE_JUMP_PRO_SLEDPULSE_FWD_AMP, M67_SLEDGE_JUMP_PRO_SLEDPULSE_BWD_AMP }#endif#ifdef RECOVER_USE_PROFILE , { M67_RECOVER_PRO_FOCUS_RECOVER_OUTSIDE_RETRIES_12CM, M67_RECOVER_PRO_FOCUS_RECOVER_OUTSIDE_RETRIES_8CM, M67_RECOVER_PRO_FOCUS_LOST_DURING_HF_RECOVER_RETRIES, M67_RECOVER_PRO_FOCUS_RECOVER_SLEDGE_PARAM, M67_RECOVER_PRO_HF_RECOVER_INITIAL_SLEDGE_PARAM_12CM, M67_RECOVER_PRO_HF_RECOVER_INITIAL_SLEDGE_PARAM_8CM, M67_RECOVER_PRO_HF_RECOVER_PLAY_SLEDGE_PARAM, M67_RECOVER_PRO_HF_RECOVER_JUMP_SLEDGE_PARAM, M67_RECOVER_PRO_HF_RECOVER_EXTRA_TIME, M67_RECOVER_PRO_ERASED_CD_RW_RECOVER_SLEDGE_PARAM, M67_RECOVER_PRO_PLL_RECOVER_SLEDGE_PARAM, M67_RECOVER_PRO_TTM_RECOVER_TRACK_COUNT_TIMEOUT, M67_RECOVER_PRO_TTM_RECOVER_TRACK_COUNT_THS }#ifdef LOADER_USE_PROFILE , { M67_LOADER_PRO_PARAM_1, M67_LOADER_PRO_PARAM_2 }#endif#endif};static SPINDLE_MOTOR_PROFILE_STRUCT const M0_spindle_motor_rom_profile ={#ifdef TTM_USE_PROFILES { M0_TTM_PRO_SPINDLE_KICK_IDLE, M0_TTM_PRO_SPINDLE_KICK_CDV_1X_IN_12CM, M0_TTM_PRO_SPINDLE_KICK_CDV_AUX_OFFSET_12CM, M0_TTM_PRO_SPINDLE_KICK_CDV_AUX_GAIN_POSITION_12CM, M0_TTM_PRO_SPINDLE_KICK_CDV_AUX_GAIN_JUMP_12CM, M0_TTM_PRO_SPINDLE_KICK_CDV_AUX_GAIN_EXTRA_12CM, M0_TTM_PRO_SPINDLE_KICK_START_12CM, M0_TTM_PRO_SPINDLE_KICK_BRAKE_12CM, M0_TTM_PRO_KICK_TIME_START_12CM, M0_TTM_PRO_KICK_TIME_BRAKE_CDV_1X_IN_12CM, M0_TTM_PRO_KICK_TIME_BRAKE_GAIN_POSITION_12CM, M0_TTM_PRO_SPINDLE_SATURATION_MAX_12CM, M0_TTM_PRO_SPINDLE_SATURATION_MIN_12CM, M0_TTM_PRO_SPINDLE_KICK_CDV_1X_IN_8CM, M0_TTM_PRO_SPINDLE_KICK_CDV_AUX_OFFSET_8CM, M0_TTM_PRO_SPINDLE_KICK_CDV_AUX_GAIN_POSITION_8CM, M0_TTM_PRO_SPINDLE_KICK_CDV_AUX_GAIN_JUMP_8CM, M0_TTM_PRO_SPINDLE_KICK_CDV_AUX_GAIN_EXTRA_8CM, M0_TTM_PRO_SPINDLE_KICK_START_8CM, M0_TTM_PRO_SPINDLE_KICK_BRAKE_8CM, M0_TTM_PRO_KICK_TIME_START_8CM, M0_TTM_PRO_KICK_TIME_BRAKE_CDV_1X_IN_8CM, M0_TTM_PRO_KICK_TIME_BRAKE_GAIN_POSITION_8CM, M0_TTM_PRO_SPINDLE_SATURATION_MAX_8CM, M0_TTM_PRO_SPINDLE_SATURATION_MIN_8CM, M0_TTM_PRO_WAIT_TIME_START, M0_TTM_PRO_WAIT_TIME_BRAKE_CLV, M0_TTM_PRO_WAIT_TIME_BRAKE_CDV, M0_TTM_PRO_START_TIMEOUT, M0_TTM_PRO_SPEED_TIMEOUT, { M0_CLV_COEFF_0, M0_CLV_COEFF_1, M0_CLV_COEFF_2_12CM, M0_CLV_COEFF_3_12CM, M0_CLV_COEFF_4_12CM, M0_CLV_COEFF_5, M0_CLV_COEFF_6, M0_CLV_COEFF_7, M0_CLV_COEFF_8, M0_CLV_COEFF_9, M0_CLV_COEFF_2_8CM, M0_CLV_COEFF_2_8CM, M0_CLV_COEFF_3_8CM }, M0_TTM_PRO_CLV_FREQ_ERR_MAX, M0_TTM_PRO_CLV_PHASE_ERR_MAX, M0_TTM_PRO_DOWNSAMPLING_FACTOR, M0_TTM_PRO_HF_PRESENCE_TIMEOUT }#endif};static SPINDLE_MOTOR_PROFILE_STRUCT const M1_spindle_motor_rom_profile ={#ifdef TTM_USE_PROFILES { M1_TTM_PRO_SPINDLE_KICK_IDLE, M1_TTM_PRO_SPINDLE_KICK_CDV_1X_IN_12CM, M1_TTM_PRO_SPINDLE_KICK_CDV_AUX_OFFSET_12CM, M1_TTM_PRO_SPINDLE_KICK_CDV_AUX_GAIN_POSITION_12CM, M1_TTM_PRO_SPINDLE_KICK_CDV_AUX_GAIN_JUMP_12CM, M1_TTM_PRO_SPINDLE_KICK_CDV_AUX_GAIN_EXTRA_12CM, M1_TTM_PRO_SPINDLE_KICK_START_12CM, M1_TTM_PRO_SPINDLE_KICK_BRAKE_12CM, M1_TTM_PRO_KICK_TIME_START_12CM, M1_TTM_PRO_KICK_TIME_BRAKE_CDV_1X_IN_12CM, M1_TTM_PRO_KICK_TIME_BRAKE_GAIN_POSITION_12CM, M1_TTM_PRO_SPINDLE_SATURATION_MAX_12CM, M1_TTM_PRO_SPINDLE_SATURATION_MIN_12CM, M1_TTM_PRO_SPINDLE_KICK_CDV_1X_IN_8CM, M1_TTM_PRO_SPINDLE_KICK_CDV_AUX_OFFSET_8CM, M1_TTM_PRO_SPINDLE_KICK_CDV_AUX_GAIN_POSITION_8CM, M1_TTM_PRO_SPINDLE_KICK_CDV_AUX_GAIN_JUMP_8CM, M1_TTM_PRO_SPINDLE_KICK_CDV_AUX_GAIN_EXTRA_8CM, M1_TTM_PRO_SPINDLE_KICK_START_8CM, M1_TTM_PRO_SPINDLE_KICK_BRAKE_8CM, M1_TTM_PRO_KICK_TIME_START_8CM, M1_TTM_PRO_KICK_TIME_BRAKE_CDV_1X_IN_8CM, M1_TTM_PRO_KICK_TIME_BRAKE_GAIN_POSITION_8CM, M1_TTM_PRO_SPINDLE_SATURATION_MAX_8CM, M1_TTM_PRO_SPINDLE_SATURATION_MIN_8CM, M1_TTM_PRO_WAIT_TIME_START, M1_TTM_PRO_WAIT_TIME_BRAKE_CLV, M1_TTM_PRO_WAIT_TIME_BRAKE_CDV, M1_TTM_PRO_START_TIMEOUT, M1_TTM_PRO_SPEED_TIMEOUT, { M1_CLV_COEFF_0, M1_CLV_COEFF_1, M1_CLV_COEFF_2_12CM, M1_CLV_COEFF_3_12CM, M1_CLV_COEFF_4_12CM,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -