| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- #ifndef _FOC_CMD_H__
- #define _FOC_CMD_H__
- #include "os/os_types.h"
- #include "config.h"
- typedef enum {
- Foc_Start_Motor = 32, //foc_start_stop_t, ready, unread, 014d01
- Foc_Cali_Hall_Phase, //calibrate hall phase, get the angle when motor running 0-360
- Foc_Cali_Hall_Offset,//calibrate hall offset from A phase 0x034d00
- Foc_Set_iDC_Limit, //u32, set the limited current//mA
- Foc_Set_Speed_Limit, //u32, set the limited speed//rpm
- Foc_Set_Speed_Target, //u32, set the target speed, just for test
- Foc_Set_Cruise_Speed, //u32, set the speed for curise riding
- Foc_Set_Cruise_Mode,
- Foc_Set_Phase_CurrLim,
- Foc_Set_Ctrl_Mode,
- Foc_Set_Gear_Limit, //通过设置限速,限相电流,限母线电流上层可以实现任意挡位
- Foc_Set_Open_Dq_Vol, //u32, u32, 114d000000000a000000, 114d0000000000000000
- Foc_Set_EPM_Mode,
- Foc_Start_EPM_Move,
- Foc_Conf_Pid,
- Foc_Start_DQ_Calibrate,
- Foc_Set_IS_Curr_Angle, //设置DQ电流矢量和超前角
- Foc_Set_Plot_Type,
- Foc_Set_Throttle_throld,
- Foc_Set_eBrake_Throld,
- Foc_Lock_Motor,
- Foc_Auto_Hold,
- Foc_Set_Config,
- Foc_Get_Config,
- Foc_Get_Pid,
- Foc_Fan_Duty, //57
- Foc_Get_Gear_Limit,
- Foc_Set_Thro_Ration,
- Foc_Use_SensorLess_Angle,
- Foc_Force_Open_Run,
- Foc_Enc_Zero_Cali_Result,
- Foc_Start_Write_TRQ_Table,
- Foc_Write_TRQ_Table,
- Foc_End_Write_TRQ_Table,
- Foc_SN_Write, //66
- Foc_SN_Read,
- Foc_Hall_Phase_Cali_Result = 160,
- Foc_Hall_Offset_Cali_Result,
- Foc_Report_Speed,
- Foc_Report_Vbus_Current, //u32
- Foc_Report_Phase_Current, //s32,s32,s32
- Foc_Report_Dq_Current, //s32,s32
- Foc_Report_Vbus_Vol, //u32
- Foc_Report_Phase_Vol, //u32,u32,u32
- Foc_Report_Dq_Vol, //u32, u32
- Foc_Report_Power,
- Foc_Report_Pid,
- Foc_Report_Status,
- Foc_Report_MTPA_DQ_Angle,
- Foc_Report_Plot,
- Foc_Report_Temp,
- Foc_Cmd_Max = 0xE0
- }foc_cmd_t;
- #define CMD_2_CAN_KEY(cmd) ((u16)(((u16)cmd) | (CAN_MY_ADDRESS<<8)))
- typedef enum {
- Foc_Start = 1,
- Foc_Stop,
- }FSwith_t;;
- typedef struct {
- foc_cmd_t cmd;
- u16 ext_key;
- u8 can_src;
- u8 len;
- void *data;
- }foc_cmd_body_t;
- #pragma pack (push,1)
- typedef struct {
- u8 start_stop; //1: start, 2: stop
- }foc_start_cmd_t;
- typedef struct {
- u32 vq_mvol; //mV
- }hall_phase_cali_cmd_t;
- typedef struct {
- u32 vq_mvol; //mV
- u32 step_inc; //degree
- u32 step_time;//second
- }hall_offset_cali_cmd_t;
- typedef struct {
- float kp;
- float ki;
- float kb;
- }pid_conf_t;
- #pragma pack(pop)
- void foc_command_init(void);
- bool foc_send_command(foc_cmd_body_t *command);
- #endif /*_FOC_CMD_H__ */
|