Command I2c 1ED3860MC12MXUMA1

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
studiosipa
Level 1
Level 1
First reply posted First question asked Welcome!

I'm working with 1ED3860MC12MXUMA1 gate driver. 

I read the manual about the I2C command but without understand well. 

Is it possible to have or to receive a link where I can find information and examples about the I2C command. ??

The Gate driver doesn't work and I don't know why.... I need examples of code. I2c.

Thanks in advance 

 

Silvano

0 Likes
1 Solution
Guru_Prasad
Moderator
Moderator
Moderator
250 replies posted 100 solutions authored 25 likes received

Hello @studiosipa 

Thanks for posting your question.

Kindly follow the below I2C code for your reference 

/*
 * I2C_GATE_DRIVER.h
 *
 *  Created on: 03-Mar-2022
 *      Author: 40023365
 */

#ifndef I2C_GATE_DRIVER_H_
#define I2C_GATE_DRIVER_H_

//
//Register Addresses
//
#define INPUT_PIN_FILTERT_TIME  0x03
#define FAULT_CLEAR_METHOD      0x04
#define CONFIG_RECOVERY         0x05
#define UV_THRESHOLD_LEVEL      0x06
#define VCC2_SOFT_ENABLE_THRESHOLD  0x07
#define VEE2_SOFT_ENABLE_THRESHOLD  0x08
#define ADC_ENABLE_COMPARE_POL      0x09
#define CLAMP_PIN_COMPARE           0x0A
#define OVER_TEMPERATURE_WARNING    0x0B
#define DSAT_DISBALE_THRESHOLD_LVL  0x0C

#define DRIVER_OFF_TYPE         0x15

#define REG_CONFIG_LOCK         0x1C
#define CLEAR_EVENT_REG         0x1D

#define READY_STATE             0x26

#define OUTPUT_SIDE_EVENT_STATUS    0x28

//
//Data Values
//
#define TIME_200_NS  0x1
#define TIME_100_NS  0x0

#define FLT_CLR_TIME_1600US     0x1
#define FLT_CLR_TIME_400US      0x0

#define FLT_CLR_MERHOD_SELF     0x1
#define FLT_CLR_METHOD_RDYC     0x0

#define CONFIGURED               0x1
#define NOT_CONFIGURED           0x0

#define RESTORE_FROM_POWER_FAILURE  0x1
#define NO_RESTORE_FROM_POWER_FAILURE 0x0

#define RECOVER_FROM_POWER_FAILURE       0x1
#define NO_RECOVER_FROM_POWER_FAILURE    0x0

#define VCC_THRESHOLD_LVL_MOSFET    0x1
#define VCC_THRESHOLD_LVL_IGBT      0x0

#define VEE_THRESHOLD_LEVEL_15V     0x3
#define VEE_THRESHOLD_LEVEL_8V      0x2
#define VEE_THRESHOLD_LEVEL_5V      0x1
#define VEE_THRESHOLD_LEVEL_0V      0x0

#define VCC2_SOFT_ENABLE            0x1
#define VCC2_SOFT_DISABLE           0x0

#define VCC2_THRESHOLD_LVL_9_5V         0x0
#define VCC2_THRESHOLD_LVL_10_0V        0x1
#define VCC2_THRESHOLD_LVL_10_5V        0x2
#define VCC2_THRESHOLD_LVL_11_0V        0x3
#define VCC2_THRESHOLD_LVL_11_5V        0x4
#define VCC2_THRESHOLD_LVL_12_0V        0x5
#define VCC2_THRESHOLD_LVL_12_5V        0x6
#define VCC2_THRESHOLD_LVL_13_0V        0x7
#define VCC2_THRESHOLD_LVL_13_5V        0x8
#define VCC2_THRESHOLD_LVL_14_0V        0x9
#define VCC2_THRESHOLD_LVL_14_5V        0xA
#define VCC2_THRESHOLD_LVL_15_0V        0xB
#define VCC2_THRESHOLD_LVL_15_5V        0xC
#define VCC2_THRESHOLD_LVL_16_0V        0xD
#define VCC2_THRESHOLD_LVL_16_5V        0xE
#define VCC2_THRESHOLD_LVL_17_0V        0xF

#define VEE2_SOFT_ENABLE            0x1
#define VEE2_SOFT_DISABLE           0x0

#define EXTERNAL_V_ENABLE           0x1
#define EXTERNAL_V_DIAABLE          0x0

#define EXTERNAL_COMPARE_POL_GREAT  0x1
#define EXTERNAL_COMPARE_POL_LESS   0x0

#define CLAMP_PIN_V_MEASURE_ENABLE      0x1
#define CLAMP_PIN_V_MEASURE_DISABLE     0x0

#define SUPPLY_V_MEASURE_ENABLE         0x1
#define SUPPLY_V_MEASURE_DISBALE        0x0

#define CLAMP_PIN_COMPARE_LIMIT         0x0

#define OVER_TEMPERATURE_FAULT          0x1
#define OVER_TEMPERATURE_NO_ACTION      0x0

#define OVER_TEMPERATURE_LVL_140_0      0x0
#define OVER_TEMPERATURE_LVL_133_6      0x1
#define OVER_TEMPERATURE_LVL_127_2      0x2
#define OVER_TEMPERATURE_LVL_120_8      0x3
#define OVER_TEMPERATURE_LVL_114_4      0x4
#define OVER_TEMPERATURE_LVL_108_0      0x5
#define OVER_TEMPERATURE_LVL_101_6      0x6
#define OVER_TEMPERATURE_LVL_95_2       0x7

#define DSTA_DISABLE                    0x1
#define DSAT_ENABLE                     0x0

#define DSTA_V_LVL_9_18V                0x1F

#define HARD_SWITCH_OFF                 0x2
#define TWO_LEVEL_OFF                   0x1
#define SOFT_OFF                        0x0

#define DSAT_EVENT_CLEAR                0x1
#define DSAT_EVENT_NO_ACTION            0x0

#define UV2_FLT_CLEAR                   0x1
#define UV2_FLT_NO_ACTION               0x0

#define UV1_FLT_CLEAR                   0x1
#define UV1_FLT_NO_ACTION               0x0

#define STICKY_EVENT_CLEAR              0x1
#define STICKY_EVENT_NO_ACTION          0x0

#define SOFT_RESET_INITIATE             0x1
#define SOFT_RESET_NO_ACTION            0x0

Uint16 I2CA_WriteData(char data, Uint16 slave);

extern bool Address_Config;
extern bool Parameter_Config;
extern bool Sec_Ready;
extern bool Read_Gate_Driver;
extern bool Read_Gate_Driver_Fault;

//
// I2CA_WriteData - Transmit I2CA message
//
Uint16 I2CA_WriteData(char data, Uint16 slave)
{
    //
    // Setup number of bytes to send
    // MsgBuffer + Address
    //
    //I2caRegs.I2CCNT = msg->NumOfBytes+2;

    if (I2caRegs.I2CMDR.bit.STP)
    {

        return I2C_STP_NOT_READY_ERROR;
    }

    I2caRegs.I2CSAR.all = slave;

    if (Address_Config)
    {
        I2caRegs.I2CCNT = 2;

//        I2caRegs.I2CDXR.all = 0x02;
//
//        I2caRegs.I2CDXR.all = 0x00;

//        I2caRegs.I2CDXR.all = 0x20;
//
//        I2caRegs.I2CDXR.all = 0x01;

        I2caRegs.I2CDXR.all = 0x02;

        I2caRegs.I2CDXR.all = 0x01;

        I2caRegs.I2CMDR.all = 0x6620;
    }
    else if (Parameter_Config)
    {

        I2caRegs.I2CCNT = 26;

//        I2caRegs.I2CDXR.all = REG_CONFIG_LOCK;
//
//        I2caRegs.I2CDXR.all = NOT_CONFIGURED;

        I2caRegs.I2CDXR.all = INPUT_PIN_FILTERT_TIME;

        I2caRegs.I2CDXR.all = TIME_100_NS;

        I2caRegs.I2CDXR.all = FAULT_CLEAR_METHOD;

        I2caRegs.I2CDXR.all = (FLT_CLR_TIME_400US << 1) | FLT_CLR_METHOD_RDYC;

        I2caRegs.I2CDXR.all = CONFIG_RECOVERY;

        I2caRegs.I2CDXR.all = (RESTORE_FROM_POWER_FAILURE << 1)
                | RECOVER_FROM_POWER_FAILURE;

        I2caRegs.I2CDXR.all = UV_THRESHOLD_LEVEL;

        I2caRegs.I2CDXR.all = (VCC_THRESHOLD_LVL_MOSFET << 2)
                | VEE_THRESHOLD_LEVEL_0V;

        I2caRegs.I2CDXR.all = VCC2_SOFT_ENABLE_THRESHOLD;

        I2caRegs.I2CDXR.all = (VCC2_SOFT_ENABLE << 4) | VCC2_THRESHOLD_LVL_9_5V;

        I2caRegs.I2CDXR.all = VEE2_SOFT_ENABLE_THRESHOLD;

        I2caRegs.I2CDXR.all = (VEE2_SOFT_DISABLE << 4) | 0;

        I2caRegs.I2CDXR.all = ADC_ENABLE_COMPARE_POL;

        I2caRegs.I2CDXR.all = (EXTERNAL_V_DIAABLE << 5)
                | (EXTERNAL_COMPARE_POL_LESS << 4)
                | (CLAMP_PIN_V_MEASURE_DISABLE << 3)
                | (SUPPLY_V_MEASURE_ENABLE << 2) | 0x00;

        I2caRegs.I2CDXR.all = CLAMP_PIN_COMPARE;

        I2caRegs.I2CDXR.all = CLAMP_PIN_COMPARE_LIMIT;

        I2caRegs.I2CDXR.all = OVER_TEMPERATURE_WARNING;

        I2caRegs.I2CDXR.all = (OVER_TEMPERATURE_FAULT << 3)
                | OVER_TEMPERATURE_LVL_95_2;

        I2caRegs.I2CDXR.all = DSAT_DISBALE_THRESHOLD_LVL;

        I2caRegs.I2CDXR.all = (DSAT_ENABLE << 5) | DSTA_V_LVL_9_18V;

//        I2caRegs.I2CDXR.all = DRIVER_OFF_TYPE;
//
//        I2caRegs.I2CDXR.all = HARD_SWITCH_OFF;

        I2caRegs.I2CDXR.all = CLEAR_EVENT_REG;

        I2caRegs.I2CDXR.all = (DSAT_EVENT_CLEAR << 4) | (UV2_FLT_CLEAR << 3)
                | (UV1_FLT_CLEAR << 2) | (STICKY_EVENT_CLEAR << 1)
                | SOFT_RESET_INITIATE;

        I2caRegs.I2CDXR.all = REG_CONFIG_LOCK;

        I2caRegs.I2CDXR.all = CONFIGURED;

        I2caRegs.I2CMDR.all = 0x6620;

    }
    else if (Sec_Ready)
    {
        I2caRegs.I2CCNT = 2;

        I2caRegs.I2CDXR.all = 0x26;

        I2caRegs.I2CDXR.all = 0x07;

        I2caRegs.I2CMDR.all = 0x6620;
    }
    else if (Read_Gate_Driver == 1)
    {
        I2caRegs.I2CCNT = 2;

        I2caRegs.I2CDXR.all = READY_STATE;

        I2caRegs.I2CDXR.all = 0x00;

        I2caRegs.I2CMDR.all = 0x6620;

//        I2caRegs.I2CDXR.all = 0x00;
    }
    else if (Read_Gate_Driver_Fault == 1)
    {
        I2caRegs.I2CCNT = 1;

        I2caRegs.I2CDXR.all = OUTPUT_SIDE_EVENT_STATUS;

//        I2caRegs.I2CDXR.all = 0x00;

        I2caRegs.I2CMDR.all = 0x6620;
    }

//
//    I2caRegs.I2CDXR.all = 0x0D;
//
//    I2caRegs.I2CDXR.all = 0x01;//To lock address configuration registers

    //msg->MemoryHighAddr;
//   while(I2caRegs.I2CSTR.bit.XRDY == 0);
    //I2caRegs.I2CDXR.all = msg->MemoryLowAddr;

//   for (i=0; i < msg->NumOfBytes; i++)
//   {
//      I2caRegs.I2CDXR.all = *(msg->MsgBuffer+i);
//   }

    //
    // Send start as master transmitter
    //

//    GPIO_SetupPinOptions(70, GPIO_INPUT, GPIO_ASYNC);

    return I2C_SUCCESS;

}

#endif /* I2C_GATE_DRIVER_H_ */

Note: Please modify as per your  GPIO's

Please let me know if you need any additional help

Thanks

Guru

View solution in original post

0 Likes
6 Replies
Guru_Prasad
Moderator
Moderator
Moderator
250 replies posted 100 solutions authored 25 likes received

Hello @studiosipa 

Thanks for posting your question.

Kindly follow the below I2C code for your reference 

/*
 * I2C_GATE_DRIVER.h
 *
 *  Created on: 03-Mar-2022
 *      Author: 40023365
 */

#ifndef I2C_GATE_DRIVER_H_
#define I2C_GATE_DRIVER_H_

//
//Register Addresses
//
#define INPUT_PIN_FILTERT_TIME  0x03
#define FAULT_CLEAR_METHOD      0x04
#define CONFIG_RECOVERY         0x05
#define UV_THRESHOLD_LEVEL      0x06
#define VCC2_SOFT_ENABLE_THRESHOLD  0x07
#define VEE2_SOFT_ENABLE_THRESHOLD  0x08
#define ADC_ENABLE_COMPARE_POL      0x09
#define CLAMP_PIN_COMPARE           0x0A
#define OVER_TEMPERATURE_WARNING    0x0B
#define DSAT_DISBALE_THRESHOLD_LVL  0x0C

#define DRIVER_OFF_TYPE         0x15

#define REG_CONFIG_LOCK         0x1C
#define CLEAR_EVENT_REG         0x1D

#define READY_STATE             0x26

#define OUTPUT_SIDE_EVENT_STATUS    0x28

//
//Data Values
//
#define TIME_200_NS  0x1
#define TIME_100_NS  0x0

#define FLT_CLR_TIME_1600US     0x1
#define FLT_CLR_TIME_400US      0x0

#define FLT_CLR_MERHOD_SELF     0x1
#define FLT_CLR_METHOD_RDYC     0x0

#define CONFIGURED               0x1
#define NOT_CONFIGURED           0x0

#define RESTORE_FROM_POWER_FAILURE  0x1
#define NO_RESTORE_FROM_POWER_FAILURE 0x0

#define RECOVER_FROM_POWER_FAILURE       0x1
#define NO_RECOVER_FROM_POWER_FAILURE    0x0

#define VCC_THRESHOLD_LVL_MOSFET    0x1
#define VCC_THRESHOLD_LVL_IGBT      0x0

#define VEE_THRESHOLD_LEVEL_15V     0x3
#define VEE_THRESHOLD_LEVEL_8V      0x2
#define VEE_THRESHOLD_LEVEL_5V      0x1
#define VEE_THRESHOLD_LEVEL_0V      0x0

#define VCC2_SOFT_ENABLE            0x1
#define VCC2_SOFT_DISABLE           0x0

#define VCC2_THRESHOLD_LVL_9_5V         0x0
#define VCC2_THRESHOLD_LVL_10_0V        0x1
#define VCC2_THRESHOLD_LVL_10_5V        0x2
#define VCC2_THRESHOLD_LVL_11_0V        0x3
#define VCC2_THRESHOLD_LVL_11_5V        0x4
#define VCC2_THRESHOLD_LVL_12_0V        0x5
#define VCC2_THRESHOLD_LVL_12_5V        0x6
#define VCC2_THRESHOLD_LVL_13_0V        0x7
#define VCC2_THRESHOLD_LVL_13_5V        0x8
#define VCC2_THRESHOLD_LVL_14_0V        0x9
#define VCC2_THRESHOLD_LVL_14_5V        0xA
#define VCC2_THRESHOLD_LVL_15_0V        0xB
#define VCC2_THRESHOLD_LVL_15_5V        0xC
#define VCC2_THRESHOLD_LVL_16_0V        0xD
#define VCC2_THRESHOLD_LVL_16_5V        0xE
#define VCC2_THRESHOLD_LVL_17_0V        0xF

#define VEE2_SOFT_ENABLE            0x1
#define VEE2_SOFT_DISABLE           0x0

#define EXTERNAL_V_ENABLE           0x1
#define EXTERNAL_V_DIAABLE          0x0

#define EXTERNAL_COMPARE_POL_GREAT  0x1
#define EXTERNAL_COMPARE_POL_LESS   0x0

#define CLAMP_PIN_V_MEASURE_ENABLE      0x1
#define CLAMP_PIN_V_MEASURE_DISABLE     0x0

#define SUPPLY_V_MEASURE_ENABLE         0x1
#define SUPPLY_V_MEASURE_DISBALE        0x0

#define CLAMP_PIN_COMPARE_LIMIT         0x0

#define OVER_TEMPERATURE_FAULT          0x1
#define OVER_TEMPERATURE_NO_ACTION      0x0

#define OVER_TEMPERATURE_LVL_140_0      0x0
#define OVER_TEMPERATURE_LVL_133_6      0x1
#define OVER_TEMPERATURE_LVL_127_2      0x2
#define OVER_TEMPERATURE_LVL_120_8      0x3
#define OVER_TEMPERATURE_LVL_114_4      0x4
#define OVER_TEMPERATURE_LVL_108_0      0x5
#define OVER_TEMPERATURE_LVL_101_6      0x6
#define OVER_TEMPERATURE_LVL_95_2       0x7

#define DSTA_DISABLE                    0x1
#define DSAT_ENABLE                     0x0

#define DSTA_V_LVL_9_18V                0x1F

#define HARD_SWITCH_OFF                 0x2
#define TWO_LEVEL_OFF                   0x1
#define SOFT_OFF                        0x0

#define DSAT_EVENT_CLEAR                0x1
#define DSAT_EVENT_NO_ACTION            0x0

#define UV2_FLT_CLEAR                   0x1
#define UV2_FLT_NO_ACTION               0x0

#define UV1_FLT_CLEAR                   0x1
#define UV1_FLT_NO_ACTION               0x0

#define STICKY_EVENT_CLEAR              0x1
#define STICKY_EVENT_NO_ACTION          0x0

#define SOFT_RESET_INITIATE             0x1
#define SOFT_RESET_NO_ACTION            0x0

Uint16 I2CA_WriteData(char data, Uint16 slave);

extern bool Address_Config;
extern bool Parameter_Config;
extern bool Sec_Ready;
extern bool Read_Gate_Driver;
extern bool Read_Gate_Driver_Fault;

//
// I2CA_WriteData - Transmit I2CA message
//
Uint16 I2CA_WriteData(char data, Uint16 slave)
{
    //
    // Setup number of bytes to send
    // MsgBuffer + Address
    //
    //I2caRegs.I2CCNT = msg->NumOfBytes+2;

    if (I2caRegs.I2CMDR.bit.STP)
    {

        return I2C_STP_NOT_READY_ERROR;
    }

    I2caRegs.I2CSAR.all = slave;

    if (Address_Config)
    {
        I2caRegs.I2CCNT = 2;

//        I2caRegs.I2CDXR.all = 0x02;
//
//        I2caRegs.I2CDXR.all = 0x00;

//        I2caRegs.I2CDXR.all = 0x20;
//
//        I2caRegs.I2CDXR.all = 0x01;

        I2caRegs.I2CDXR.all = 0x02;

        I2caRegs.I2CDXR.all = 0x01;

        I2caRegs.I2CMDR.all = 0x6620;
    }
    else if (Parameter_Config)
    {

        I2caRegs.I2CCNT = 26;

//        I2caRegs.I2CDXR.all = REG_CONFIG_LOCK;
//
//        I2caRegs.I2CDXR.all = NOT_CONFIGURED;

        I2caRegs.I2CDXR.all = INPUT_PIN_FILTERT_TIME;

        I2caRegs.I2CDXR.all = TIME_100_NS;

        I2caRegs.I2CDXR.all = FAULT_CLEAR_METHOD;

        I2caRegs.I2CDXR.all = (FLT_CLR_TIME_400US << 1) | FLT_CLR_METHOD_RDYC;

        I2caRegs.I2CDXR.all = CONFIG_RECOVERY;

        I2caRegs.I2CDXR.all = (RESTORE_FROM_POWER_FAILURE << 1)
                | RECOVER_FROM_POWER_FAILURE;

        I2caRegs.I2CDXR.all = UV_THRESHOLD_LEVEL;

        I2caRegs.I2CDXR.all = (VCC_THRESHOLD_LVL_MOSFET << 2)
                | VEE_THRESHOLD_LEVEL_0V;

        I2caRegs.I2CDXR.all = VCC2_SOFT_ENABLE_THRESHOLD;

        I2caRegs.I2CDXR.all = (VCC2_SOFT_ENABLE << 4) | VCC2_THRESHOLD_LVL_9_5V;

        I2caRegs.I2CDXR.all = VEE2_SOFT_ENABLE_THRESHOLD;

        I2caRegs.I2CDXR.all = (VEE2_SOFT_DISABLE << 4) | 0;

        I2caRegs.I2CDXR.all = ADC_ENABLE_COMPARE_POL;

        I2caRegs.I2CDXR.all = (EXTERNAL_V_DIAABLE << 5)
                | (EXTERNAL_COMPARE_POL_LESS << 4)
                | (CLAMP_PIN_V_MEASURE_DISABLE << 3)
                | (SUPPLY_V_MEASURE_ENABLE << 2) | 0x00;

        I2caRegs.I2CDXR.all = CLAMP_PIN_COMPARE;

        I2caRegs.I2CDXR.all = CLAMP_PIN_COMPARE_LIMIT;

        I2caRegs.I2CDXR.all = OVER_TEMPERATURE_WARNING;

        I2caRegs.I2CDXR.all = (OVER_TEMPERATURE_FAULT << 3)
                | OVER_TEMPERATURE_LVL_95_2;

        I2caRegs.I2CDXR.all = DSAT_DISBALE_THRESHOLD_LVL;

        I2caRegs.I2CDXR.all = (DSAT_ENABLE << 5) | DSTA_V_LVL_9_18V;

//        I2caRegs.I2CDXR.all = DRIVER_OFF_TYPE;
//
//        I2caRegs.I2CDXR.all = HARD_SWITCH_OFF;

        I2caRegs.I2CDXR.all = CLEAR_EVENT_REG;

        I2caRegs.I2CDXR.all = (DSAT_EVENT_CLEAR << 4) | (UV2_FLT_CLEAR << 3)
                | (UV1_FLT_CLEAR << 2) | (STICKY_EVENT_CLEAR << 1)
                | SOFT_RESET_INITIATE;

        I2caRegs.I2CDXR.all = REG_CONFIG_LOCK;

        I2caRegs.I2CDXR.all = CONFIGURED;

        I2caRegs.I2CMDR.all = 0x6620;

    }
    else if (Sec_Ready)
    {
        I2caRegs.I2CCNT = 2;

        I2caRegs.I2CDXR.all = 0x26;

        I2caRegs.I2CDXR.all = 0x07;

        I2caRegs.I2CMDR.all = 0x6620;
    }
    else if (Read_Gate_Driver == 1)
    {
        I2caRegs.I2CCNT = 2;

        I2caRegs.I2CDXR.all = READY_STATE;

        I2caRegs.I2CDXR.all = 0x00;

        I2caRegs.I2CMDR.all = 0x6620;

//        I2caRegs.I2CDXR.all = 0x00;
    }
    else if (Read_Gate_Driver_Fault == 1)
    {
        I2caRegs.I2CCNT = 1;

        I2caRegs.I2CDXR.all = OUTPUT_SIDE_EVENT_STATUS;

//        I2caRegs.I2CDXR.all = 0x00;

        I2caRegs.I2CMDR.all = 0x6620;
    }

//
//    I2caRegs.I2CDXR.all = 0x0D;
//
//    I2caRegs.I2CDXR.all = 0x01;//To lock address configuration registers

    //msg->MemoryHighAddr;
//   while(I2caRegs.I2CSTR.bit.XRDY == 0);
    //I2caRegs.I2CDXR.all = msg->MemoryLowAddr;

//   for (i=0; i < msg->NumOfBytes; i++)
//   {
//      I2caRegs.I2CDXR.all = *(msg->MsgBuffer+i);
//   }

    //
    // Send start as master transmitter
    //

//    GPIO_SetupPinOptions(70, GPIO_INPUT, GPIO_ASYNC);

    return I2C_SUCCESS;

}

#endif /* I2C_GATE_DRIVER_H_ */

Note: Please modify as per your  GPIO's

Please let me know if you need any additional help

Thanks

Guru

0 Likes
studiosipa
Level 1
Level 1
First reply posted First question asked Welcome!

Dear GURU

first of all thanks for your feedback. But your code is not clear for me.

what is IC2Regs ?   it is not declared.

Coudl you explain me better ?  Sorry But i'm in trouble if I dont solve the problems. 

I cannot drive my Mosfet with this gate driver. Please help me.

Thanks again

Silvano

0 Likes

dear GURU,

just to explain you.  I have't problem with I2C with Texas, I have done this with directly IO drive. 

This Works. I have problem to determinate which command i have to send to the Gate in order to see in output the High and Low level.  When I drive the IN SIgnal in the ouput is alway low. (negative).

The output of the gate driver never go HIGH. 

Which comenad I have to send ?  which is the right sequence ?

I hope that this is clear. Thanks Again

Silvano 

0 Likes
Please give me an call. I have to understand the whole situation.

Before you can work with the X3-digital, you have to load the registers. After this the RDY-signal goes high, you can use the driver.
Please check it.

You can contact me any time.

Best regards

Olaf Bendix

Infineon Technologies AG
IFAG IPC ISD GD TM
Office: +49 89 234 25456
Mobile: +49 151 25038493
Olaf.Bendix@infineon.com

Am Campeon 1-15
85579 Neubiberg
Germany

www.infineon.com<> Discoveries<> Facebook<> Twitter<> LinkedIn<>

Part of your life. Part of tomorrow.

Infineon Technologies AG
Chairman of the Supervisory Board: Dr. Wolfgang Eder
Management Board: Jochen Hanebeck (CEO), Constanze Hufenbecher, Dr. Sven Schneider, Andreas Urschitz, Dr. Rutger Wijburg
Registered office: Neubiberg
Commercial register: München HRB 126492

This e-mail and any attachments are confidential. They are intended solely for the attention and use of the named addressee(s). If you are not the named addressee(s) you must not use, disclose, retain or reproduce all or any part of the information contained in this e-mail or any attachments. Any unauthorized use or disclosure may be unlawful. If you have received this e-mail by mistake, please inform the sender immediately and delete it and all copies from your system and destroy any hard copies of it.
0 Likes

Many Thanks OLaf,

what do you mean with  the X3-digital ?  Do you mean SDA and SCL ?

More what do you mean with  "you have to load the registers"  Which registers ? all registers ? is that is not clear ?  

Which registers I have to load ?  All registers ?  

Could you explain me in more details with examples ?

Thanks lot.

Silvano

0 Likes
Guru_Prasad
Moderator
Moderator
Moderator
250 replies posted 100 solutions authored 25 likes received

Hello @studiosipa 

The register's data and formats are given in the application note kindly refer to it. Please click here for the

application note.

Thank you

Guru

0 Likes