| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #ifndef _NV_Storage_H__
- #define _NV_Storage_H__
- #include "os/os_types.h"
- #include "foc/core/PMSM_FOC_Core.h"
- #include "foc/commands.h"
- #pragma pack (push,1)
- typedef struct {
- float s_PhaseCurrLim;
- float s_maxDCVol;
- float s_minDCVol;
- float s_maxRPM;
- float s_maxEpmRPM;
- float s_maxEpmPhaseCurrLim;
- float s_maxTorque;
- float s_PhaseCurreBrkLim;
- float s_iDCeBrkLim;
- float s_LimitiDC;
- float n_currentBand; //电流环带宽
- float n_minThroVol;
- float n_maxThroVol;
- u8 n_brkShutPower;
- u8 n_autoHold;
- u32 n_acc_time;
- u32 n_dec_time;
- u32 n_ebrk_time;
- pid_conf_t pid_conf[PID_Max_id];
- u16 crc16;
- }foc_params_t;
- typedef struct {
- u8 poles;
- float r;
- float ld;
- float lq;
- float flux_linkage;
- float back_emf;
- s32 hall_table[8];
- float offset;
- float est_pll_band; //normal工作模式下的pll带宽
- float pos_lock_pll_band; //电机锁定模式下的pll带宽
- u16 crc16;
- }motor_params_t;
- #define MAX_TRQ_POINTS 60
- #define MAX_SPD_POINTS 100
- #define TBL_TRQ_INTVAL 10
- #define TBL_SPD_INTVAL 100
- struct lut_dq {
- s16 d;
- s16 q;
- };
- typedef struct {
- struct lut_dq dq[MAX_TRQ_POINTS][MAX_SPD_POINTS];
- u16 magic;
- u16 crc16;
- }torque_lut_t;
- #pragma pack(pop)
- #define motorParam_idx_0 3
- #define motorParam_idx_1 (motorParam_idx_0 + 1)
- #define focParam_idx_0 (motorParam_idx_0 + 2)
- #define focParam_idx_1 (motorParam_idx_0 + 3)
- #define trq_Tbl_idx (focParam_idx_1 + 1)
- #define trq_Tbl_size (30)
- void nv_storage_init(void);
- motor_params_t *nv_get_motor_params(void);
- foc_params_t *nv_get_foc_params(void);
- void nv_save_angle_offset(float offset);
- void nv_save_motor_params(void);
- void nv_read_motor_params(void);
- void nv_save_foc_params(void);
- void nv_read_foc_params(void);
- void nv_save_hall_table(s32 *hall_table);
- void nv_set_pid(u8 id, pid_conf_t *pid);
- void nv_get_pid(u8 id, pid_conf_t *pid);
- void nv_set_hwbrake_mode(u8 mode);
- void nv_set_throttle_vol(float min, float max);
- void nv_set_ebrake_current(float phase_curr, float dc_curr);
- torque_lut_t *nv_get_trq_tlb(void);
- #endif /* _NV_Storage_H__ */
|