Output current GPIO Orin Nano dev kit

Hi,
I’m tyring to use Jetson Orin Nano Developer kit to drive DC motors via " HandsOn Tech 7A/160W H-Bridge High Power DC Motor Driver Module": http://handsontec.com/index.php/my-account/lost-password_B/

I enabled the PWM signal on pin 33 and 15 using the “sudo python3 /opt/nvidia/jetson-io/jetson-io.py” app. When I connect the pins to the motor driver it seems to deliver only 0.5mA from the logical pins. When I try to the the same with ESP32 it delivers 2mA. It looks like 0.5mA from Jetson DevKit is not enough to switch the logical levels. Would you advice what I should do to make it work?

Thanks

You can put an 74LVC541A buffer chip between the Jetson GPIOs and the motor driver board.

Datasheet:

You must have 100nF X7R between VCC (Pin 20) and GND (Pin 10). Place this capacitor as close to pin20 as possible.
EN1 (pin 1) and EN2 (pin 19) must be tied to ground.
Unused inputs MUST(!) be tied to GND or VCC.
Unused outputs must be left open.
VCC needs to be connected to 3.3V supply.

This chip can sink and source up to 25mA per output - total currents must not exceed 100mA.

Optocouplers usually require current limiting resistors. Look into the motor driver user manual for further information. These resistors may be on the controller board, or you need to add then between the buffer chip and the motor controller board. Without proper current limiting resistors there may be excessive currents damaging the GPIO pins of the Jetson board or the internal LED of the optocoupler.

The input pins of the buffer chip are high impedance and only draw ±0.02mA (±20uA) at most.

Well, does it mean that the GPIO pins on Orin Nano DevKit are not capable to deliver sufficient current to change the logical levels of external devices? Is there no setting that I can make programmatically? I really don’t want to design and make a PCB for this purpose. If Jetson GPIO is not able to handle it is there a component that I can use without making a PCB?

thanks for info

The processor GPIO pins are 1.8V signals. The carrier board uses TI TXB0108 level shifters in order to provide 3.3V signals. This has two issues:

  1. There is absolutely no way to change the io characteristics by software because the level shifters don’t support this.
  2. The level shifters used on the carrier board have automatic direction control. each signal has a somewhat tricky circuit that determines the direction of signal flow. This feature is somewhat sensitive - a pullup or pulldown or a larger capacitive load is enough to disturb it. There are also no software controls for this - this is pure hardware.

For my own custom carrier board I’m using level shifters with manual direction control (DIR pin, SN74AXC8T245), and these don’t have these problems and they have a bigger output current capability. However, I do understand why NVidia has chosen automatic-direction level shifters.

Conclusion: Yes, you really need to use either a buffer chip or a different motor driver with digital isolators instead of optocouplers. The one you use seem somewhat China garbage to me. You may also get away with an 74HC541 (8mA current output) - this is available in DIL package and can be used on a perfboard.

Sorry, this is how physics and electronics work.

Thank you for all the information! And you’re probably right about the DC motor driver. I think that it’s a Chinese product (design and manufacturing). Nevertheless it was working well with Raspberry Pi 4B and also with ESP32 which are very popular SBC and MCU. So I didn’t expect this issue. Well, it is what it is. It only means an extra work on my project. I’ll try to use another line driver that we have in here. All the shops in here are out of stock in case of the DIL version of 74HC541.

Pi and ESP32 are manufactured in older semiconductor precesses - their transistors are larger and therefore slower but can withstand higher voltages. The Orin SOCs have mostly smaller, faster transistors, which only run at lower voltages.

If you can’t get an HC541, then there are many alternatives: HC244 and HC245 for 8 signals, HC08, HC32, HC125, HC126 for 4 signals per chip. You can also use HCT chips instead of HC - they need 5V supply, take 3.3V inputs and produce 5V outputs.

Many you need a bit more electronics basics.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.