I’m trying to create a software controlled reset for the basic atom series, as an alternative to using a reset button.
How could i go about pulling the reset pin down, by using a transistor, or something similar.
I want to avoid using a relay switch because of size constraints.
I will test this with the atom nano, but it’ll eventually be used for the BAPro 40.
It would have to ground a normally high pin, the same way the reset button does.
I am not a hardware designer, but I would guess you would not need a transistor. I believe that the reset pin is pulled high by a 10K resistor. So you might simply get away with connecting an IO pin to this as well. As long as the IO pin stays high or floating during boot, it would probably be fine. Or maybe you could connect a small capacitor to the IO pin to give it a little juice during this…
On the BM forum, I gave a possible software reset for Nano. For the Atom Pro, I would try doing something like:
reset:
mov.w @0, r0 ; get the reset vector
mov.w 0, e0 ; convert to 32 bit address
push.l er0 ; put that address on the stack
rts ; return - jump to the address we calculated...
or maybe more simple:
reset:
mov.w @0, r0 ; get the reset vector
mov.w 0, e0 ; convert to 32 bit address
jmp @er0
There are probably easier ways to do this, but this may work… Warning: I typed this in on the fly so there could be issues…
Kurt