Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

RC circuit, discharge with digital signal from FPGA

  1. Apr 6, 2014 #1
    Hi all,

    my task is to measure the charge time of an RC circuit with a counter using FPGA, once the cap is charged, i must discharge it again for next input. Idea is to discharge it with a signal from FPGA, but what sort of circuit would allow this without discharging the cap prematurely?

    if it helps, the circuit is for a 4x4 matrix keypad, row and colums tied to resistors and a cap, each button press should produce a diffrent charge time, i need the caps to be discharged before next keystroke.



    Attached Files:

  2. jcsd
  3. Apr 6, 2014 #2
    I'm not sure I understand your stated task. Are you saying that you need to do this without any external supporting circuitry for the FPGA or do you intend on using external components?
    You can use the FPGA alone, but your resistor values will need to be increased and the cap value lowered such that the FPGA I/O pin can be used as a discharge by pulling the cap low from a tri-state output (probably through a low value resistor to limit the current). To do this you need to set the resistor and cap values that the current in the discharge side is below the rated sink current of the I/O pin for the selected part. Search through the app notes of the various FPGA manufacturers about using their parts for A/D or with special inputs dedicated as comparator - I know Lattice has notes that describe this use.
  4. Apr 6, 2014 #3
    You can use a GPIO - directly to a Base on an NPN, with a resistor to limit current. Cap ( to be discharged) -- Resistor -- Transistor Collector -the Transistor Emitter to ground.
  5. Apr 7, 2014 #4
    Thank you for reply, There are no limitations on external circuits, however if i don't have to then i wont, i will explore those options and post an update soon.

Share this great discussion with others via Reddit, Google+, Twitter, or Facebook