Hi All,
This is part of a very simple experimental circuit,
and somehow the DRV8313 motor driver chip does not function as expected,
when the circuit is powered on the DRV8313, motor_1, motor_2, motor_3 pins output the desired voltages, BUT once I connect any motor load, the chip turns off right away.
The datasheet states that it can handle up to 2.5A and the motor I have connected is less than 1.5A (for a very short amount of time)
Please see datasheet: https://www.ti.com/lit/ds/symlink/drv8313.pdf?ts=1618735338519
I don't see anything wrong with the circuit design.
The code that runs, is a simple test code to enable and test the chip
See the simple code below:
This is part of a very simple experimental circuit,
and somehow the DRV8313 motor driver chip does not function as expected,
when the circuit is powered on the DRV8313, motor_1, motor_2, motor_3 pins output the desired voltages, BUT once I connect any motor load, the chip turns off right away.
The datasheet states that it can handle up to 2.5A and the motor I have connected is less than 1.5A (for a very short amount of time)
Please see datasheet: https://www.ti.com/lit/ds/symlink/drv8313.pdf?ts=1618735338519
I don't see anything wrong with the circuit design.
The code that runs, is a simple test code to enable and test the chip
See the simple code below:
C:
#define EN3 8
#define IN3 9
#define EN2 10
#define IN2 11
#define EN1 12
#define IN1 13
#define NRESET A0
#define NSLEEP A1
#define FAULT A2
#define RELAY_1 4
#define RELAY_2 5
#define RELAY_3 6
void setup() {
pinMode(EN3, OUTPUT);//EN3
pinMode(IN3, OUTPUT);//IN3
pinMode(EN2, OUTPUT); //EN2
pinMode(IN2, OUTPUT); //IN2
pinMode(EN1, OUTPUT); //EN1
pinMode(IN1, OUTPUT); //IN1
pinMode(NRESET, OUTPUT);//NRESET
pinMode(NSLEEP, OUTPUT);//NSLEEP
pinMode(FAULT, INPUT_PULLUP); //FAULT
digitalWrite(NRESET, LOW);
delay(100);
digitalWrite(NRESET, HIGH);
digitalWrite(NSLEEP, HIGH);
digitalWrite(EN1, HIGH);
digitalWrite(EN2, HIGH);
digitalWrite(EN3, HIGH);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
}
void loop() {
delay(2000);
}