Post Go back to editing

How can change rotation direction of my DC motor using MAX22216 in two FBs configuration?

Category: Hardware
Product Number: MAX22216 , MAX222

Hello guys

I am using the MAX22216 interfaced with a STM32H7.

I have configured the IC according to the datasheet:
CHS[3:0] = 0x05 => 2 x independent FB
with these settings configured:
Brushed DC Motor Settings
● DC motor drive mode: CTRL_MODE[1:0] = 10
● Current Limiter Threshold: DC_L2H[15:0]
● Drive Voltage Level: DC_H[15:0]
● Brake Current Level: TIME_L2H[15:0]

So far everything works, but I don't understand how to make the motor turn in the opposite direction.

Here is what happened:
-> If CNTL0 and CNTL1 are both 'LOW', the FB status is HiZ, as desired.
-> If CNTL0 and CNTL1 are both 'HIGH', the FB status is BRAKE (50% PWM on both channels), as desired.
-> If CNTL0 is 'HIGH' and CNTL1 is 'LOW', the motor rotates as desired (OUT0 = HIGH / OUT1 = LOW).
-> Strangely enough - I must be misunderstanding something here - the motor turns in exactly the same direction when the polarity of CNTL0/1 is reversed (CNTL0 'LOW' and CNTL1 'HIGH'). I assume that reversing the polarity changes the direction of rotation, but this is not the case. What am I missing here, or where could the cause be?


Many thanks for your support! Best regards
Benjamin Geiger

  • I added my current configuration of the MAX22216:

    CFG_CTRL0
    0xD 0x1B 0x29 0x37
    BIT(5) | BIT(8) | BIT(9) | BIT(10) | BIT(15)

    CFG_CTRL1
    0x0E 0x1C 0x2A 0x38
    BIT(1) | BIT(2)

    DC_H
    0x0A 0x18 0x26 0x34
    0x7FFF

    DC_L2H
    0x09 0x17 0x25 0x33
    0x258

    TIME_L2H
    0x1A 0x28 0x36 0x0C
    0x2710

    FAULT1
    0x66
    BIT(4)

    CFG_P
    0x15 0x23 0x31 0x3F
    0x0FFF

    CFG_I
    0x16 0x24 0x32 0x40
    0xA

    GLOBAL_CFG
    BIT(15) | 0x05