55 lines
1.1 KiB
C
55 lines
1.1 KiB
C
|
#ifndef _I2C_H_
|
||
|
#define _I2C_H_
|
||
|
|
||
|
#include <stdint.h>
|
||
|
|
||
|
void i2c_enumerate_interfaces(void);
|
||
|
void i2c_close(int fd);
|
||
|
int i2c_open(const char *path);
|
||
|
void i2c_set_address(int fd, int address);
|
||
|
int i2c_isconnected(void);
|
||
|
|
||
|
void i2c_cmd_bootloader(int fd);
|
||
|
void i2c_cmd_application(int fd);
|
||
|
void i2c_cmd_getinfo(int fd, char *buf, int size);
|
||
|
void i2c_cmd_getsignature(int fd, unsigned char *buf, int size);
|
||
|
|
||
|
struct blmc_parameter {
|
||
|
uint16_t spinup_ticks;
|
||
|
|
||
|
uint8_t spinup_tick;
|
||
|
uint8_t spinup_step;
|
||
|
|
||
|
uint8_t spinup_wait;
|
||
|
uint8_t spinup_pwm;
|
||
|
|
||
|
uint8_t pwm_min;
|
||
|
uint8_t pwm_max;
|
||
|
|
||
|
uint16_t current_limit;
|
||
|
uint16_t current_max;
|
||
|
|
||
|
uint16_t voltage_min;
|
||
|
|
||
|
uint16_t crc16;
|
||
|
};
|
||
|
|
||
|
void i2c_cmd_getparameters(int fd, struct blmc_parameter *blmc);
|
||
|
void i2c_cmd_setparameters(int fd, struct blmc_parameter *blmc, int persistent);
|
||
|
|
||
|
int i2c_write_flash(int fd, const char *filename, void (*progress_cb)(double progress));
|
||
|
|
||
|
void i2c_cmd_setpwm(int fd, int pwm);
|
||
|
|
||
|
struct blmc_status {
|
||
|
uint8_t pwm_real;
|
||
|
uint8_t pwm;
|
||
|
uint16_t rpm;
|
||
|
uint16_t current;
|
||
|
uint16_t voltage;
|
||
|
};
|
||
|
|
||
|
void i2c_cmd_getstatus(int fd, struct blmc_status *status);
|
||
|
|
||
|
#endif /* _I2C_H_ */
|