Interesting ideas, thanks! How would I connect a second transistor to re-invert the signal? Also, could I use a PNP transistor instead?
I'll have to think a bit more about the second idea and see if I can understand what you're saying. On Tue, Jun 1, 2021 at 3:56 PM Martin Stejskal <[email protected]> wrote: > > 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. >>
