1
\$\begingroup\$

I have a tiny embedded system build around a Holtek HT48F06 microcontroller to monitor RFID tags (RDM630). Unfortunately it only detects the arrival, not the removal of a tag. As a workaround, I want to reset the microcontroller periodically (say once per second), since that triggers a new attempt of detection (or does that seem like a bad idea?). Using a 555, I found some suitable values (22µF, 4+100kΩ) for a timer to trigger the reset.

However, in order to delay the power-on-reset, the low-active RESET-pin of the microcontroller is connected to a RC net like the following:

schematic

simulate this circuit – Schematic created using CircuitLab

So my question is, what would be a good way to connect a timer to the reset pin, preferably without making any changes to the existing circuit (I am not to keen about fiddling with the tiny smd pcb).

\$\endgroup\$
  • 3
    \$\begingroup\$ It seems to me that randomly resetting the processor is a really bizzare way to correct what should be a fairly simple software problem. Resetting a microprocessor should not be a normal planned event - In my opinion, you should only do a reset in the event of disaster, or some unpredictable event. \$\endgroup\$ – Peter Bennett Jun 16 '15 at 1:07
  • 1
    \$\begingroup\$ Yes, you are totally right. Unfortunately this is a third-party module that I can neither reprogram, nor have schematics of. \$\endgroup\$ – martin Jun 16 '15 at 5:20
  • 1
    \$\begingroup\$ Clever approach to using the tools you're given to make them do a job they were never intended to do \$\endgroup\$ – Scott Seidman Jun 16 '15 at 12:59
2
\$\begingroup\$

The output of a 555 is normally low. Since the minimum duty cycle for an astable 555 is 50%, you want to use a very high duty cycle (close to 100%) such that the low period is very short which will reset the microcontroller.

So you don't interfere with the existing circuit, you want to make use of an open-drain buffer, like the 74LS07. The 100K resistor R1 will act as a pullup. The circuit will not interfere with the power-up reset since the output of the buffer will be high-impedance when it is a logic 1.

\$\endgroup\$
  • \$\begingroup\$ Wouldn't the usage of an inverter require a very low duty cycle, if I want to keep the reset signal as short as neccessary? I understand, that this is hard to accomplish using a 555. However, since I already have a raspberry pi reading from the MCU (via uart), could I use a GPIO (3.3V high) to control the mentioned 74LS07? \$\endgroup\$ – martin Jun 16 '15 at 9:25
  • \$\begingroup\$ @martin You are quite right, but you can get around this by configuring the 555 with a very high duty cycle, see my edited answer. Also, I had a mistake, the 74LS07 is non-inverting so it still is the correct chip to use. Yes, you could do this with a Raspberry Pi; if the GPIO can be configured as open-drain you wouldn't need the 74LS07. \$\endgroup\$ – tcrosley Jun 16 '15 at 12:29
  • \$\begingroup\$ Just to be on the safe side, I am still using the open drain buffer but (in order to keep the chipcount low) refrained from using the 555 :-) Controlled by the raspberry pi, the removal detection works just as planned. \$\endgroup\$ – martin Jul 13 '15 at 21:08
  • \$\begingroup\$ One last question, @tcrosley: should I worry about high current due to shorting C1 through the 74LS07 in LOW state? Would a resistor between RES and the buffer-output help, or is that unnecessary? \$\endgroup\$ – martin Jul 14 '15 at 18:47
  • \$\begingroup\$ @martin There is no problem grounding the line with the capacitor there. Leave the circuit as is. \$\endgroup\$ – tcrosley Jul 14 '15 at 19:14
1
\$\begingroup\$

The easiest way to do what you want is to use your 555 timer and connect the output to the bottom end of C1.

That is: lift the bottom end of C1 from ground and instead connect it to the output of the 555 timer. You should also be running the timer from the same supply rail as the Holtek chip.

Use a CMOS 555 timer such as TLC555. These work down to less than 3V.

Be sure to set the pulse width of the timer to be only as wide as necessary. This would most likely be only a few milliseconds.

\$\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.