Эх сурвалжийг харах

软件模拟I2C读取角度传感器,SCL周期测试结果为1us,管脚分配按照原理图。

dd 1 долоо хоног өмнө
parent
commit
a0d4df795b

+ 4 - 10
1.FrameLayer/Source/main.c

@@ -141,11 +141,7 @@ SYSCONFIG_WEAK void SYSCFG_DL_PWM_0_COPY_init(void) {
 
 }
 
-SWORD Tempe;
 UWORD Angle;
-SLONG MagX,MagY,MagZ;
-
-
 int  main(void)
 {
     SCB->VTOR =APP_START_Address;//
@@ -158,8 +154,6 @@ int  main(void)
     SYSCFG_DL_PWM_0_COPY_init();
     Reset_POWER_LOCK_PORT();
 
-    NVIC_EnableIRQ(I2C_0_INST_INT_IRQN);
-
     //TIMA0  MOTOR_PWM
     DL_Timer_setCaptCompUpdateMethod(MOTOR_PWM_INST,DL_TIMER_CC_UPDATE_METHOD_ZERO_EVT,DL_TIMERA_CAPTURE_COMPARE_0_INDEX);
     DL_Timer_setCaptCompUpdateMethod(MOTOR_PWM_INST,DL_TIMER_CC_UPDATE_METHOD_ZERO_EVT,DL_TIMERA_CAPTURE_COMPARE_1_INDEX);
@@ -285,13 +279,13 @@ int  main(void)
           AppLoop();
 //          PROFILER_BG();
           ACnt++;
-          Tempe = tmag5273_GetTemp();
+//          Tempe = tmag5273_GetTemp();
           DL_GPIO_setPins(GPIO_B_LED_PORT, GPIO_B_LED_PIN_LED_B_EN_PIN);
           Angle = tmag5273_GetAngle();
           DL_GPIO_clearPins(GPIO_B_LED_PORT, GPIO_B_LED_PIN_LED_B_EN_PIN);
-          MagX = tmag5273_GetXData();
-          MagY = tmag5273_GetYData();
-          MagZ = tmag5273_GetZData();
+//          MagX = tmag5273_GetXData();
+//          MagY = tmag5273_GetYData();
+//          MagZ = tmag5273_GetZData();
 
 //           delay_cycles(DELAY);
 //           DL_TimerA_setCaptureCompareValue(MOTOR_PWM_INST, 1875, DL_TIMER_CC_0_INDEX);

+ 3 - 2
1.FrameLayer/Source/tbc.c

@@ -35,6 +35,7 @@ Revising History (ECL of this file):
 #include "canAppl.h"
 #include "alarm.h"
 #include "AngleObserver_discrete.h"
+#include "tmag5273.h"
 //#include "profiler.h"
 //#include "STLmain.h"
 extern ExtU_LoadObsTheta_T LoadObsTheta_U;
@@ -88,12 +89,12 @@ void tbc_voUpIsr(void)
 //     }
 
 
-    switchhall_voPosCalTbc(); //角度获取
+//    switchhall_voPosCalTbc(); //角度获取
     /* Full Order Observer */
 //      LoadObsTheta_U.IqFbkPu = scm_swIqFdbLpfPu;
 //      LoadObsTheta_U.ThetamPu = switchhall_stOut.uwLowThetaPu;
 //      LoadObsTheta_step();
-
+//    switchhall_stOut.uwLowThetaPu = tmag5273_GetAngle();
     /* Full Order Observer: Hall Angle Filter */
     rtU.AngleIn = switchhall_stOut.uwLowThetaPu;
     Trigger();

+ 13 - 0
3.BasicFunction/Include/i2c_analog.h

@@ -0,0 +1,13 @@
+#ifndef I2C_ANALOG_H_
+#define I2C_ANALOG_H_
+
+#include "typedefine.h"
+
+void I2C_Init(void);
+void I2C_Start(void) ;
+void I2C_Stop(void);
+void I2C_SendACK(UBYTE ack);
+void I2C_SendByte(UBYTE sendDAT);
+UBYTE I2C_RecvByte(void);
+
+#endif

+ 117 - 0
3.BasicFunction/Source/i2c_analog.c

@@ -0,0 +1,117 @@
+#include "i2c_analog.h"
+#include "ti_msp_dl_config.h"
+
+#define SCL_L()            DL_GPIO_clearPins(TMAG5273_PORT, TMAG5273_SCL_PIN)
+#define SCL_H()            DL_GPIO_setPins(TMAG5273_PORT, TMAG5273_SCL_PIN)
+#define SDA_L()            DL_GPIO_clearPins(TMAG5273_PORT, TMAG5273_SDA_PIN)
+#define SDA_H()            DL_GPIO_setPins(TMAG5273_PORT, TMAG5273_SDA_PIN)
+
+#define SDAM()             DL_GPIO_readPins(TMAG5273_PORT, TMAG5273_SDA_PIN)
+#define SET_SCL_OUT()      {DL_GPIO_initDigitalOutput(TMAG5273_SCL_IOMUX);DL_GPIO_enableOutput(TMAG5273_PORT, TMAG5273_SCL_PIN);}
+#define SET_SDA_OUT()      {DL_GPIO_initDigitalOutput(TMAG5273_SDA_IOMUX);DL_GPIO_enableOutput(TMAG5273_PORT, TMAG5273_SDA_PIN);}
+#define SET_SDA_IN()       DL_GPIO_initDigitalInput(TMAG5273_SDA_IOMUX)
+
+void I2C_Delay(void)
+{
+    delay_cycles(20); //SCL周期1us
+}
+
+void I2C_Init(void)
+{
+    SET_SCL_OUT();
+    SET_SDA_OUT();
+}
+
+void I2C_Start(void)
+{
+    SDA_H();
+    SCL_H();
+    I2C_Delay();
+    SDA_L();
+    I2C_Delay();
+    SCL_L();
+}
+
+void I2C_Stop(void)
+{
+    SCL_L();
+    SDA_L();
+    I2C_Delay();
+    SCL_H();
+    SDA_H();
+    I2C_Delay();
+}
+
+void I2C_SendACK(UBYTE ack)
+{
+    if(ack == 0)
+    {
+      SDA_L();
+    }
+    else
+    {
+      SDA_H();
+    }
+    SCL_H();
+    I2C_Delay();
+    SCL_L();
+    I2C_Delay();
+}
+
+void I2C_SendByte(UBYTE sendDAT)
+{
+    UBYTE i,revack;
+
+    for (i= 0 ; i< 8; i++)
+    {
+       SCL_L();
+       I2C_Delay();
+       if (sendDAT & 0x80)             // write data
+       {
+          SDA_H();
+       }
+       else
+       {
+          SDA_L();
+       }
+        sendDAT <<=  1;
+        SCL_H();
+        I2C_Delay();
+    }
+   SCL_L();
+   I2C_Delay();
+   SET_SDA_IN();
+   SCL_H();
+   delay_cycles(5);
+   revack = (UBYTE)SDAM();
+   I2C_Delay();
+   SCL_L();
+   SET_SDA_OUT();
+}
+
+UBYTE I2C_RecvByte(void)
+{
+    UBYTE i;
+    UBYTE revDAT = 0;
+
+    SDA_H();
+    SET_SDA_IN();
+    for (i=0; i<8; i++)
+    {
+       revDAT <<= 1;
+       SCL_H();
+       if (SDAM())
+       {
+          revDAT |= 0x01;
+       }
+       else
+       {
+          revDAT &= 0xfe;
+       }
+       I2C_Delay();
+       SCL_L();
+       I2C_Delay();
+    }
+   SET_SDA_OUT();
+   return revDAT;
+}

+ 50 - 161
3.BasicFunction/Source/tmag5273.c

@@ -6,7 +6,7 @@
  */
 
 #include "tmag5273.h"
-#include <ti/driverlib/dl_i2c.h>
+#include "i2c_analog.h"
 #include "ti_msp_dl_config.h"
 
 #define TMAG5273A1_ADDRESS             0x35
@@ -41,156 +41,36 @@
 #define MAGNITUDE_RESULT               0x1B
 #define DEVICE_STATUS                  0x1C
 
-enum I2cControllerStatus {
-    I2C_STATUS_IDLE = 0,
-    I2C_STATUS_TX_STARTED,
-    I2C_STATUS_TX_INPROGRESS,
-    I2C_STATUS_TX_COMPLETE,
-    I2C_STATUS_RX_STARTED,
-    I2C_STATUS_RX_INPROGRESS,
-    I2C_STATUS_RX_COMPLETE,
-    I2C_STATUS_ERROR,
-} gI2cControllerStatus;
-
-ULONG gTxLen, gTxCount, gRxCount, gRxLen;
-UBYTE gTxPacket[128];
-UBYTE gRxPacket[128];
-
-char TMAG5273_WriteReg(UBYTE addr, UBYTE regaddr, UBYTE num, UBYTE *regdata)
+void TMAG5273_WriteReg(UBYTE RAddr, UBYTE WData)
 {
-    UWORD i;
-
-    gI2cControllerStatus = I2C_STATUS_IDLE;
-    gTxLen = num+1;
-
-    gTxPacket[0] = regaddr;
-    for(i=1; i<=num; i++)
-    {
-        gTxPacket[i] = (UBYTE)regdata[i-1];
-    }
-
-    gTxCount = DL_I2C_fillControllerTXFIFO(I2C_0_INST, &gTxPacket[0], gTxLen);
-
-    if (gTxCount < gTxLen)
-    {
-        DL_I2C_enableInterrupt(I2C_0_INST, DL_I2C_INTERRUPT_CONTROLLER_TXFIFO_TRIGGER);
-    }
-    else
-    {
-        DL_I2C_disableInterrupt(I2C_0_INST, DL_I2C_INTERRUPT_CONTROLLER_TXFIFO_TRIGGER);
-    }
-
-    gI2cControllerStatus = I2C_STATUS_TX_STARTED;
-    while (!(DL_I2C_getControllerStatus(I2C_0_INST) & DL_I2C_CONTROLLER_STATUS_IDLE));
-    DL_I2C_startControllerTransfer(I2C_0_INST, addr, DL_I2C_CONTROLLER_DIRECTION_TX, gTxLen);
-
-    while ((gI2cControllerStatus != I2C_STATUS_TX_COMPLETE) && (gI2cControllerStatus != I2C_STATUS_ERROR))
-    {
-        __WFE();
-    }
-
-    while (DL_I2C_getControllerStatus(I2C_0_INST) & DL_I2C_CONTROLLER_STATUS_BUSY_BUS);
-
-    while (!(DL_I2C_getControllerStatus(I2C_0_INST) & DL_I2C_CONTROLLER_STATUS_IDLE));
-    delay_cycles(1000);
-
-    return 0;
+    I2C_Start();
+    I2C_SendByte(TMAG5273A1_ADDRESS << 1);     // Device Addr + Write (operation)
+    I2C_SendByte(RAddr);
+    I2C_SendByte(WData);
+    I2C_Stop();
 }
 
-char TMAG5273_ReadData(UBYTE addr, UBYTE regaddr, UBYTE num, UBYTE* Read)
+void TMAG5273_ReadData(UBYTE RAddr, UBYTE Num, UBYTE *RData)
 {
-    UBYTE data[2], i;
-    data[0] = regaddr;
-
-    gI2cControllerStatus = I2C_STATUS_IDLE;
-    DL_I2C_fillControllerTXFIFO(I2C_0_INST, &data[0], 1);
-    DL_I2C_disableInterrupt(I2C_0_INST, DL_I2C_INTERRUPT_CONTROLLER_TXFIFO_TRIGGER);
-    gI2cControllerStatus = I2C_STATUS_TX_STARTED;
-    while (!(DL_I2C_getControllerStatus(I2C_0_INST) & DL_I2C_CONTROLLER_STATUS_IDLE));
-    DL_I2C_startControllerTransfer(I2C_0_INST, addr, DL_I2C_CONTROLLER_DIRECTION_TX, 1);
-    while ((gI2cControllerStatus != I2C_STATUS_TX_COMPLETE) && (gI2cControllerStatus != I2C_STATUS_ERROR))
+    UBYTE i;
+    I2C_Start();
+    I2C_SendByte(TMAG5273A1_ADDRESS << 1);     // Device Addr + Write (operation)
+    I2C_SendByte(RAddr);
+    I2C_Start();
+    I2C_SendByte((TMAG5273A1_ADDRESS << 1) + 1);     // Device Addr + Write (operation)
+    for(i = 0; i < Num; i++)
     {
-        __WFE();
+        *(RData + i) = I2C_RecvByte();
     }
-    while (DL_I2C_getControllerStatus(I2C_0_INST) & DL_I2C_CONTROLLER_STATUS_BUSY_BUS);
-
-    while (!(DL_I2C_getControllerStatus(I2C_0_INST) & DL_I2C_CONTROLLER_STATUS_IDLE));
-    // delay_cycles(1000);
 
-    gRxLen = num;
-    gRxCount = 0;
-    gI2cControllerStatus = I2C_STATUS_RX_STARTED;
-    DL_I2C_startControllerTransfer(I2C_0_INST, addr, DL_I2C_CONTROLLER_DIRECTION_RX, gRxLen);
-    while (gI2cControllerStatus != I2C_STATUS_RX_COMPLETE)
-    {
-        __WFE();
-    }
-    while (DL_I2C_getControllerStatus(I2C_0_INST) & DL_I2C_CONTROLLER_STATUS_BUSY_BUS);
-
-    for(i=0; i<num; i++)
-    {
-        Read[i] = gRxPacket[i];
-    }
-
-    return 0;
-}
-
-void I2C_0_INST_IRQHandler(void)
-{
-    switch (DL_I2C_getPendingInterrupt(I2C_0_INST)) {
-        case DL_I2C_IIDX_CONTROLLER_RX_DONE:
-            gI2cControllerStatus = I2C_STATUS_RX_COMPLETE;
-            break;
-        case DL_I2C_IIDX_CONTROLLER_TX_DONE:
-            DL_I2C_disableInterrupt(
-                    I2C_0_INST, DL_I2C_INTERRUPT_CONTROLLER_TXFIFO_TRIGGER);
-            gI2cControllerStatus = I2C_STATUS_TX_COMPLETE;
-            break;
-        case DL_I2C_IIDX_CONTROLLER_RXFIFO_TRIGGER:
-            gI2cControllerStatus = I2C_STATUS_RX_INPROGRESS;
-            /* Receive all bytes from target */
-            while (DL_I2C_isControllerRXFIFOEmpty(I2C_0_INST) != true) {
-                if (gRxCount < gRxLen) {
-                    gRxPacket[gRxCount++] =
-                        DL_I2C_receiveControllerData(I2C_0_INST);
-                } else {
-                    /* Ignore and remove from FIFO if the buffer is full */
-                    DL_I2C_receiveControllerData(I2C_0_INST);
-                }
-            }
-            break;
-        case DL_I2C_IIDX_CONTROLLER_TXFIFO_TRIGGER:
-            gI2cControllerStatus = I2C_STATUS_TX_INPROGRESS;
-            /* Fill TX FIFO with next bytes to send */
-            if (gTxCount < gTxLen) {
-                gTxCount += DL_I2C_fillControllerTXFIFO(
-                        I2C_0_INST, &gTxPacket[gTxCount], gTxLen - gTxCount);
-            }
-            break;
-            /* Not used for this example */
-        case DL_I2C_IIDX_CONTROLLER_ARBITRATION_LOST:
-        case DL_I2C_IIDX_CONTROLLER_NACK:
-            if ((gI2cControllerStatus == I2C_STATUS_RX_STARTED) ||
-                (gI2cControllerStatus == I2C_STATUS_TX_STARTED)) {
-                /* NACK interrupt if I2C Target is disconnected */
-                gI2cControllerStatus = I2C_STATUS_ERROR;
-            }
-        case DL_I2C_IIDX_CONTROLLER_RXFIFO_FULL:
-        case DL_I2C_IIDX_CONTROLLER_TXFIFO_EMPTY:
-        case DL_I2C_IIDX_CONTROLLER_START:
-        case DL_I2C_IIDX_CONTROLLER_STOP:
-        case DL_I2C_IIDX_CONTROLLER_EVENT1_DMA_DONE:
-        case DL_I2C_IIDX_CONTROLLER_EVENT2_DMA_DONE:
-        default:
-            break;
-    }
+    I2C_Stop();
 }
 
 UBYTE tmag5273_GetDevID(void)
 {
     UBYTE Result;
 
-    TMAG5273_ReadData(TMAG5273A1_ADDRESS, DEVICE_ID, 1, &Result);
+    TMAG5273_ReadData(DEVICE_ID, 1, &Result);
     return Result;
 }
 
@@ -199,26 +79,27 @@ UWORD tmag5273_GetMANUFACTURER_ID(void)
     UWORD Result;
     UBYTE Rs1, Rs2;
 
-    TMAG5273_ReadData(TMAG5273A1_ADDRESS, MANUFACTURER_ID_LSB, 1, &Rs1);
-    TMAG5273_ReadData(TMAG5273A1_ADDRESS, MANUFACTURER_ID_MSB, 1, &Rs2);
+    TMAG5273_ReadData(MANUFACTURER_ID_LSB, 1, &Rs1);
+    TMAG5273_ReadData(MANUFACTURER_ID_MSB, 1, &Rs2);
     Result = (Rs2 << 8) + Rs1;
     return Result;
 }
 
 SBYTE tmag5273_Init(void)
 {
-    UBYTE tmp[2];
-
-    tmp[0] = 0x00;
-    TMAG5273_WriteReg(TMAG5273A1_ADDRESS, DEVICE_CONFIG_1, 1, tmp);
-    tmp[0] = 0x02;
-    TMAG5273_WriteReg(TMAG5273A1_ADDRESS, DEVICE_CONFIG_2, 1, tmp);
-    tmp[0] = 0x7C;
-    TMAG5273_WriteReg(TMAG5273A1_ADDRESS, SENSOR_CONFIG_1, 1, tmp);
-    tmp[0] = 0x04;
-    TMAG5273_WriteReg(TMAG5273A1_ADDRESS, SENSOR_CONFIG_2, 1, tmp);
-    tmp[0] = 0x01;
-    TMAG5273_WriteReg(TMAG5273A1_ADDRESS, T_CONFIG, 1, tmp);
+    UBYTE tmp;
+
+    I2C_Init();
+    tmp = 0x00;
+    TMAG5273_WriteReg(DEVICE_CONFIG_1, tmp);
+    tmp = 0x02;
+    TMAG5273_WriteReg(DEVICE_CONFIG_2, tmp);
+    tmp = 0x7C;
+    TMAG5273_WriteReg(SENSOR_CONFIG_1, tmp);
+    tmp = 0x04;
+    TMAG5273_WriteReg(SENSOR_CONFIG_2, tmp);
+    tmp = 0x01;
+    TMAG5273_WriteReg(T_CONFIG, tmp);
 
     return 0;
 }
@@ -229,7 +110,7 @@ SLONG tmag5273_GetXData(void) //uT
     UWORD xData = 0;
     SLONG Out = 0;
 
-    TMAG5273_ReadData(TMAG5273A1_ADDRESS, X_MSB_RESULT, 2, xMLSB);
+    TMAG5273_ReadData(X_MSB_RESULT, 2, xMLSB);
 
     xData = xMLSB[1] + (xMLSB[0] << 8);
     if(xData & 0x8000)
@@ -246,7 +127,7 @@ SLONG tmag5273_GetYData(void) //uT
     SWORD yData = 0;
     SLONG Out = 0;
 
-    TMAG5273_ReadData(TMAG5273A1_ADDRESS, Y_MSB_RESULT, 2, yMLSB);
+    TMAG5273_ReadData(Y_MSB_RESULT, 2, yMLSB);
 
     yData = yMLSB[1] + (yMLSB[0] << 8);
     if(yData & 0x8000)
@@ -263,7 +144,7 @@ SLONG tmag5273_GetZData(void) //uT
     SWORD zData = 0;
     SLONG Out = 0;
 
-    TMAG5273_ReadData(TMAG5273A1_ADDRESS, Z_MSB_RESULT, 2, zMLSB);
+    TMAG5273_ReadData(Z_MSB_RESULT, 2, zMLSB);
 
     zData = zMLSB[1] + (zMLSB[0] << 8);
     if(zData & 0x8000)
@@ -280,7 +161,7 @@ SWORD tmag5273_GetTemp(void) //0.01℃
     UWORD tData = 0;
     SWORD Result;
 
-    TMAG5273_ReadData(TMAG5273A1_ADDRESS, T_MSB_RESULT, 2, tMLSB);
+    TMAG5273_ReadData(T_MSB_RESULT, 2, tMLSB);
 
     tData = tMLSB[1] + (tMLSB[0] << 8);
     Result = 2500 + (((tData - 17508) * 213) >> 7); //100 * 60.1 * 128
@@ -288,14 +169,22 @@ SWORD tmag5273_GetTemp(void) //0.01℃
     return Result;
 }
 
-
-UWORD tmag5273_GetAngle(void) //x16
+#define ZeroOffset 1469
+UWORD tmag5273_GetAngle(void) //Q15
 {
     UBYTE agMLSB[2] = {0, 0};
     UWORD Result;
 
-    TMAG5273_ReadData(TMAG5273A1_ADDRESS, ANGLE_RESULT_MSB, 2, agMLSB);
-    Result = agMLSB[1] + (agMLSB[0] << 8);
+    TMAG5273_ReadData(ANGLE_RESULT_MSB, 2, agMLSB);
+    Result = 32767 - (((agMLSB[1] + (agMLSB[0] << 8)) * 728) >> 7);
+
+    if(Result < 1469)
+    {
+        return (Result + 32767 - 1469);
+    }
+    else
+    {
+        return (Result - 1469);
+    }
 
-    return Result;
 }

+ 0 - 48
ti_msp_dl_config.c

@@ -58,7 +58,6 @@ SYSCONFIG_WEAK void SYSCFG_DL_init(void)
     SYSCFG_DL_DEBUG_init();
 #endif
     SYSCFG_DL_SYSCTL_init();
-    SYSCFG_DL_I2C_0_init();
     SYSCFG_DL_MOTOR_PWM_init();
     SYSCFG_DL_PWM_F_init();
     SYSCFG_DL_HALLTIMER_init();
@@ -111,7 +110,6 @@ SYSCONFIG_WEAK void SYSCFG_DL_initPower(void)
 {
     DL_GPIO_reset(GPIOA);
     DL_GPIO_reset(GPIOB);
-    DL_I2C_reset(I2C_0_INST);
     DL_TimerA_reset(MOTOR_PWM_INST);
     DL_TimerG_reset(PWM_F_INST);
     DL_TimerG_reset(HALLTIMER_INST);
@@ -129,7 +127,6 @@ SYSCONFIG_WEAK void SYSCFG_DL_initPower(void)
 
     DL_GPIO_enablePower(GPIOA);
     DL_GPIO_enablePower(GPIOB);
-    DL_I2C_enablePower(I2C_0_INST);
     DL_TimerA_enablePower(MOTOR_PWM_INST);
     DL_TimerG_enablePower(PWM_F_INST);
     DL_TimerG_enablePower(HALLTIMER_INST);
@@ -153,17 +150,6 @@ SYSCONFIG_WEAK void SYSCFG_DL_GPIO_init(void)
     DL_GPIO_initPeripheralAnalogFunction(GPIO_HFXIN_IOMUX);
     DL_GPIO_initPeripheralAnalogFunction(GPIO_HFXOUT_IOMUX);
 
-    DL_GPIO_initPeripheralInputFunctionFeatures(
-             GPIO_I2C_0_IOMUX_SDA, GPIO_I2C_0_IOMUX_SDA_FUNC,
-             DL_GPIO_INVERSION_DISABLE, DL_GPIO_RESISTOR_PULL_UP,
-             DL_GPIO_HYSTERESIS_DISABLE, DL_GPIO_WAKEUP_DISABLE);
-    DL_GPIO_initPeripheralInputFunctionFeatures(
-         GPIO_I2C_0_IOMUX_SCL, GPIO_I2C_0_IOMUX_SCL_FUNC,
-         DL_GPIO_INVERSION_DISABLE, DL_GPIO_RESISTOR_PULL_UP,
-         DL_GPIO_HYSTERESIS_DISABLE, DL_GPIO_WAKEUP_DISABLE);
-    DL_GPIO_enableHiZ(GPIO_I2C_0_IOMUX_SDA);
-    DL_GPIO_enableHiZ(GPIO_I2C_0_IOMUX_SCL);
-
     DL_GPIO_initPeripheralOutputFunction(GPIO_MOTOR_PWM_C0_IOMUX,GPIO_MOTOR_PWM_C0_IOMUX_FUNC);
     DL_GPIO_enableOutput(GPIO_MOTOR_PWM_C0_PORT, GPIO_MOTOR_PWM_C0_PIN);
     DL_GPIO_initPeripheralOutputFunction(GPIO_MOTOR_PWM_C0_CMPL_IOMUX,GPIO_MOTOR_PWM_C0_CMPL_IOMUX_FUNC);
@@ -287,40 +273,6 @@ SYSCONFIG_WEAK void SYSCFG_DL_SYSCTL_init(void)
 
 }
 
-static const DL_I2C_ClockConfig gI2C_0ClockConfig = {
-    .clockSel = DL_I2C_CLOCK_BUSCLK,
-    .divideRatio = DL_I2C_CLOCK_DIVIDE_1,
-};
-
-SYSCONFIG_WEAK void SYSCFG_DL_I2C_0_init(void) {
-
-    DL_I2C_setClockConfig(I2C_0_INST,
-        (DL_I2C_ClockConfig *) &gI2C_0ClockConfig);
-    DL_I2C_setAnalogGlitchFilterPulseWidth(I2C_0_INST,
-        DL_I2C_ANALOG_GLITCH_FILTER_WIDTH_50NS);
-    DL_I2C_enableAnalogGlitchFilter(I2C_0_INST);
-
-    /* Configure Controller Mode */
-    DL_I2C_resetControllerTransfer(I2C_0_INST);
-    /* Set frequency to 400000 Hz*/
-    DL_I2C_setTimerPeriod(I2C_0_INST, 7);
-    DL_I2C_setControllerTXFIFOThreshold(I2C_0_INST, DL_I2C_TX_FIFO_LEVEL_EMPTY);
-    DL_I2C_setControllerRXFIFOThreshold(I2C_0_INST, DL_I2C_RX_FIFO_LEVEL_BYTES_1);
-    DL_I2C_enableControllerClockStretching(I2C_0_INST);
-
-    /* Configure Interrupts */
-    DL_I2C_enableInterrupt(I2C_0_INST,
-                           DL_I2C_INTERRUPT_CONTROLLER_ARBITRATION_LOST |
-                           DL_I2C_INTERRUPT_CONTROLLER_NACK |
-                           DL_I2C_INTERRUPT_CONTROLLER_RXFIFO_TRIGGER |
-                           DL_I2C_INTERRUPT_CONTROLLER_RX_DONE |
-                           DL_I2C_INTERRUPT_CONTROLLER_TX_DONE);
-    NVIC_SetPriority(I2C_0_INST_INT_IRQN, 0);
-    /* Enable module */
-    DL_I2C_enableController(I2C_0_INST);
-
-}
-
 /*
  * Timer clock configuration to be sourced by  / 1 (72000000 Hz)
  * timerClkFreq = (timerClkSrc / (timerClkDivRatio * (timerClkPrescale + 1)))

+ 10 - 16
ti_msp_dl_config.h

@@ -71,7 +71,6 @@ extern "C" {
 
 #define POWER_STARTUP_DELAY                                                (16)
 
-
 #define GPIO_HFXT_PORT                                                     GPIOA
 #define GPIO_HFXIN_PIN                                             DL_GPIO_PIN_5
 #define GPIO_HFXIN_IOMUX                                         (IOMUX_PINCM10)
@@ -79,20 +78,6 @@ extern "C" {
 #define GPIO_HFXOUT_IOMUX                                        (IOMUX_PINCM11)
 #define CPUCLK_FREQ                                                     72000000
 
-/* Defines for I2C_0 */
-#define I2C_0_INST                                                          I2C1
-#define I2C_0_INST_IRQHandler                                    I2C1_IRQHandler
-#define I2C_0_INST_INT_IRQN                                        I2C1_INT_IRQn
-#define I2C_0_BUS_SPEED_HZ                                                400000
-#define GPIO_I2C_0_SDA_PORT                                                GPIOB
-#define GPIO_I2C_0_SDA_PIN                                         DL_GPIO_PIN_3
-#define GPIO_I2C_0_IOMUX_SDA                                      (IOMUX_PINCM16)
-#define GPIO_I2C_0_IOMUX_SDA_FUNC                       IOMUX_PINCM16_PF_I2C1_SDA
-#define GPIO_I2C_0_SCL_PORT                                                GPIOB
-#define GPIO_I2C_0_SCL_PIN                                         DL_GPIO_PIN_2
-#define GPIO_I2C_0_IOMUX_SCL                                      (IOMUX_PINCM15)
-#define GPIO_I2C_0_IOMUX_SCL_FUNC                       IOMUX_PINCM15_PF_I2C1_SCL
-
 /* Defines for MOTOR_PWM */
 #define MOTOR_PWM_INST                                                     TIMA0
 #define MOTOR_PWM_INST_IRQHandler                               TIMA0_IRQHandler
@@ -356,6 +341,16 @@ extern "C" {
 #define HALL_HALLC_IOMUX                                         (IOMUX_PINCM15)
 #endif
 
+/* Port definition for Pin Group TMAG5273 */
+#define TMAG5273_PORT                                                    (GPIOB)
+
+/* Defines for SCL: GPIOB.2 with pinCMx 15 on package pin 14 */
+#define TMAG5273_SCL_PIN                                         (DL_GPIO_PIN_3)
+#define TMAG5273_SCL_IOMUX                                       (IOMUX_PINCM16)
+/* Defines for SDA: GPIOB.3 with pinCMx 16 on package pin 15 */
+#define TMAG5273_SDA_PIN                                         (DL_GPIO_PIN_2)
+#define TMAG5273_SDA_IOMUX                                       (IOMUX_PINCM15)
+
 /* Port definition for Pin Group GPIO_B_LED */
 #define GPIO_B_LED_PORT                                                  (GPIOB)
 
@@ -429,7 +424,6 @@ void SYSCFG_DL_initPower(void);
 void SYSCFG_DL_GPIO_init(void);
 void SYSCFG_DL_DEBUG_init(void);
 void SYSCFG_DL_SYSCTL_init(void);
-void SYSCFG_DL_I2C_0_init(void);
 void SYSCFG_DL_MOTOR_PWM_init(void);
 void SYSCFG_DL_PWM_F_init(void);
 void SYSCFG_DL_HALLTIMER_init(void);