commands.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef _FOC_CMD_H__
  2. #define _FOC_CMD_H__
  3. #include "os/os_types.h"
  4. #include "config.h"
  5. typedef enum {
  6. Foc_Start_Motor = 1, //foc_start_stop_t, ready, unread, 014d01
  7. Foc_Cali_Hall_Phase, //calibrate hall phase, get the angle when motor running 0-360
  8. Foc_Cali_Hall_Offset,//calibrate hall offset from A phase 0x034d00
  9. Foc_Set_Current_Limit, //u32, set the limited current//mA
  10. Foc_Set_Speed_Limit, //u32, set the limited speed//rpm
  11. Foc_Set_Speed_Target, //u32, set the target speed, just for test
  12. Foc_Set_Cruise_Speed, //u32, set the speed for curise riding
  13. Foc_Set_Cruise_Mode,
  14. Foc_Conf_Pid,
  15. Foc_Hall_Phase_Cali_Result,
  16. Foc_Hall_Offset_Cali_Result,
  17. Foc_Report_Speed,
  18. Foc_Report_Vbus_Current, //u32
  19. Foc_Report_Phase_Current, //s32,s32,s32
  20. Foc_Report_Dq_Current, //s32,s32
  21. Foc_Report_Vbus_Vol, //u32
  22. Foc_Report_Phase_Vol, //u32,u32,u32
  23. Foc_Report_Dq_Vol, //u32, u32
  24. Foc_Set_Open_Dq_Vol, //u32, u32, 114d000000000a000000, 114d0000000000000000
  25. Foc_Cmd_Max
  26. }foc_cmd_t;
  27. #define CMD_2_CAN_KEY(cmd) ((u16)(((u16)cmd) | (CAN_MY_ADDRESS<<8)))
  28. typedef enum {
  29. Foc_Start = 1,
  30. Foc_Stop,
  31. }FSwith_t;;
  32. typedef struct {
  33. foc_cmd_t cmd;
  34. u8 can_src;
  35. void *data;
  36. }foc_cmd_body_t;
  37. #pragma pack (push,1)
  38. typedef struct {
  39. u8 start_stop; //1: start, 2: stop
  40. }foc_start_cmd_t;
  41. typedef struct {
  42. u32 vq_mvol; //mV
  43. }hall_phase_cali_cmd_t;
  44. typedef struct {
  45. u32 vq_mvol; //mV
  46. u32 step_inc; //degree
  47. u32 step_time;//second
  48. }hall_offset_cali_cmd_t;
  49. typedef struct {
  50. s32 kp;
  51. s32 ki;
  52. s32 kb;
  53. s32 gain;
  54. }pid_conf_t;
  55. #pragma pack(pop)
  56. void foc_command_init(void);
  57. bool foc_send_command(foc_cmd_body_t *command);
  58. #endif /*_FOC_CMD_H__ */