Quantcast
Channel: Motor drivers forum - Recent Threads
Viewing all articles
Browse latest Browse all 14309

MCT8316A: Some drivers are stuck on startup or during operation

$
0
0
Part Number: MCT8316A

Tool/software:

Hi everyone,

we're facing issues with MCT8316AV (I²C variant) BLDC drivers. First a summary of our use case:

  • Single small PCBs containing only the driver plus some supporting components
  • Programming of EEPROM registers during production/testing
  • In normal operation, analog control mode is used and I²C is not connected (but pulled up of course)
  • The driver runs a high-speed radial fan at up to 35krpm or about 2.3kHz electrical
  • The fan type is TF037E-2000-F
  • Spin direction is fixed via I²C configuration to reverse
  • Brake is disabled via I²C configuration
  • 10uH inductors are on the PCB, as the motor's own low inductance otherwise causes OCP trips
  • Motor operation is 24/7, but the rotation speed is usually 8-20krpm with daily peaks of about 1min. to 35krpm

From the assemblies in use so far (only a few dozen), all could be programmed and tested without issues. About 90% of them also run fine during normal use. They do so for a few months now. However, about 10% of the units show erratic behavior:

  • After a power up, they might just not start the fan anymore, without any visible jerk of the blades or an audible sound
  • A single or multiple power cycle(s) may bring the unit back to life, after which it again runs well, only for the issue to come back later
  • In at least two occasions, the driver got stuck while the fan was actually running; the fan just stopped, all outputs disabled
  • The voltages on the driver are ok (VM 24V, DVDD 1.55V, BUCK 4.97V, CP 29.2V, AVDD 3.3V)
  • No fault is reported, not via I²C and not on the pin, nFAULT is high

For one of the devices which failed during runtime, I hooked up the programming equipment to read out the I²C registers. The value of register 0xEA is 0x20011275 and if I got the bits correctly, this indicates that the state machine is in state MOTOR_RUN. But the motor is definitely not running and there is also no FG output (constant high-level). I tried setting the register 0xE8 to 0x10008000 to override the speed command with 12.5% and this value can be read back correctly, but the motor is still not spinning.

To me, it looks like the internal controller of the driver or at least a task of it completely crashed, leading to the motor no longer being driven, while the I²C interface is still working.

Questions:

  • Is there anything wrong with the configuration which could lead to this behavior?
  • What can we do to avoid such failures?
  • Do we need to expect the working devices to also fail in such a way on the longer run?

Here are the values of all registers (I evaluated the proper values using the EVM and exported the register file):

isd_config               (0x0080): 0x4404c140
motor_startup1           (0x0082): 0x75489197
motor_startup2           (0x0084): 0x1a2d7980
closed_loop1             (0x0086): 0x0b3b2400
closed_loop2             (0x0088): 0x020024f8
closed_loop3             (0x008a): 0x4cc40110
closed_loop4             (0x008c): 0x000ce944
const_speed              (0x008e): 0x00a00500
const_pwr                (0x0090): 0x66664c80
150_deg_two_ph_profile   (0x0096): 0x36db6da6
150_deg_three_ph_profile (0x0098): 0x36db6d80
trap_config1             (0x009a): 0x054ba106
trap_config2             (0x009c): 0x3a880000
fault_config1            (0x0092): 0x7fff9071
fault_config2            (0x0094): 0x0f47a009
pin_config1              (0x00a4): 0x00000050
pin_config2              (0x00a6): 0x00101462
device_config            (0x00a8): 0x7fff0000
gd_config1               (0x00ac): 0x1c40030c
gd_config2               (0x00ae): 0x16a00000
gate_driver_fault_status (0x00e0): 0x00000000
controller_fault_status  (0x00e2): 0x00000000
sys_status1              (0x00e4): 0x00ef0ad0
sys_status2              (0x00ea): 0x20011275
sys_status3              (0x00ec): 0x0007002d
algo_ctrl1               (0x00e6): 0x00000000
device_ctrl              (0x00e8): 0x10008000
input_duty               (0x040c): 0x00cc0000
current_duty             (0x04f6): 0x00000000
set_duty                 (0x0506): 0x00020000
motor_speed_pu           (0x05b2): 0x00000000
dc_bus_power_pu          (0x06f4): 0x000000e5

PCB schematic:

PCB layout (GND plane on bottom unfilled) for visibility:

The register JSON file from the EVM software should be attached (if that worked...).

Thanks and best regards,
Philipp


Viewing all articles
Browse latest Browse all 14309

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>