diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2020-06-04 17:10:23 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2020-06-04 17:10:23 +0300 |
| commit | 04ae63e2b4f59eb350890ad8ca508e61df074d68 (patch) | |
| tree | 7447c2a026f0e7fac92c5e81feeb03971751f375 /Software/Embedded_SW | |
| parent | 46f46d91c521e66c203b31110a21b94024b2166d (diff) | |
| parent | 4be8df6d96e46f75834752f54e50dcdb71faa002 (diff) | |
| download | Tango-04ae63e2b4f59eb350890ad8ca508e61df074d68.tar.gz Tango-04ae63e2b4f59eb350890ad8ca508e61df074d68.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW')
| -rw-r--r-- | Software/Embedded_SW/Embedded/DataDef.h | 3 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_Comm.h | 20 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c | 36 |
3 files changed, 58 insertions, 1 deletions
diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h index ecd04b742..c5371b413 100644 --- a/Software/Embedded_SW/Embedded/DataDef.h +++ b/Software/Embedded_SW/Embedded/DataDef.h @@ -47,6 +47,9 @@ extern bool Special_Dispensers; #define ON 1 #define OFF 0 +#define INTERNAL 0 +#define EXTERNAL 1 + enum { PASSED = 0, diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_Comm.h b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_Comm.h index 4a5b14a5d..abbbd1429 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_Comm.h +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_Comm.h @@ -700,7 +700,10 @@ #define F3_SPARE2_ROTENC_DATA_p_2_RX_msb (*((volatile short *)(FPGA3_BASE | 0x2D2))) //16 bit MSB if nessesary #define F3_SPARE2_ROTENC_DATA_p_2_TX (*((volatile short *)(FPGA3_BASE | 0x2DE))) //This register triggers a TX transmission -#define F3_Moto_Driver_SPI_DIRECTION1 (*((volatile short *)(FPGA3_BASE | 0x380))) // +//Control the motors clock source due to EMC issues +#define F3_MOTO_CLK_SRC_SEL (*((volatile short *)(FPGA3_BASE | 0x370))) //bit that control motors source selects 32Mhz or low + +#define F3_Moto_Driver_SPI_DIRECTION1 (*((volatile short *)(FPGA3_BASE | 0x380))) //This bit control of the direction of SDIO 0-4 //PWM LEDS FPGA VER 050219 #define F3_low_var_LED1 (*((volatile short *)(FPGA3_BASE | 0x390))) //Parameter for prescaler divisions - 8bit low duty cycle value for pmw @@ -1770,6 +1773,21 @@ typedef union unsigned short ushort; }F3_SPI_DIRECTION1; +//F3_MOTO_CLK_SRC_SEL +typedef union +{ + struct + { + bool RDRIVING : 1; //0 (MOTO_CLK1_2) + bool LDRIVING : 1; //1 (MOTO_CLK2_1) + bool SCREW : 1; //2 (MOTO_CLK5_1) + bool WINDER : 1; //3 (MOTO_CLK5_2) + uint16_t RESERVE : 12; //4-16 + }Motor; + unsigned short ushort; +}F3MotoClkSrcSel; + +F3MotoClkSrcSel F3_Moto_Clk_Src_Sel; //L6470_MOSI = 0x00; diff --git a/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c b/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c index 2ff84c4a6..6a51d8e10 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c +++ b/Software/Embedded_SW/Embedded/Drivers/Motors/Motor.c @@ -72,6 +72,12 @@ uint32_t MotorsInit(void) MotorConfigState[i] = false; } + //option to change itafter initialization (to solve EMC issues) in the function Control_motors_clock_source + F3_Moto_Clk_Src_Sel.Motor.LDRIVING = EXTERNAL; + F3_Moto_Clk_Src_Sel.Motor.RDRIVING = EXTERNAL; + F3_Moto_Clk_Src_Sel.Motor.SCREW = EXTERNAL; + F3_Moto_Clk_Src_Sel.Motor.WINDER = EXTERNAL; + F3_MOTO_CLK_SRC_SEL = F3_Moto_Clk_Src_Sel.ushort; return OK; } @@ -599,3 +605,33 @@ void test_Home_Pos() } */ } + +/* no need can be done with stub directly to the fpga address +uint32_t Control_motors_clock_source(TimerMotors_t motorId, bool Inetrnal_Or_External)// INTERNAL / EXTERNAL +{ + uint32_t Status = OK; + switch(motorId) + { + case HARDWARE_MOTOR_TYPE__MOTO_RDRIVING: + F3_Moto_Clk_Src_Sel.Motor.RDRIVING = Inetrnal_Or_External; + break; + case HARDWARE_MOTOR_TYPE__MOTO_LDRIVING: + F3_Moto_Clk_Src_Sel.Motor.LDRIVING = Inetrnal_Or_External; + break; + case HARDWARE_MOTOR_TYPE__MOTO_SCREW: + F3_Moto_Clk_Src_Sel.Motor.SCREW = Inetrnal_Or_External; + break; + case HARDWARE_MOTOR_TYPE__MOTO_WINDER: + F3_Moto_Clk_Src_Sel.Motor.WINDER = Inetrnal_Or_External; + break; + default: + Status = ERROR; + break; + } + + F3_MOTO_CLK_SRC_SEL = F3_Moto_Clk_Src_Sel.ushort; + + return Status; +} +*/ + |
