]> rtime.felk.cvut.cz Git - fpga/rpi-motor-control-pxmc.git/blob - src/app/rpi-pmsm-test1/zynq_3pmdrv1_mc.h
82d2e8093e7db6c6dffe4af6c78e9bf5b877ff0b
[fpga/rpi-motor-control-pxmc.git] / src / app / rpi-pmsm-test1 / zynq_3pmdrv1_mc.h
1 #ifndef _ZYNQ_3PMDRV1_MC_H
2 #define _ZYNQ_3PMDRV1_MC_H
3
4 #include <stdint.h>
5
6 #define Z3PMDRV1_CHAN_COUNT    3
7
8 #define Z3PMDRV1_PWM_VALUE_m   0x0ffff
9 #define Z3PMDRV1_PWM_ENABLE    0x10000
10 #define Z3PMDRV1_PWM_SHUTDOWN  0x20000
11
12 typedef struct z3pmdrv1_state_t {
13   uintptr_t regs_base_phys;
14   void     *regs_base_virt;
15   uint32_t pwm[Z3PMDRV1_CHAN_COUNT];
16   uint32_t act_pos;
17   uint32_t index_pos;
18   uint32_t index_occur;
19   uint32_t pos_offset;
20   int32_t  curadc_val[Z3PMDRV1_CHAN_COUNT];
21   int32_t  curadc_offs[Z3PMDRV1_CHAN_COUNT];
22   uint8_t  hal_sensors;
23   uint16_t curadc_sqn;
24   uint16_t curadc_sqn_last;
25   uint32_t curadc_cumsum[Z3PMDRV1_CHAN_COUNT];
26   uint32_t curadc_cumsum_last[Z3PMDRV1_CHAN_COUNT];
27 } z3pmdrv1_state_t;
28
29 int z3pmdrv1_init(z3pmdrv1_state_t *z3pmcst);
30
31 int z3pmdrv1_transfer(z3pmdrv1_state_t *z3pmcst);
32
33 #endif /*_ZYNQ_3PMDRV1_MC_H*/