nv_storage.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef _NV_Storage_H__
  2. #define _NV_Storage_H__
  3. #include "os/os_types.h"
  4. #pragma pack (push,1)
  5. typedef struct {
  6. float s_maxIdq;
  7. float s_minIdq;
  8. float s_maxiDC;
  9. float s_maxvDC;
  10. float s_maxRPM;
  11. float n_modulation;
  12. float n_PhaseFilterCeof;
  13. float n_currentBand; //电流环带宽
  14. float spd_kp;
  15. float spd_ki;
  16. float trq_kp;
  17. float trq_ki;
  18. float fw_baseSpd; //弱磁基速
  19. float fw_kp;
  20. float fw_ki;
  21. u16 crc16;
  22. bool valid;
  23. }foc_params_t;
  24. typedef struct {
  25. u8 poles;
  26. float r;
  27. float ld;
  28. float lq;
  29. float flux_lingage;
  30. float back_emf;
  31. s16 hall_offset;
  32. s32 hall_table[8];
  33. u16 encoder_cpr;
  34. float est_pll_band;
  35. u16 crc16;
  36. bool valid;
  37. }motor_params_t;
  38. #define MAX_TRQ_POINTS 60
  39. #define MAX_SPD_POINTS 100
  40. typedef struct {
  41. s16 d[MAX_TRQ_POINTS][MAX_SPD_POINTS];
  42. s16 q[MAX_TRQ_POINTS][MAX_SPD_POINTS];
  43. u16 crc16;
  44. }torque_lut_t;
  45. #pragma pack(pop)
  46. motor_params_t *nv_get_motor_params(void);
  47. foc_params_t *nv_get_foc_params(void);
  48. void nv_save_hall_offset(s16 offset);
  49. void nv_save_motor_params(void);
  50. void nv_read_motor_params(void);
  51. void nv_save_foc_params(void);
  52. void nv_read_foc_params(void);
  53. void nv_save_hall_table(s32 *hall_table);
  54. #endif /* _NV_Storage_H__ */