MCF8329A: Regarding FG Output Error Occurrence

Part Number: MCF8329A

Tool/software:

Hi TI expert

We are using a BLDC motor(8 poles) with a motor control controller MCF8329A to construct an electric water pump.

To keep track of the real motor speed, we use the FG output signal.

We found the FG output issues when performing the motor examination.

FG waveform result outputting approximately 1.58 kHz instead of the rotor detection frequency (approximately 60 Hz), when motor runs at 3625 rpm,(See waveform below.)

The driving speed (FG output frequency) and the actual motor speed are synchronized when the motor has been stopped and started three or four times, at which point the FG signal is generally generated (approximately 60 Hz).

However, FG output issues could appear after restarting and resetting the motor power.

[1. FG signal malfunction]

[2. Normal Condition of F.G Signal]

[Inquiry details]

1. What are the potential causes of the error?

2. Could you provide advice on the improvement methods?

Best Regards,

Thao N

  • Hi Thao,

    1. Can you provide your register configuration?
    2. Please try setting FG_SEL in register CLOSED_LOOP1 (0x88) to 1b so that FG only outputs when the motor is in closed loop to see if this improves the accuracy of the FG signal.

    When the motor is spinning can you provide the value of the speed FDBK and Reference for Speed Loop when the FG pin is both in the malfunction and normal cases? If you are using motor Studio these values are provided under the MOTOR STATUS section:

    If you are not using Motor Studio these values can be read from register addresses 0x76E and 0x5D0 respectively.

    Regards,

    Joshua

  • Hi Joshua

    2.→This problem happened when I had already set FG_SEL in register CLOSED_LOOP1 (0x88) to 1b.

    1.→I will provide register configuration.

    {
    "signature":"oneui-register-data",
    "data":[
    [
    {
    "idx":0,
    "id":"ISD_CONFIG",
    "value":"0x04A2D4A1",
    "addr":"0x00000080"
    },
    {
    "idx":1,
    "id":"REV_DRIVE_CONFIG",
    "value":"0x48200000",
    "addr":"0x00000082"
    },
    {
    "idx":2,
    "id":"MOTOR_STARTUP1",
    "value":"0x108640C0",
    "addr":"0x00000084"
    },
    {
    "idx":3,
    "id":"MOTOR_STARTUP2",
    "value":"0x23488001",
    "addr":"0x00000086"
    },
    {
    "idx":4,
    "id":"CLOSED_LOOP1",
    "value":"0x1771143C",
    "addr":"0x00000088"
    },
    {
    "idx":5,
    "id":"CLOSED_LOOP2",
    "value":"0x17A00E19",
    "addr":"0x0000008A"
    },
    {
    "idx":6,
    "id":"CLOSED_LOOP3",
    "value":"0x2DC3D828",
    "addr":"0x0000008C"
    },
    {
    "idx":7,
    "id":"CLOSED_LOOP4",
    "value":"0x1E590C8A",
    "addr":"0x0000008E"
    },
    {
    "idx":8,
    "id":"REF_PROFILES1",
    "value":"0x22C284C6",
    "addr":"0x00000094"
    },
    {
    "idx":9,
    "id":"REF_PROFILES2",
    "value":"0x34C6680B",
    "addr":"0x00000096"
    },
    {
    "idx":10,
    "id":"REF_PROFILES3",
    "value":"0x1FAFD730",
    "addr":"0x00000098"
    },
    {
    "idx":11,
    "id":"REF_PROFILES4",
    "value":"0x00081020",
    "addr":"0x0000009A"
    },
    {
    "idx":12,
    "id":"REF_PROFILES5",
    "value":"0x98202FF8",
    "addr":"0x0000009C"
    },
    {
    "idx":13,
    "id":"REF_PROFILES6",
    "value":"0x007FFFC2",
    "addr":"0x0000009E"
    }
    ],
    [
    {
    "idx":0,
    "id":"FAULT_CONFIG1",
    "value":"0x344241A6",
    "addr":"0x00000090"
    },
    {
    "idx":1,
    "id":"FAULT_CONFIG2",
    "value":"0x71022888",
    "addr":"0x00000092"
    }
    ],
    [
    {
    "idx":0,
    "id":"INT_ALGO_1",
    "value":"0x18000000",
    "addr":"0x000000A0"
    },
    {
    "idx":1,
    "id":"INT_ALGO_2",
    "value":"0x00000000",
    "addr":"0x000000A2"
    }
    ],
    [
    {
    "idx":0,
    "id":"PIN_CONFIG",
    "value":"0x00032001",
    "addr":"0x000000A4"
    },
    {
    "idx":1,
    "id":"DEVICE_CONFIG1",
    "value":"0x10100002",
    "addr":"0x000000A6"
    },
    {
    "idx":2,
    "id":"DEVICE_CONFIG2",
    "value":"0x03E8C00C",
    "addr":"0x000000A8"
    },
    {
    "idx":3,
    "id":"PERI_CONFIG1",
    "value":"0x7D445CC0",
    "addr":"0x000000AA"
    },
    {
    "idx":4,
    "id":"GD_CONFIG1",
    "value":"0x0000807A",
    "addr":"0x000000AC"
    },
    {
    "idx":5,
    "id":"GD_CONFIG2",
    "value":"0x00000400",
    "addr":"0x000000AE"
    }
    ],
    [
    {
    "idx":0,
    "id":"GATE_DRIVER_FAULT_STATUS",
    "value":"0x00000000",
    "addr":"0x000000E0"
    },
    {
    "idx":1,
    "id":"CONTROLLER_FAULT_STATUS",
    "value":"0x00000000",
    "addr":"0x000000E2"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGO_STATUS",
    "value":"0x00000004",
    "addr":"0x000000E4"
    },
    {
    "idx":1,
    "id":"MTR_PARAMS",
    "value":"0x00000000",
    "addr":"0x000000E6"
    },
    {
    "idx":2,
    "id":"ALGO_STATUS_MPET",
    "value":"0x00000000",
    "addr":"0x000000E8"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGO_CTRL1",
    "value":"0x8A500000",
    "addr":"0x000000EA"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGO_DEBUG1",
    "value":"0x80000000",
    "addr":"0x000000EC"
    },
    {
    "idx":1,
    "id":"ALGO_DEBUG2",
    "value":"0x00000018",
    "addr":"0x000000EE"
    },
    {
    "idx":2,
    "id":"CURRENT_PI",
    "value":"0x00000000",
    "addr":"0x000000F0"
    },
    {
    "idx":3,
    "id":"SPEED_PI",
    "value":"0x001A0105",
    "addr":"0x000000F2"
    },
    {
    "idx":4,
    "id":"DAC_1",
    "value":"0x00000000",
    "addr":"0x000000F4"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGORITHM_STATE",
    "value":"0x00000000",
    "addr":"0x00000196"
    },
    {
    "idx":1,
    "id":"FG_SPEED_FDBK",
    "value":"0x7FFFFFFF",
    "addr":"0x0000019C"
    },
    {
    "idx":2,
    "id":"BUS_CURRENT",
    "value":"0x00000000",
    "addr":"0x0000040E"
    },
    {
    "idx":3,
    "id":"PHASE_CURRENT_A",
    "value":"0x00000000",
    "addr":"0x0000043C"
    },
    {
    "idx":4,
    "id":"PHASE_CURRENT_B",
    "value":"0x00000000",
    "addr":"0x0000043E"
    },
    {
    "idx":5,
    "id":"PHASE_CURRENT_C",
    "value":"0x00000000",
    "addr":"0x00000440"
    },
    {
    "idx":6,
    "id":"CSA_GAIN_FEEDBACK",
    "value":"0x00000000",
    "addr":"0x00000450"
    },
    {
    "idx":7,
    "id":"VOLTAGE_GAIN_FEEDBACK",
    "value":"0x00000000",
    "addr":"0x00000458"
    },
    {
    "idx":8,
    "id":"VM_VOLTAGE",
    "value":"0x06738000",
    "addr":"0x0000045C"
    },
    {
    "idx":9,
    "id":"PHASE_VOLTAGE_VA",
    "value":"0x0287C978",
    "addr":"0x00000460"
    },
    {
    "idx":10,
    "id":"PHASE_VOLTAGE_VB",
    "value":"0x028984DF",
    "addr":"0x00000462"
    },
    {
    "idx":11,
    "id":"PHASE_VOLTAGE_VC",
    "value":"0x028DD963",
    "addr":"0x00000464"
    },
    {
    "idx":12,
    "id":"SIN_COMMUTATION_ANGLE",
    "value":"0x00000000",
    "addr":"0x000004AA"
    },
    {
    "idx":13,
    "id":"COS_COMMUTATION_ANGLE",
    "value":"0x00000000",
    "addr":"0x000004AC"
    },
    {
    "idx":14,
    "id":"IALPHA",
    "value":"0x00000000",
    "addr":"0x000004CC"
    },
    {
    "idx":15,
    "id":"IBETA",
    "value":"0x00000000",
    "addr":"0x000004CE"
    },
    {
    "idx":16,
    "id":"VALPHA",
    "value":"0x00000000",
    "addr":"0x000004D0"
    },
    {
    "idx":17,
    "id":"VBETA",
    "value":"0x00000000",
    "addr":"0x000004D2"
    },
    {
    "idx":18,
    "id":"ID",
    "value":"0x00000000",
    "addr":"0x000004DC"
    },
    {
    "idx":19,
    "id":"IQ",
    "value":"0x00000000",
    "addr":"0x000004DE"
    },
    {
    "idx":20,
    "id":"VD",
    "value":"0x00000000",
    "addr":"0x000004E0"
    },
    {
    "idx":21,
    "id":"VQ",
    "value":"0x00000000",
    "addr":"0x000004E2"
    },
    {
    "idx":22,
    "id":"IQ_REF_ROTOR_ALIGN",
    "value":"0x00000000",
    "addr":"0x0000051A"
    },
    {
    "idx":23,
    "id":"SPEED_REF_OPEN_LOOP",
    "value":"0x00000000",
    "addr":"0x00000532"
    },
    {
    "idx":24,
    "id":"IQ_REF_OPEN_LOOP",
    "value":"0x00000000",
    "addr":"0x00000542"
    },
    {
    "idx":25,
    "id":"SPEED_REF_CLOSED_LOOP",
    "value":"0x00000000",
    "addr":"0x000005D0"
    },
    {
    "idx":26,
    "id":"ID_REF_CLOSED_LOOP",
    "value":"0x00000000",
    "addr":"0x0000060A"
    },
    {
    "idx":27,
    "id":"IQ_REF_CLOSED_LOOP",
    "value":"0x00000000",
    "addr":"0x0000060C"
    },
    {
    "idx":28,
    "id":"ISD_STATE",
    "value":"0x00000000",
    "addr":"0x000006B0"
    },
    {
    "idx":29,
    "id":"ISD_SPEED",
    "value":"0x00000000",
    "addr":"0x000006BA"
    },
    {
    "idx":30,
    "id":"IPD_STATE",
    "value":"0x00000000",
    "addr":"0x000006E4"
    },
    {
    "idx":31,
    "id":"IPD_ANGLE",
    "value":"0x00000000",
    "addr":"0x0000071A"
    },
    {
    "idx":32,
    "id":"ED",
    "value":"0x00000000",
    "addr":"0x0000075C"
    },
    {
    "idx":33,
    "id":"EQ",
    "value":"0x00000000",
    "addr":"0x0000075E"
    },
    {
    "idx":34,
    "id":"SPEED_FDBK",
    "value":"0x00000000",
    "addr":"0x0000076E"
    },
    {
    "idx":35,
    "id":"THETA_EST",
    "value":"0x00000000",
    "addr":"0x00000774"
    }
    ]
    ]
    }

    Best Regards,

    Thao N

  • Hi Thao,

    1. Since this issue appears after a device restart, I would like to check the EEPROM value of CLOSED_LOOP1. When you first power up the device, can you read the devices registers and check the value of the CLOSED_LOOP1 Register (address 0x88)?

    2. I would like to make sure the motor is spinning at the expected speed. Can you check the value of the speed FDBK and Reference for Speed Loop when the FG pin is both in the malfunction and normal cases while the motor is spinning? 

    Regards,

    Joshua

  • Hi Joshua

    1. When I first powered up the device, the read value of CLOSED_LOOP1 (addr:0x00000088) was 0x1771143C.

    2. Since I2C communication is lost due to noise while driving the motor,So I checked the speed values by setting up the internal values to be output as voltage from the DACOUT pin.

     Reference: Set DACOUT output to bit 29:28 in DEVICE_CONFIG1: 0x00100002.
          Set 0x76E in bit11:0 of DAC_1: 0x0000876E to read SPEED_FDBK.

    →I extracted SPEED_FDBK (0x76E) from DACOUT and verified DACOUT speed and DRV_FG. Even if the DACOUT speed is regular(same as the actual speed), DRV_FG produces a high frequency signal.

    I will attach the waveform of FG signal malfunction with SPEED_FDBK signal.


    Added Information: The high frequency of DRV_FG appears only during the first cycle of driving after powering on and continues until the end of one cycle of driving. It returns to normal frequency(same as the actual speed) when I send the running command in the next cycle.

    Best Regards,

    Thao N

  • Hi Thao,

    Thank you for your question! Yesterday was a holiday in the US, I appreciate your patience as we work to respond to your question.

    Regards,

    Anthony Lodi