Hi, instead of hacking SW, why not hack HW? Add one more extra NPN, so it
will invert signal again?

Depends how brave you are, but there is also another (bit more dangerous)
way - add serial resistance. Thing is that every GPIO suppose to have some
protection diode (in generic - "every" IC - there are exceptions of
course). They typically stand like ~1 mA without problems. I assume that
your reset pin on Arduino have 22k pull-up -> use serial resistance ~1/10
of that -> 2k2 -> ~70uA leakage when GPIO on Rpi will be 3.3V. That should
not burn Rpi's GPIO. When GPIO on Rpi will be in low, current will be
~200uA, but it will be leaking through switch transistor, which actually
can deal with much higher currents.

But before you do any HW changes, make sure you made calculations (worst
case) and all necessary measurements before trying on real HW. You have
been warned.

When you think about attached schematic, it is just 2 resistors with 2
different power supplies -> quite easy math. If you're not sure, any free
simulator can help you out.

Best regards
  Martin S.

On Tue, 1 Jun 2021 at 19:59, John Klimek <[email protected]> wrote:

> I'm using avrdude (v6.3-20171130) on my Raspberry Pi, but I need the
> RST pin to be inverted because I'm using an NPN transistor to protect
> the RPi from my Arduino's 5V power.
>
> Here is the command line I'm using for testing:
>
> avrdude -C /root/hid/.platformio/packages/tool-avrdude/avrdude.conf -C
> +avrdude-rpi.conf -P /dev/spidev0.0:/dev/gpiochip0 -c rpi -p m32u4 -v
> -v -v -v
>
> Here is avrdude-rpi.conf:
>
> programmer
>         id = "rpi";
>         desc = "RPi SPI programmer";
>         type = "linuxspi";
>         reset = ~25;
>         baudrate = 400000;
> ;
>
> Here is the avrdude output:
>
> avrdude: Version 6.3-20171130
>          Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
>          Copyright (c) 2007-2014 Joerg Wunsch
>
>          System wide configuration file is
> "/root/hid/.platformio/packages/tool-avrdude/avrdude.conf"
>          User configuration file is "/root/.avrduderc"
>          User configuration file does not exist or is not a regular
> file, skipping
>          Additional configuration file is "avrdude-rpi.conf"
>
>          Using Port                    : /dev/spidev0.0:/dev/gpiochip0
>          Using Programmer              : rpi
>
> avrdude done.  Thank you.
>
> I've checked the RST pin (25) on my oscilloscope and it's not
> triggering at all when I use the inverted (~) syntax.  If I remove the
> (~) then it does trigger the RST pin but not inverted as I need.
>
>

Reply via email to