2024-12-27 10:50:32 +03:00
# include <adc_tools.h>
# include <params_bsu.h>
# include <params_hwp.h>
# include "DSP281x_Examples.h" // DSP281x Examples Include File
# include "DSP281x_SWPrioritizedIsrLevels.h" // DSP281x Examples Include File
# include "DSP281x_Device.h"
# include "xp_cds_in.h"
# include "xp_cds_out.h"
# include "xp_cds_rs.h"
# include "xp_cds_tk.h"
# include "xp_cds_tk_balzam.h"
# include "xp_project.h"
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
2025-01-15 13:39:33 +03:00
# define convert_real_to_mv_hwp(nc,value) ((float)value*(float)R_ADC[0][nc] / (float)K_LEM_ADC[0][nc]*10.0)
2024-12-27 10:50:32 +03:00
////////////////////////////////////////////////////////////////
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> . <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> HWP
////////////////////////////////////////////////////////////////
void project_prepare_config ( void )
{
2025-01-15 13:39:33 +03:00
2024-12-27 10:50:32 +03:00
// write here setup for all plates
//
//
//
// ...
// project.cds_tk[0].write.sbus.ack_time.bit.delay = ...;
//////////////////////////////////////////////////////////////////
///
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> PBUS
/////////////////////////////////////////////////////////////////
# if (USE_IN_0)
project . cds_in [ 0 ] . type_plate = cds_in_type_in_1 ;
//////////////////////////////////////////////////////////////////
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> PBUS IN0 sensors
//
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . all = 0 ;
//DataFromIn
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg0 = 1 ; // use
//Gotov
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg1 = 1 ; // use
//Direction
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg2 = 1 ; // use
2025-01-15 13:39:33 +03:00
# if (ENABLE_ROTOR_SENSOR_1==1)
2024-12-27 10:50:32 +03:00
// sensor1
//SpeedS1_cnt
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg3 = 1 ; // use
//SpeedS1_cnt90
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg4 = 1 ; // use
2025-01-15 13:39:33 +03:00
# endif
2024-12-27 10:50:32 +03:00
2025-01-15 13:39:33 +03:00
//#if (ENABLE_ROTOR_SENSOR_2==1)
2024-12-27 10:50:32 +03:00
// sensor2
//SpeedS2_cnt
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg5 = 1 ; // use
//SpeedS2_cnt90
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg6 = 1 ; // use
//#endif
//#if (TYPE_CDS_XILINX_IN_0==TYPE_CDS_XILINX_SP2)
2025-01-15 13:39:33 +03:00
if ( project . cds_in [ 0 ] . type_cds_xilinx = = TYPE_CDS_XILINX_SP2 )
2024-12-27 10:50:32 +03:00
//is Channel Alive
2025-01-15 13:39:33 +03:00
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg13 = 1 ; // use
2024-12-27 10:50:32 +03:00
//#endif
if ( project . cds_in [ 0 ] . type_cds_xilinx = = TYPE_CDS_XILINX_SP6 )
{
2025-01-15 13:39:33 +03:00
//#if (ENABLE_ROTOR_SENSOR_1==1)
2024-12-27 10:50:32 +03:00
//Time since zero point S1
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg7 = 1 ; // use
// Impulses since zero point Rising S1
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg8 = 1 ; // use
//Impulses since zero point Falling S1
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg9 = 1 ; // use
2025-01-15 13:39:33 +03:00
//#endif
2024-12-27 10:50:32 +03:00
2025-01-15 13:39:33 +03:00
//#if (ENABLE_ROTOR_SENSOR_2==1)
2024-12-27 10:50:32 +03:00
//Time since zero point S2
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg10 = 1 ; // use
// Impulses since zero point Rising S2
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg11 = 1 ; // use
//Impulses since zero point Falling S2
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg12 = 1 ; // use
2025-01-15 13:39:33 +03:00
//#endif
2024-12-27 10:50:32 +03:00
//is Channel Alive
project . cds_in [ 0 ] . setup_pbus . use_reg_in_pbus . bit . reg13 = 1 ; // use
2025-01-15 13:39:33 +03:00
project . cds_in [ 0 ] . status_serial_bus . max_read_error = MAX_READ_SBUS ;
2024-12-27 10:50:32 +03:00
}
# endif
# if (USE_IN_1)
project . cds_in [ 1 ] . type_plate = cds_in_type_in_2 ;
// IN1
project . cds_in [ 1 ] . setup_pbus . use_reg_in_pbus . all = 0 ;
project . cds_in [ 1 ] . setup_pbus . use_reg_in_pbus . bit . reg0 = 1 ; // use
project . cds_in [ 1 ] . setup_pbus . use_reg_in_pbus . bit . reg1 = 0 ; // not use
project . cds_in [ 1 ] . setup_pbus . use_reg_in_pbus . bit . reg2 = 0 ; // not use
project . cds_in [ 1 ] . status_serial_bus . max_read_error = MAX_READ_SBUS ;
# endif
# if (USE_IN_2)
project . cds_in [ 2 ] . type_plate = cds_in_type_in_2 ;
// IN2
project . cds_in [ 2 ] . setup_pbus . use_reg_in_pbus . all = 0 ;
project . cds_in [ 2 ] . setup_pbus . use_reg_in_pbus . bit . reg0 = 1 ; // use
project . cds_in [ 2 ] . setup_pbus . use_reg_in_pbus . bit . reg1 = 0 ; // not use
project . cds_in [ 2 ] . setup_pbus . use_reg_in_pbus . bit . reg2 = 0 ; // not use
project . cds_in [ 2 ] . status_serial_bus . max_read_error = MAX_READ_SBUS ;
# endif
# if (USE_ROT_1)
// CDS_RS
project . cds_rs [ 0 ] . setup_pbus . use_reg_in_pbus . all = 0xffff ; // use all 16
# endif
# if (USE_ADC_0)
//ADC0
project . adc [ 0 ] . setup_pbus . use_reg_in_pbus . all = 0xffff ; // use all 16
/////////////////////////////////////////////////////////////////////////////
// SERIAL_BUS Timing setup
/////////////////////////////////////////////////////////////////////////////
project . adc [ 0 ] . status_serial_bus . max_read_error = 2 ; //MAX_READ_SBUS;
project . adc [ 0 ] . status_serial_bus . max_write_error = 2 ; //MAX_READ_SBUS;
# endif
# if (USE_ADC_1)
//ADC1
project . adc [ 1 ] . setup_pbus . use_reg_in_pbus . all = 0xffff ; // use all 16
/////////////////////////////////////////////////////////////////////////////
// SERIAL_BUS Timing setup
/////////////////////////////////////////////////////////////////////////////
project . adc [ 1 ] . status_serial_bus . max_read_error = 2 ; //MAX_READ_SBUS;
project . adc [ 1 ] . status_serial_bus . max_write_error = 2 ; //MAX_READ_SBUS;
# endif
# if (USE_ADC_2)
//ADC1
project . adc [ 1 ] . setup_pbus . use_reg_in_pbus . all = 0xffff ; // use all 16
/////////////////////////////////////////////////////////////////////////////
// SERIAL_BUS Timing setup
/////////////////////////////////////////////////////////////////////////////
project . adc [ 1 ] . status_serial_bus . max_read_error = 2 ; //MAX_READ_SBUS;
project . adc [ 1 ] . status_serial_bus . max_write_error = 2 ; //MAX_READ_SBUS;
# endif
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
# if (USE_TK_0)
//tkak 0
project . cds_tk [ 0 ] . status_serial_bus . max_read_error = MAX_READ_SBUS ; // SERIAL_BUS Timing setup
project . cds_tk [ 0 ] . setup_pbus . use_reg_in_pbus . all = 0x0 ; // PBUS all off
# if (TK_DISABLE_OUTPUT_A1==1 && TK_DISABLE_OUTPUT_B1==1)
project . cds_tk [ 0 ] . write . sbus . mask_tk_out_40pin . all = 0x0000 ; //mask key 1-use key,0-not use key
project . cds_tk [ 0 ] . write . sbus . mask_protect_tk . all = 0xff00 ; // cur+ack 1-on protect.
# else
# if (TK_DISABLE_OUTPUT_A1==0 && TK_DISABLE_OUTPUT_B1==1)
project . cds_tk [ 0 ] . write . sbus . mask_tk_out_40pin . all = 0x000f ; //mask key 1-use key,0-not use key
project . cds_tk [ 0 ] . write . sbus . mask_protect_tk . all = 0xff0f ; // cur+ack 1-on protect.
# else
# if (TK_DISABLE_OUTPUT_A1==1 && TK_DISABLE_OUTPUT_B1==0)
project . cds_tk [ 0 ] . write . sbus . mask_tk_out_40pin . all = 0x00f0 ; //mask key 1-use key,0-not use key
project . cds_tk [ 0 ] . write . sbus . mask_protect_tk . all = 0xfff0 ; // cur+ack 1-on protect.
# else
# if (TK_DISABLE_OUTPUT_A1==0 && TK_DISABLE_OUTPUT_B1==0)
project . cds_tk [ 0 ] . write . sbus . mask_tk_out_40pin . all = 0x00ff ; //mask key 1-use key,0-not use key
project . cds_tk [ 0 ] . write . sbus . mask_protect_tk . all = 0xffff ; // cur+ack 1-on protect.
# endif
# endif
# endif
# endif
# if (TKAK0_OFF_PROTECT==1)
project . cds_tk [ 0 ] . write . sbus . mask_protect_tk . all = 0x0000 ; // cur+ack 1-on protect.
# endif
project . cds_tk [ 0 ] . write . sbus . ack_time . bit . time = ( int ) ( TK_ACKN_TIME_MKS / 0.02 ) ;
project . cds_tk [ 0 ] . write . sbus . dead_min_time . bit . mintime = ( int ) ( TK_MIN_TIME_MKS / DIV_TIME_TK ) ;
project . cds_tk [ 0 ] . write . sbus . dead_min_time . bit . deadtime = ( int ) ( TK_DEAD_TIME_MKS / DIV_TIME_TK ) ;
# if (TKAK0_OFF_PROTECT==1)
project . cds_tk [ 0 ] . write . sbus . protect_error . bit . enable_err_power = 0 ;
project . cds_tk [ 0 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
project . cds_tk [ 0 ] . write . sbus . protect_error . bit . disable_err_hwp = 0 ;
project . cds_tk [ 0 ] . write . sbus . protect_error . bit . disable_err0_in = 0 ;
project . cds_tk [ 0 ] . write . sbus . protect_error . bit . disable_err_mintime = 0 ;
2025-01-15 13:39:33 +03:00
project . cds_tk [ 0 ] . write . sbus . protect_error . bit . enable_line_err = 1 ;
2024-12-27 10:50:32 +03:00
# else
project . cds_tk [ 0 ] . write . sbus . protect_error . bit . enable_err_power = 1 ;
project . cds_tk [ 0 ] . write . sbus . protect_error . bit . disable_err_hwp = 1 ;
project . cds_tk [ 0 ] . write . sbus . protect_error . bit . disable_err0_in = 1 ;
project . cds_tk [ 0 ] . write . sbus . protect_error . bit . disable_err_mintime = 1 ;
project . cds_tk [ 0 ] . write . sbus . protect_error . bit . enable_line_err = 1 ;
// <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ! <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !
if ( project . cds_tk [ 0 ] . type_cds_xilinx = = TYPE_CDS_XILINX_SP6 )
project . cds_tk [ 0 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
else
project . cds_tk [ 0 ] . write . sbus . protect_error . bit . enable_err_switch = 1 ;
# endif
# endif
# if (USE_TK_1)
//////////////////////////////////////////////////////////////
// tkak1
project . cds_tk [ 1 ] . status_serial_bus . max_read_error = MAX_READ_SBUS ; // SERIAL_BUS Timing setup
project . cds_tk [ 1 ] . setup_pbus . use_reg_in_pbus . all = 0x0 ; // PBUS all off
# if (TK_DISABLE_OUTPUT_C1==1 && TK_DISABLE_OUTPUT_A2==1)
project . cds_tk [ 1 ] . write . sbus . mask_tk_out_40pin . all = 0x0000 ; //mask key 1-use key,0-not use key
project . cds_tk [ 1 ] . write . sbus . mask_protect_tk . all = 0xff00 ; // cur+ack 1-on protect.
# else
# if (TK_DISABLE_OUTPUT_C1==0 && TK_DISABLE_OUTPUT_A2==1)
project . cds_tk [ 1 ] . write . sbus . mask_tk_out_40pin . all = 0x000f ; //mask key 1-use key,0-not use key
project . cds_tk [ 1 ] . write . sbus . mask_protect_tk . all = 0xff0f ; // cur+ack 1-on protect.
# else
# if (TK_DISABLE_OUTPUT_C1==1 && TK_DISABLE_OUTPUT_A2==0)
project . cds_tk [ 1 ] . write . sbus . mask_tk_out_40pin . all = 0x00f0 ; //mask key 1-use key,0-not use key
project . cds_tk [ 1 ] . write . sbus . mask_protect_tk . all = 0xfff0 ; // cur+ack 1-on protect.
# else
# if (TK_DISABLE_OUTPUT_C1==0 && TK_DISABLE_OUTPUT_A2==0)
project . cds_tk [ 1 ] . write . sbus . mask_tk_out_40pin . all = 0x00ff ; //mask key 1-use key,0-not use key
project . cds_tk [ 1 ] . write . sbus . mask_protect_tk . all = 0xffff ; // cur+ack 1-on protect.
# endif
# endif
# endif
# endif
# if (TKAK1_OFF_PROTECT==1)
project . cds_tk [ 1 ] . write . sbus . mask_protect_tk . all = 0x0000 ; // cur+ack 1-on protect.
# endif
project . cds_tk [ 1 ] . write . sbus . ack_time . bit . time = ( int ) ( TK_ACKN_TIME_MKS / 0.02 ) ;
project . cds_tk [ 1 ] . write . sbus . dead_min_time . bit . mintime = ( int ) ( TK_MIN_TIME_MKS / DIV_TIME_TK ) ;
project . cds_tk [ 1 ] . write . sbus . dead_min_time . bit . deadtime = ( int ) ( TK_DEAD_TIME_MKS / DIV_TIME_TK ) ;
# if (TKAK1_OFF_PROTECT==1)
project . cds_tk [ 1 ] . write . sbus . protect_error . bit . enable_err_power = 0 ;
project . cds_tk [ 1 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
project . cds_tk [ 1 ] . write . sbus . protect_error . bit . disable_err_hwp = 0 ;
project . cds_tk [ 1 ] . write . sbus . protect_error . bit . disable_err0_in = 0 ;
project . cds_tk [ 1 ] . write . sbus . protect_error . bit . disable_err_mintime = 0 ;
2025-01-15 13:39:33 +03:00
project . cds_tk [ 1 ] . write . sbus . protect_error . bit . enable_line_err = 1 ;
2024-12-27 10:50:32 +03:00
# else
project . cds_tk [ 1 ] . write . sbus . protect_error . bit . enable_err_power = 1 ;
project . cds_tk [ 1 ] . write . sbus . protect_error . bit . disable_err_hwp = 1 ;
project . cds_tk [ 1 ] . write . sbus . protect_error . bit . disable_err0_in = 1 ;
project . cds_tk [ 1 ] . write . sbus . protect_error . bit . disable_err_mintime = 1 ;
project . cds_tk [ 1 ] . write . sbus . protect_error . bit . enable_line_err = 1 ;
// <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ! <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !
if ( project . cds_tk [ 1 ] . type_cds_xilinx = = TYPE_CDS_XILINX_SP6 )
project . cds_tk [ 1 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
else
project . cds_tk [ 1 ] . write . sbus . protect_error . bit . enable_err_switch = 1 ;
# endif
# endif
# if (USE_TK_2)
//////////////////////////////////////////////////////////////
// tkak2
project . cds_tk [ 2 ] . status_serial_bus . max_read_error = MAX_READ_SBUS ; // SERIAL_BUS Timing setup
project . cds_tk [ 2 ] . setup_pbus . use_reg_in_pbus . all = 0x0 ; // PBUS all off
# if (TK_DISABLE_OUTPUT_B2==1 && TK_DISABLE_OUTPUT_C2==1)
project . cds_tk [ 2 ] . write . sbus . mask_tk_out_40pin . all = 0x0000 ; //mask key 1-use key,0-not use key
project . cds_tk [ 2 ] . write . sbus . mask_protect_tk . all = 0xff00 ; // cur+ack 1-on protect.
# else
# if (TK_DISABLE_OUTPUT_B2==0 && TK_DISABLE_OUTPUT_C2==1)
project . cds_tk [ 2 ] . write . sbus . mask_tk_out_40pin . all = 0x000f ; //mask key 1-use key,0-not use key
project . cds_tk [ 2 ] . write . sbus . mask_protect_tk . all = 0xff0f ; // cur+ack 1-on protect.
# else
# if (TK_DISABLE_OUTPUT_B2==1 && TK_DISABLE_OUTPUT_C2==0)
project . cds_tk [ 2 ] . write . sbus . mask_tk_out_40pin . all = 0x00f0 ; //mask key 1-use key,0-not use key
project . cds_tk [ 2 ] . write . sbus . mask_protect_tk . all = 0xfff0 ; // cur+ack 1-on protect.
# else
# if (TK_DISABLE_OUTPUT_B2==0 && TK_DISABLE_OUTPUT_C2==0)
project . cds_tk [ 2 ] . write . sbus . mask_tk_out_40pin . all = 0x00ff ; //mask key 1-use key,0-not use key
project . cds_tk [ 2 ] . write . sbus . mask_protect_tk . all = 0xffff ; // cur+ack 1-on protect.
# endif
# endif
# endif
# endif
# if (TKAK1_OFF_PROTECT==1)
project . cds_tk [ 2 ] . write . sbus . mask_protect_tk . all = 0x0000 ; // cur+ack 1-on protect.
# endif
project . cds_tk [ 2 ] . write . sbus . ack_time . bit . time = ( int ) ( TK_ACKN_TIME_MKS / 0.02 ) ;
project . cds_tk [ 2 ] . write . sbus . dead_min_time . bit . mintime = ( int ) ( TK_MIN_TIME_MKS / DIV_TIME_TK ) ;
project . cds_tk [ 2 ] . write . sbus . dead_min_time . bit . deadtime = ( int ) ( TK_DEAD_TIME_MKS / DIV_TIME_TK ) ;
# if (TKAK2_OFF_PROTECT==1)
project . cds_tk [ 2 ] . write . sbus . protect_error . bit . enable_err_power = 0 ;
project . cds_tk [ 2 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
project . cds_tk [ 2 ] . write . sbus . protect_error . bit . disable_err_hwp = 0 ;
project . cds_tk [ 2 ] . write . sbus . protect_error . bit . disable_err0_in = 0 ;
project . cds_tk [ 2 ] . write . sbus . protect_error . bit . disable_err_mintime = 0 ;
2025-01-15 13:39:33 +03:00
project . cds_tk [ 2 ] . write . sbus . protect_error . bit . enable_line_err = 1 ;
2024-12-27 10:50:32 +03:00
# else
project . cds_tk [ 2 ] . write . sbus . protect_error . bit . enable_err_power = 1 ;
project . cds_tk [ 2 ] . write . sbus . protect_error . bit . disable_err_hwp = 1 ;
project . cds_tk [ 2 ] . write . sbus . protect_error . bit . disable_err0_in = 1 ;
project . cds_tk [ 2 ] . write . sbus . protect_error . bit . disable_err_mintime = 1 ;
project . cds_tk [ 2 ] . write . sbus . protect_error . bit . enable_line_err = 1 ;
// <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ! <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !
if ( project . cds_tk [ 2 ] . type_cds_xilinx = = TYPE_CDS_XILINX_SP6 )
project . cds_tk [ 2 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
else
project . cds_tk [ 2 ] . write . sbus . protect_error . bit . enable_err_switch = 1 ;
# endif
# endif
# if (USE_TK_3)
//////////////////////////////////////////////////////////////
// <20> <> <EFBFBD> <20> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
project . cds_tk [ 3 ] . status_serial_bus . max_read_error = MAX_READ_SBUS ; // SERIAL_BUS Timing setup
// project.cds_tk[3].setup_pbus.use_reg_in_pbus.all = 0x0; // PBUS all off
# if (TKAK3_OFF_PROTECT==1)
project . cds_tk [ 3 ] . write . sbus . mask_protect_tk . all = 0x0000 ; // only break ack+cur
# else
project . cds_tk [ 3 ] . write . sbus . mask_protect_tk . all = 0x0303 ; // only break ack+cur
# endif
project . cds_tk [ 3 ] . write . sbus . mask_tk_out_40pin . all = 0x00cf ; // optical bus+break
project . cds_tk [ 3 ] . write . sbus . ack_time . bit . time = ( int ) ( TK_ACKN_TIME_MKS / 0.02 ) ;
project . cds_tk [ 3 ] . write . sbus . dead_min_time . bit . mintime = ( int ) ( TK_MIN_TIME_MKS / DIV_TIME_TK ) ;
project . cds_tk [ 3 ] . write . sbus . dead_min_time . bit . deadtime = ( int ) ( TK_DEAD_TIME_MKS / DIV_TIME_TK ) ;
# if (TKAK3_OFF_PROTECT==1)
project . cds_tk [ 3 ] . write . sbus . protect_error . bit . enable_err_power = 0 ;
project . cds_tk [ 3 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
project . cds_tk [ 3 ] . write . sbus . protect_error . bit . disable_err_hwp = 0 ;
project . cds_tk [ 3 ] . write . sbus . protect_error . bit . disable_err0_in = 0 ;
project . cds_tk [ 3 ] . write . sbus . protect_error . bit . disable_err_mintime = 0 ;
2025-01-15 13:39:33 +03:00
project . cds_tk [ 3 ] . write . sbus . protect_error . bit . enable_line_err = 1 ;
2024-12-27 10:50:32 +03:00
# else
project . cds_tk [ 3 ] . write . sbus . protect_error . bit . enable_err_power = 1 ;
project . cds_tk [ 3 ] . write . sbus . protect_error . bit . disable_err_hwp = 1 ;
project . cds_tk [ 3 ] . write . sbus . protect_error . bit . disable_err0_in = 1 ;
project . cds_tk [ 3 ] . write . sbus . protect_error . bit . disable_err_mintime = 1 ;
project . cds_tk [ 3 ] . write . sbus . protect_error . bit . enable_line_err = 1 ;
// <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ! <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !
if ( project . cds_tk [ 3 ] . type_cds_xilinx = = TYPE_CDS_XILINX_SP6 )
project . cds_tk [ 3 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
else
project . cds_tk [ 3 ] . write . sbus . protect_error . bit . enable_err_switch = 1 ;
# endif
# endif
2025-01-15 13:39:33 +03:00
2024-12-27 10:50:32 +03:00
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
// Out plane setup
# if (USE_OUT_0)
//////////////////////////////////////////////////////////////
// out0
project . cds_out [ 0 ] . status_serial_bus . max_read_error = MAX_READ_SBUS ; // SERIAL_BUS Timing setup
# if (OUT0_OFF_PROTECT==1)
project . cds_out [ 0 ] . write . sbus . protect_error . bit . disable_err0_in = 0 ;
project . cds_out [ 0 ] . write . sbus . protect_error . bit . disable_err_hwp = 0 ;
project . cds_out [ 0 ] . write . sbus . protect_error . bit . enable_err_power = 0 ;
project . cds_out [ 0 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
# else
project . cds_out [ 0 ] . write . sbus . protect_error . bit . enable_err_power = 1 ;
project . cds_out [ 0 ] . write . sbus . protect_error . bit . disable_err0_in = 1 ;
project . cds_out [ 0 ] . write . sbus . protect_error . bit . disable_err_hwp = 1 ;
project . cds_out [ 0 ] . write . sbus . protect_error . bit . enable_err_switch = 1 ;
// <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ! <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !
if ( project . cds_out [ 0 ] . type_cds_xilinx = = TYPE_CDS_XILINX_SP6 )
project . cds_out [ 0 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
else
project . cds_out [ 0 ] . write . sbus . protect_error . bit . enable_err_switch = 1 ;
# endif
project . cds_out [ 0 ] . write . sbus . enable_protect_out . all = 0x0000 ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> OUT <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ERR
project . cds_out [ 0 ] . write . sbus . enable_protect_out . bit . dout0 = 1 ; // <20> <> <EFBFBD> <20> <> <EFBFBD> . <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
project . cds_out [ 0 ] . write . sbus . enable_protect_out . bit . dout6 = 1 ; // 6 - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> QTV
// project.cds_out[0].write.sbus.enable_protect_out.bit.dout7 = 1; // QTV OFF
project . cds_out [ 0 ] . write . sbus . enable_protect_out . bit . dout8 = 1 ; // 8 - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> QTV
project . cds_out [ 0 ] . write . sbus . enable_protect_out . bit . dout13 = 1 ; // 13 - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
# endif
# if (USE_OUT_1)
// out1
project . cds_out [ 1 ] . status_serial_bus . max_read_error = MAX_READ_SBUS ; // SERIAL_BUS Timing setup
project . cds_out [ 1 ] . write . sbus . protect_error . bit . enable_err_power = 1 ;
project . cds_out [ 1 ] . write . sbus . protect_error . bit . disable_err0_in = 1 ;
project . cds_out [ 1 ] . write . sbus . protect_error . bit . disable_err_hwp = 1 ;
project . cds_out [ 1 ] . write . sbus . protect_error . bit . enable_err_switch = 1 ;
project . cds_out [ 1 ] . write . sbus . protect_error . bit . enable_err_power = 1 ;
// <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ! <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !
if ( project . cds_out [ 1 ] . type_cds_xilinx = = TYPE_CDS_XILINX_SP6 )
project . cds_out [ 1 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
else
project . cds_out [ 1 ] . write . sbus . protect_error . bit . enable_err_switch = 1 ;
project . cds_out [ 1 ] . write . sbus . enable_protect_out . all = 0x0000 ;
# endif
# if (USE_OUT_2)
//out2
project . cds_out [ 2 ] . status_serial_bus . max_read_error = MAX_READ_SBUS ; // SERIAL_BUS Timing setup
project . cds_out [ 2 ] . write . sbus . protect_error . bit . enable_err_power = 1 ;
project . cds_out [ 2 ] . write . sbus . protect_error . bit . disable_err0_in = 1 ;
project . cds_out [ 2 ] . write . sbus . protect_error . bit . disable_err_hwp = 1 ;
project . cds_out [ 2 ] . write . sbus . protect_error . bit . enable_err_switch = 1 ;
project . cds_out [ 2 ] . write . sbus . protect_error . bit . enable_err_power = 1 ;
// <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ! <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !
if ( project . cds_out [ 2 ] . type_cds_xilinx = = TYPE_CDS_XILINX_SP6 )
project . cds_out [ 2 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
else
project . cds_out [ 2 ] . write . sbus . protect_error . bit . enable_err_switch = 1 ;
project . cds_out [ 2 ] . write . sbus . enable_protect_out . all = 0x0000 ;
# endif
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
/////////////
# if (USE_IN_0)
/////////////////////////////////////////////////////////////////////
// setup incremental sensor rotor
/////////////////////////////////////////////////////////////////////
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
// 1 - 20ns 0 - 2us.
project . cds_in [ 0 ] . write . sbus . enabled_channels . bit . discret = 0 ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> In0- <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> , In1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , In2-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 90<39> <30> <EFBFBD> <EFBFBD> .
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> 67 <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <>
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> In1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , In2-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 90<39> <30> <EFBFBD> <EFBFBD> . <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
project . cds_in [ 0 ] . write . sbus . enabled_channels . bit . sens_1_direct_ch = 1 ; //1
project . cds_in [ 0 ] . write . sbus . enabled_channels . bit . sens_1_direct_ch_90deg = 1 ; //0
project . cds_in [ 0 ] . write . sbus . enabled_channels . bit . sens_1_inv_ch = 0 ;
project . cds_in [ 0 ] . write . sbus . enabled_channels . bit . sens_1_inv_ch_90deg = 0 ;
project . cds_in [ 0 ] . write . sbus . enabled_channels . bit . sens_2_direct_ch = 1 ;
project . cds_in [ 0 ] . write . sbus . enabled_channels . bit . sens_2_direct_ch_90deg = 1 ;
project . cds_in [ 0 ] . write . sbus . enabled_channels . bit . sens_2_inv_ch = 0 ;
project . cds_in [ 0 ] . write . sbus . enabled_channels . bit . sens_2_inv_ch_90deg = 0 ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> In1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , In2-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 90<39> <30> <EFBFBD> <EFBFBD> .
// <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 0xf
2025-01-15 13:39:33 +03:00
project . cds_in [ 0 ] . write . sbus . first_sensor . bit . direct_ch = 0x1 ; // in2
project . cds_in [ 0 ] . write . sbus . first_sensor . bit . direct_ch_90deg = 0x2 ; // in1
2024-12-27 10:50:32 +03:00
// <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
project . cds_in [ 0 ] . write . sbus . first_sensor . bit . inv_ch = 0x0f ; // in0
project . cds_in [ 0 ] . write . sbus . first_sensor . bit . inv_ch_90deg = 0x0f ; // in0
// <20> <> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> In2-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , In1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 90<39> <30> <EFBFBD> <EFBFBD> .
2025-01-15 13:39:33 +03:00
project . cds_in [ 0 ] . write . sbus . second_sensor . bit . direct_ch = 0x02 ; // in0
project . cds_in [ 0 ] . write . sbus . second_sensor . bit . direct_ch_90deg = 0x01 ; // in1
2024-12-27 10:50:32 +03:00
// <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
project . cds_in [ 0 ] . write . sbus . second_sensor . bit . inv_ch = 0x0f ; // in0
project . cds_in [ 0 ] . write . sbus . second_sensor . bit . inv_ch_90deg = 0x0f ; // in0
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2025-01-15 13:39:33 +03:00
project . cds_in [ 0 ] . write . sbus . zero_sensors . bit . for_sensor1 = 0x0 ; //
2024-12-27 10:50:32 +03:00
project . cds_in [ 0 ] . write . sbus . zero_sensors . bit . for_sensor2 = 0x0f ; //
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
project . cds_in [ 0 ] . write . sbus . zero_sensors . bit . enable_sensor1 = 1 ;
project . cds_in [ 0 ] . write . sbus . zero_sensors . bit . enable_sensor2 = 0 ;
/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// In plane setup
//in0
# if (IN0_OFF_PROTECT==1)
project . cds_in [ 0 ] . write . sbus . protect_error . bit . disable_err0_in = 0 ;
project . cds_in [ 0 ] . write . sbus . protect_error . bit . disable_err_hwp = 0 ;
project . cds_in [ 0 ] . write . sbus . protect_error . bit . enable_err_power = 0 ;
project . cds_in [ 0 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
# else
project . cds_in [ 0 ] . write . sbus . protect_error . bit . disable_err0_in = 1 ;
project . cds_in [ 0 ] . write . sbus . protect_error . bit . disable_err_hwp = 1 ;
// <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ! <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !
if ( project . cds_in [ 0 ] . type_cds_xilinx = = TYPE_CDS_XILINX_SP6 )
{
project . cds_in [ 0 ] . write . sbus . protect_error . bit . enable_err_power = 0 ;
project . cds_in [ 0 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
}
else
{
project . cds_in [ 0 ] . write . sbus . protect_error . bit . enable_err_power = 1 ;
project . cds_in [ 0 ] . write . sbus . protect_error . bit . enable_err_switch = 1 ;
}
# endif
# endif
# if (USE_IN_1)
// in1
# if (IN1_OFF_PROTECT==1)
project . cds_in [ 1 ] . write . sbus . protect_error . bit . disable_err0_in = 0 ;
project . cds_in [ 1 ] . write . sbus . protect_error . bit . disable_err_hwp = 0 ;
project . cds_in [ 1 ] . write . sbus . protect_error . bit . enable_err_power = 0 ;
project . cds_in [ 1 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
# else
project . cds_in [ 1 ] . write . sbus . protect_error . bit . disable_err0_in = 1 ;
project . cds_in [ 1 ] . write . sbus . protect_error . bit . disable_err_hwp = 1 ;
project . cds_in [ 1 ] . write . sbus . protect_error . bit . enable_err_power = 1 ;
// <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ! <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !
if ( project . cds_in [ 1 ] . type_cds_xilinx = = TYPE_CDS_XILINX_SP6 )
project . cds_in [ 1 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
else
project . cds_in [ 1 ] . write . sbus . protect_error . bit . enable_err_switch = 1 ;
# endif
# endif
# if (USE_IN_2)
// in2
project . cds_in [ 2 ] . write . sbus . protect_error . bit . disable_err0_in = 1 ;
project . cds_in [ 2 ] . write . sbus . protect_error . bit . disable_err_hwp = 1 ;
project . cds_in [ 2 ] . write . sbus . protect_error . bit . enable_err_power = 1 ;
// <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ! <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> !
if ( project . cds_in [ 2 ] . type_cds_xilinx = = TYPE_CDS_XILINX_SP6 )
project . cds_in [ 2 ] . write . sbus . protect_error . bit . enable_err_switch = 0 ;
else
project . cds_in [ 2 ] . write . sbus . protect_error . bit . enable_err_switch = 1 ;
# endif
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
# if (USE_HWP_0)
// HWP setup
// project.hwp[0].write.HWP_Speed = MODE_HWP_SPEED_AUTO;//MODE_HWP_SPEED_NORMAL;// MODE_HWP_SPEED_AUTO; // MODE_HWP_SPEED_SLOW;//MODE_HWP_SPEED_NORMAL;// MODE_HWP_SPEED_SLOW;
project . hwp [ 0 ] . write . test_all_channel = 1 ;
project . hwp [ 0 ] . write . use_channel . minus . all = 0xfffc ;
project . hwp [ 0 ] . write . use_channel . plus . all = 0xffff ;
/*
project . hwp [ 0 ] . write . use_channel . plus . bit . ch0 = 1 ;
project . hwp [ 0 ] . write . use_channel . minus . bit . ch5 = 1 ;
project . hwp [ 0 ] . write . use_channel . plus . bit . ch5 = 1 ;
project . hwp [ 0 ] . write . use_channel . minus . bit . ch11 = 1 ;
project . hwp [ 0 ] . write . use_channel . plus . bit . ch11 = 1 ;
*/
project . hwp [ 0 ] . write . values [ 0 ] . plus = convert_real_to_mv_hwp ( 0 , LEVEL_HWP_U_ZPT ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 0 ] . minus = convert_real_to_mv_hwp ( 0 , LEVEL_HWP_U_ZPT ) ;
project . hwp [ 0 ] . write . values [ 1 ] . plus = convert_real_to_mv_hwp ( 1 , LEVEL_HWP_U_ZPT ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 1 ] . minus = convert_real_to_mv_hwp ( 1 , LEVEL_HWP_U_ZPT ) ;
project . hwp [ 0 ] . write . values [ 2 ] . plus = convert_real_to_mv_hwp ( 2 , LEVEL_HWP_I_AF ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 2 ] . minus = convert_real_to_mv_hwp ( 2 , LEVEL_HWP_I_AF ) ;
project . hwp [ 0 ] . write . values [ 3 ] . plus = convert_real_to_mv_hwp ( 3 , LEVEL_HWP_I_AF ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 3 ] . minus = convert_real_to_mv_hwp ( 3 , LEVEL_HWP_I_AF ) ;
project . hwp [ 0 ] . write . values [ 4 ] . plus = convert_real_to_mv_hwp ( 4 , LEVEL_HWP_I_AF ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 4 ] . minus = convert_real_to_mv_hwp ( 4 , LEVEL_HWP_I_AF ) ;
project . hwp [ 0 ] . write . values [ 5 ] . plus = convert_real_to_mv_hwp ( 5 , LEVEL_HWP_I_AF ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 5 ] . minus = convert_real_to_mv_hwp ( 5 , LEVEL_HWP_I_AF ) ;
project . hwp [ 0 ] . write . values [ 6 ] . plus = convert_real_to_mv_hwp ( 6 , LEVEL_HWP_I_AF ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 6 ] . minus = convert_real_to_mv_hwp ( 6 , LEVEL_HWP_I_AF ) ;
project . hwp [ 0 ] . write . values [ 7 ] . plus = convert_real_to_mv_hwp ( 7 , LEVEL_HWP_I_AF ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 7 ] . minus = convert_real_to_mv_hwp ( 7 , LEVEL_HWP_I_AF ) ;
project . hwp [ 0 ] . write . values [ 8 ] . plus = convert_real_to_mv_hwp ( 8 , LEVEL_HWP_I_ZPT ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 8 ] . minus = convert_real_to_mv_hwp ( 8 , LEVEL_HWP_I_ZPT ) ;
project . hwp [ 0 ] . write . values [ 9 ] . plus = convert_real_to_mv_hwp ( 9 , LEVEL_HWP_I_ZPT ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 9 ] . minus = convert_real_to_mv_hwp ( 9 , LEVEL_HWP_I_ZPT ) ;
project . hwp [ 0 ] . write . use_channel . minus . bit . ch9 = 0 ;
project . hwp [ 0 ] . write . use_channel . plus . bit . ch9 = 0 ;
project . hwp [ 0 ] . write . values [ 10 ] . plus = convert_real_to_mv_hwp ( 10 , LEVEL_HWP_U_ABC ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 10 ] . minus = convert_real_to_mv_hwp ( 10 , LEVEL_HWP_U_ABC ) ;
project . hwp [ 0 ] . write . values [ 11 ] . plus = convert_real_to_mv_hwp ( 11 , LEVEL_HWP_U_ABC ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 11 ] . minus = convert_real_to_mv_hwp ( 11 , LEVEL_HWP_U_ABC ) ;
project . hwp [ 0 ] . write . values [ 12 ] . plus = convert_real_to_mv_hwp ( 12 , LEVEL_HWP_U_ABC ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 12 ] . minus = convert_real_to_mv_hwp ( 12 , LEVEL_HWP_U_ABC ) ;
project . hwp [ 0 ] . write . values [ 13 ] . plus = convert_real_to_mv_hwp ( 13 , LEVEL_HWP_U_ABC ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 13 ] . minus = convert_real_to_mv_hwp ( 13 , LEVEL_HWP_U_ABC ) ;
project . hwp [ 0 ] . write . values [ 14 ] . plus = convert_real_to_mv_hwp ( 14 , LEVEL_HWP_I_BREAK ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 14 ] . minus = convert_real_to_mv_hwp ( 14 , LEVEL_HWP_I_BREAK ) ;
project . hwp [ 0 ] . write . values [ 15 ] . plus = convert_real_to_mv_hwp ( 15 , LEVEL_HWP_I_BREAK ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 0 ] . write . values [ 15 ] . minus = convert_real_to_mv_hwp ( 15 , LEVEL_HWP_I_BREAK ) ;
# endif
//////////////////////////////////////////////////////////////
# if (USE_HWP_1)
// HWP setup
// project.hwp[1].write.HWP_Speed = MODE_HWP_SPEED_AUTO;//MODE_HWP_SPEED_NORMAL;// MODE_HWP_SPEED_SLOW;
project . hwp [ 1 ] . write . test_all_channel = 1 ;
project . hwp [ 1 ] . write . use_channel . minus . all = 0xfffc ;
project . hwp [ 1 ] . write . use_channel . plus . all = 0xffff ;
project . hwp [ 1 ] . write . values [ 0 ] . plus = convert_real_to_mv_hwp ( 0 , LEVEL_HWP_U_ZPT ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 0 ] . minus = convert_real_to_mv_hwp ( 0 , LEVEL_HWP_U_ZPT ) ;
project . hwp [ 1 ] . write . values [ 1 ] . plus = convert_real_to_mv_hwp ( 1 , LEVEL_HWP_U_ZPT ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 1 ] . minus = convert_real_to_mv_hwp ( 1 , LEVEL_HWP_U_ZPT ) ;
project . hwp [ 1 ] . write . values [ 2 ] . plus = convert_real_to_mv_hwp ( 2 , LEVEL_HWP_I_AF ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 2 ] . minus = convert_real_to_mv_hwp ( 2 , LEVEL_HWP_I_AF ) ;
project . hwp [ 1 ] . write . values [ 3 ] . plus = convert_real_to_mv_hwp ( 3 , LEVEL_HWP_I_AF ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 3 ] . minus = convert_real_to_mv_hwp ( 3 , LEVEL_HWP_I_AF ) ;
project . hwp [ 1 ] . write . values [ 4 ] . plus = convert_real_to_mv_hwp ( 4 , LEVEL_HWP_I_AF ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 4 ] . minus = convert_real_to_mv_hwp ( 4 , LEVEL_HWP_I_AF ) ;
project . hwp [ 1 ] . write . values [ 5 ] . plus = convert_real_to_mv_hwp ( 5 , LEVEL_HWP_I_AF ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 5 ] . minus = convert_real_to_mv_hwp ( 5 , LEVEL_HWP_I_AF ) ;
project . hwp [ 1 ] . write . values [ 6 ] . plus = convert_real_to_mv_hwp ( 6 , LEVEL_HWP_I_AF ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 6 ] . minus = convert_real_to_mv_hwp ( 6 , LEVEL_HWP_I_AF ) ;
project . hwp [ 1 ] . write . values [ 7 ] . plus = convert_real_to_mv_hwp ( 7 , LEVEL_HWP_I_AF ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 7 ] . minus = convert_real_to_mv_hwp ( 7 , LEVEL_HWP_I_AF ) ;
project . hwp [ 1 ] . write . values [ 8 ] . plus = convert_real_to_mv_hwp ( 8 , LEVEL_HWP_I_ZPT ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 8 ] . minus = convert_real_to_mv_hwp ( 8 , LEVEL_HWP_I_ZPT ) ;
project . hwp [ 1 ] . write . values [ 9 ] . plus = convert_real_to_mv_hwp ( 9 , LEVEL_HWP_I_ZPT ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 9 ] . minus = convert_real_to_mv_hwp ( 9 , LEVEL_HWP_I_ZPT ) ;
project . hwp [ 1 ] . write . values [ 10 ] . plus = convert_real_to_mv_hwp ( 10 , LEVEL_HWP_U_ABC ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 10 ] . minus = convert_real_to_mv_hwp ( 10 , LEVEL_HWP_U_ABC ) ;
project . hwp [ 1 ] . write . values [ 11 ] . plus = convert_real_to_mv_hwp ( 11 , LEVEL_HWP_U_ABC ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 11 ] . minus = convert_real_to_mv_hwp ( 11 , LEVEL_HWP_U_ABC ) ;
project . hwp [ 1 ] . write . values [ 12 ] . plus = convert_real_to_mv_hwp ( 12 , LEVEL_HWP_U_ABC ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 12 ] . minus = convert_real_to_mv_hwp ( 12 , LEVEL_HWP_U_ABC ) ;
project . hwp [ 1 ] . write . values [ 13 ] . plus = convert_real_to_mv_hwp ( 13 , LEVEL_HWP_U_ABC ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 13 ] . minus = convert_real_to_mv_hwp ( 13 , LEVEL_HWP_U_ABC ) ;
project . hwp [ 1 ] . write . values [ 14 ] . plus = convert_real_to_mv_hwp ( 14 , LEVEL_HWP_I_BREAK ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 14 ] . minus = convert_real_to_mv_hwp ( 14 , LEVEL_HWP_I_BREAK ) ;
project . hwp [ 1 ] . write . values [ 15 ] . plus = convert_real_to_mv_hwp ( 15 , LEVEL_HWP_I_BREAK ) ; //Uzpt1 //2 3000V - 845; 3977V - 1120; 2800V - 789; 2600V - 732
project . hwp [ 1 ] . write . values [ 15 ] . minus = convert_real_to_mv_hwp ( 15 , LEVEL_HWP_I_BREAK ) ;
# endif
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//Incremental sensor_init
2025-01-15 13:39:33 +03:00
# if (ENABLE_ROTOR_SENSOR_1==1)
2024-12-27 10:50:32 +03:00
inc_sensor . use_sensor1 = 1 ;
# else
inc_sensor . use_sensor1 = 0 ;
# endif
2025-01-15 13:39:33 +03:00
# if (ENABLE_ROTOR_SENSOR_2==1)
2024-12-27 10:50:32 +03:00
inc_sensor . use_sensor2 = 1 ;
# else
inc_sensor . use_sensor2 = 0 ;
# endif
# if (ENABLE_COMBO_SENSOR_1_TO_2==1)
inc_sensor . use_sensor2 = 1 ;
# endif
# if (ENABLE_COMBO_SENSOR_2_TO_1==1)
inc_sensor . use_sensor1 = 1 ;
# endif
inc_sensor . pm67regs . write_comand_reg . bit . set_sampling_time = SAMPLING_TIME_MS ;
2025-01-15 13:39:33 +03:00
inc_sensor . pm67regs . write_comand_reg . bit . filter_sensitivity = 5 ; //0x0; //<2F> <> 170 <20> <> .<2E> <> <EFBFBD>
2024-12-27 10:50:32 +03:00
inc_sensor . set ( & inc_sensor ) ;
//Rotation sensor_init
/*
rotation_sensor . in_plane . cds_in = & project . cds_in [ 0 ] ;
rotation_sensor . use_sensor1 = 1 ;
rotation_sensor . use_sensor2 = 1 ;
rotation_sensor . use_angle_plane = 0 ;
rotation_sensor . in_plane . write . sbus . enabled_channels . bit . sens_1_direct_ch = 1 ;
rotation_sensor . in_plane . write . sbus . enabled_channels . bit . sens_2_direct_ch_90deg = 1 ;
// rotation_sensor.in_plane.write.sbus.enabled_channels.bit.sens_1_direct_ch_90deg = 1;
// rotation_sensor.in_plane.write.sbus.enabled_channels.bit.sens_2_direct_ch = 1;
// rotation_sensor.in_plane.write.sbus.enabled_channels.bit.sens_2_direct_ch_90deg = 1;
rotation_sensor . in_plane . write . sbus . first_sensor_inputs . bit . direct_ch = 0 ;
// rotation_sensor.in_plane.write.sbus.first_sensor_inputs.bit.direct_ch_90deg = 1;
// rotation_sensor.in_plane.write.sbus.second_sensor_inputs.bit.direct_ch = 3;
rotation_sensor . in_plane . write . sbus . second_sensor_inputs . bit . direct_ch_90deg = 1 ;
rotation_sensor . in_plane . write . regs . comand_reg . bit . set_sampling_time = SAMPLING_TIME_MS ;
rotation_sensor . in_plane . write . regs . comand_reg . bit . filter_sensitivity = 0xF ; //<2F> <> 170 <20> <> .<2E> <> <EFBFBD>
*/
//filter 1 ~ 20nsec
/* rotation_sensor.rotation_plane.cds_rs = &project.cds_rs[0];
rotation_sensor . rotation_plane . write . sbus . config . all = 0 ;
rotation_sensor . rotation_plane . write . sbus . config . bit . channel1_enable = 1 ;
rotation_sensor . rotation_plane . write . sbus . config . bit . plane_is_master = 1 ;
rotation_sensor . rotation_plane . write . sbus . config . bit . survey_time = 49 ;
rotation_sensor . rotation_plane . write . sbus . config . bit . transmition_speed = TS250 ;
*/
// rotation_sensor.set(&rotation_sensor);
if ( project . controller . status ! = component_Ready )
return ;
// project.load_cfg_to_plates();
}