Ben Willems / Mbed 2 deprecated MLX90418_I2C_master_bwi

Dependencies:   mbed

i2c_mbed_fpga.h

Committer:
wuliqunyy
Date:
2021-03-03
Revision:
11:b86aea372744
Parent:
10:a8390614edcc
Child:
12:9f8c7f4da5f6

File content as of revision 11:b86aea372744:

#ifndef I2C_MBED_FPGA_H
#define I2C_MBED_FPGA_H

#include "nv_bitfield_map.h"
#include "nv_defines.h"
#include "nv_defaults.h"


#define I2C_SLAVE_ADDR 0x18<<1

//Class delclarations
class i2c_mbed_fpga {

public:    
    /*constructor*/    
    i2c_mbed_fpga(): i2c_master(p9, p10){
        i2c_master.frequency(35000);
        nv_positin_val = NV_POSITION_DEFUALT;
        nv_start_up_val = NV_START_UP_DEFAULT; 
        nv_wind_brake_val = NV_WIND_BRAKE_DEFAULT;
        ram_open_duty_val = RAM_OPEN_DUTY_DEFAULT;
        nv_spd_control_1_val = NV_SPD_CONTROL_1_DEFAULT;
        nv_spd_control_2_val = NV_SPD_CONTROL_1_DEFAULT;    
    };
    
    int i2c_word_read(char *word);
    int i2c_word_write(char *word);
    int i2c_word_safe_write(char *word);
    
    int i2c_window_open();
    int i2c_motor_start();
    
    int i2c_set_position_pulse_width(unsigned int manstisa_2b, unsigned int exponenet_3b);
    int i2c_set_position_duty(unsigned int duty_2b);
    int i2c_set_position_maj_vote(unsigned int maj_1b);
    int i2c_set_position_anti_cog(unsigned int cog_1b);
    
    int i2c_set_start_up_pulse_width(unsigned int mantisaa_3b, unsigned int exponent_3b);
    int i2c_set_start_up_duty(unsigned int duty_2b);
    int i2c_set_start_up_num_comm(unsigned int comm);
    int i2c_set_soft_start_up(unsigned int enbale, unsigned int mantisaa_3b, unsigned int exponent_3b, unsigned int step_size, unsigned int num_steps);
    int i2c_set_high_torque_start_up(unsigned int enbale, unsigned int mantisaa_3b, unsigned int exponent_3b);
    int i2c_set_single_pulse_start_up(unsigned int enbale, unsigned int mantisaa_3b, unsigned int exponent_3b);
    int i2c_clear_spd_ctrl();
    int i2c_set_loop_mode(unsigned int openloop);
    int i2c_set_curve_type(unsigned int curvetype);
    int i2c_set_dc_ini(unsigned int ini);
    int i2c_set_dc_sr(unsigned int sr);
    int i2c_set_open_loop_duty(unsigned int duty);
    
private:
    I2C i2c_master;
    unsigned int nv_positin_val;
    unsigned int nv_start_up_val;
    unsigned int nv_wind_brake_val;
    unsigned int nv_spd_control_1_val;
    unsigned int nv_spd_control_2_val;
    unsigned int ram_open_duty_val;
    

    //Position Detection Task/Functions
};


#endif