0
\$\begingroup\$

Note: Feedback has been addressed and the circuit has been updated, however the same behaviour still applies

I'm new to creating circuits but have designed a PCB and made it with Eagle, however, the BD6210F that I'm using doesn't want to allow me to run the motor due to the voltage only being input at 2.5v.

According to the datasheet for the BD6210F, there are two important steps to getting this device to work:

  1. Choose the operating mode (Page 10 attached at bottom has a table of choice of which I chose b and c)
  2. Based on B, C I need to have VREF Connected to VCC

To do this with Arduino I'm doing the following with an ESP32:

  if (is_open) {
    digitalWrite(LEFT_PIN, LOW);
    digitalWrite(RIGHT_PIN, HIGH);
  } else {
    digitalWrite(LEFT_PIN, HIGH);
    digitalWrite(RIGHT_PIN, LOW);
  }

I've used a multimeter to confirm that 3.3v is going into RIN and low voltage is being applied to FIN, and the reverse given either situation, however, the motor is only receiving 2.5v of power due to the source voltage (VCC) being 2.5v.

I've isolated this down to one section of the board which is the ground plane since when I measure any voltage with it grounded to that there's a drop of 0.8v, so my 5v input measures 4.2v while my 3.3v input measures 2.5v even though if I ground to the battery source directly it measures 3.3v and 5v respectively. I'm not sure why this happens though or what I need to do to stop this from happening, any advice or pointers would be great since I'm stumped!

References

Operating Modes

Full Schematic

PCB Schematic

Update After Modification Edit

After redoing the schematic to use enable and printing out a new circuit board, I realized the voltage drop only occurs with batteries and is still present even with the extra capacitors. On top of that I've discovered more of its behavior: Measuring the voltage to the voltage regulator this is what I'm given:

  1. With no battery connected 0v (obviously right?!)
  2. With battery connected the voltage jumps to 3.6 and then immediately starts dropping
  3. Voltage hits 2.5v and stops dropping
  4. Disconnecting the battery and there is now ~0.7v in the circuit that begins discharging slowly till it reaches 0

I'm not sure why this would happen or why it's acting as a battery storage!

New Schematic

schematic new enter image description here

\$\endgroup\$
20
  • \$\begingroup\$ Can I ask what the transistor is meant to accomplish, if that is not saturated, the ground of the chip will rise. \$\endgroup\$ – Reroute May 5 '20 at 8:20
  • \$\begingroup\$ I honestly wasn't too sure about this one @Reroute, but I figured it would be a good way to cut power to the motor driver, please correct me if I'm wrong, I'm still learning! It's a very low power application and spends most of the time in deep sleep \$\endgroup\$ – MikaAK May 5 '20 at 8:34
  • 1
    \$\begingroup\$ That would be my main suspicion for now, try shorting out collector to emitter and see if your problem goes away, the more modern approach would be to use a logic level N-channel mosfet with a low on resistance, as they can switch amps without power being consumed from the micro controller. \$\endgroup\$ – Reroute May 5 '20 at 8:37
  • \$\begingroup\$ Hmm yeah I did this and it seems to work now, I'm trying to get it to reproduce again so i can confirm, do you have a favorite package for the mosfet you can recommend? I'll have to switch out the package \$\endgroup\$ – MikaAK May 5 '20 at 8:57
  • \$\begingroup\$ Plenty of mosfets in Sot23, so you can likely find one that can be a drop in replacment \$\endgroup\$ – Reroute May 5 '20 at 9:07
1
\$\begingroup\$

Building on top of @Reroute's comment, this voltage offset is probably due to the non-zero collector-to-emitter voltage of your bipolar transistor. If the intention was to cut the power of the motor when it is not being used, you could have done it by setting the motor in Stand-by mode.

According to the datasheet, once in stand by mode, the internal circuitry is turned off and the current consumption drops from \$1.5mA\$ tp \$10\mu A\$. Setting the motor in stand-by mode requires only that you pull the pins \$F_{IN}\$ and \$R_{IN}\$ low.

table

\$\endgroup\$
8
  • \$\begingroup\$ Is 10𝜇𝐴 going to be less than with it cut off with a transistor though? I guess I'm unaware of if transistors take up amperage to be honest. The ESP32 on deep sleep takes up around 10𝜇𝐴 itself and I wanted to keep it as low as possible \$\endgroup\$ – MikaAK May 5 '20 at 8:59
  • \$\begingroup\$ Probably not, a BJT BC548 has a cut-off current of 15nA and a logic MOSFET would be around the same range. \$\endgroup\$ – vtolentino May 5 '20 at 9:07
  • \$\begingroup\$ Good to know, I had a feeling transistor cut off would be more efficient than standby which is why I ended up going that route, I don't really understand how a lot of components work with amperage yet, still lots to learn! \$\endgroup\$ – MikaAK May 5 '20 at 9:21
  • \$\begingroup\$ If the quiescent current during sleep mode of your board is much larger than \$10 \mu A\$, meaning that the latter is almost negligible, you should consider using the stand-by function of the motor driver. \$\endgroup\$ – vtolentino May 5 '20 at 9:42
  • \$\begingroup\$ When it's sleeping it only will be powering the esp32 plus the transistor/mosfet so it should be around 10𝜇𝐴 only! \$\endgroup\$ – MikaAK May 5 '20 at 19:03
0
\$\begingroup\$
  1. The problem causes by BJT due to v_ce, if you really want to do that, use logic level fet instead.
  2. If you you vcc from micro controller to power motor , it will lead to power problem like voltage drop or voltage spike. The effect if his mcu can be reset due to brownout or just broke by high voltage spike
\$\endgroup\$
14
  • \$\begingroup\$ VCC does split off to microcontroller and motor driver. I actually have seen resets so I'm assuming this is why, how can I fix this? Also what is v_ce (sorry I'm a newb)? \$\endgroup\$ – MikaAK May 5 '20 at 9:22
  • \$\begingroup\$ Voltage across collector and emitter of BJT. when you use bjt as switch it have voltage drop across it. \$\endgroup\$ – M lab May 5 '20 at 9:38
  • \$\begingroup\$ For mcu reset it just some time motor draw to much current and vcc is drop for sometime cause mcu toreset. \$\endgroup\$ – M lab May 5 '20 at 9:41
  • \$\begingroup\$ We must have proper power supply for motor and add bypass capacitor it help a lot. \$\endgroup\$ – M lab May 5 '20 at 9:42
  • \$\begingroup\$ By proper power supply, you mean separate? This isn't possible given the size constraints I'm working with unfortunately I'll try and use a bypass capacitor closer to the motor \$\endgroup\$ – MikaAK May 5 '20 at 19:01
0
\$\begingroup\$

Turns out it was the battery, I'm not sure how to measure max draw but 1/2 AA batteries aren't capable of providing 200ma of power.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.