0
\$\begingroup\$

I have an FPGA Starter Kit (Lattice MachXO3) which I'm using 25 IOs for push buttons inputs. I'm driving the starter kit and button circuitry from the wall with a 12V AC/DC adapter (rated for up to 2A loads). This goes to a 5V switching voltage regulator (LM2678)(rated for up to 5A loads), and then to a 3.3V voltage regulator (L78L33)(rated for up to 100 mA).

enter image description here

The IOs are all set to LVCMOS25. I am using multiple banks, but the setup looks like this:

enter image description here

Here is what my button circuits (active low) look like (x25):

schematic

simulate this circuit – Schematic created using CircuitLab

The issue I am seeing is that the "to FPGA" input at rest (no button press) measures a low 7 mV instead of the expected 3.3V. If I measure the output of the L78L33, I still see it output 3.2 V - that voltage just never gets through the button circuit.

Are my circuits correct? Is there an issue with my FPGA? Any insight would be greatly appreciated.

Edit:

After simplifying the circuit (as recommended below by Simon), I can show that the 3.3V source provides consistent voltage and that the voltage drops significantly at "to FPGA"/"point A" if the switch is open. Is it possible that the combination of a switching 5V regulator and the linear 3.3V regulator would cause an issue?

For each of the following pictures: Far left red wire is 3.3 V, black wire is negative probe, green wire is positive probe, yellow wire is "switch". Far right red wire connects grounds. Ground is attached to L78L33 circuit out of picture via the bottom bus. Voltmeter screen on far right shows current reading.

Measure source with switch open (no switch): measure source switch open

Measure source switch closed ("switch" is yellow wire): measure source switch closed

Measure "to FPGA" with switch open: measure "to FPGA" switch open

Measure "to FPGA" with switch closed: measure "to FPGA" switch closed

\$\endgroup\$
12
  • 1
    \$\begingroup\$ What's the voltage drop across the pull-up resistor? \$\endgroup\$ Jun 10, 2023 at 23:03
  • 1
    \$\begingroup\$ What is the voltage at your "button press (active low)" point? There should be no connection to the upper terminal of the switch. \$\endgroup\$ Jun 10, 2023 at 23:10
  • \$\begingroup\$ image fixed, sorry that was just a bad label - yes, there is no connection to the upper terminal of the switch \$\endgroup\$
    – epiolba
    Jun 11, 2023 at 2:19
  • \$\begingroup\$ Could you disconnect the "to FPGA" line from the FPGA and check it's voltage? The FPGA could be setting the "to FPGA" line low? \$\endgroup\$
    – sai
    Jun 11, 2023 at 2:29
  • \$\begingroup\$ @sai good thought. I just removed that connection now but it had no effect \$\endgroup\$
    – epiolba
    Jun 11, 2023 at 2:31

2 Answers 2

2
\$\begingroup\$

The DMM is set for 9V battery test, which places a moderate resistive load on the test leads. It's probably about 1800 ohms, which is about 5mA for a 9V battery. A 3.3V supply with a 6.5:1 voltage divider would show about 0.50 V.

\$\endgroup\$
2
\$\begingroup\$

Here are some steps to troubleshoot.

First, find out if the problem is the FPGA, which you can do by disconnecting the FPGA (and anything else) from the switch/resistor section. What remains is only the 3.3V source, the switch, and the resistor. Then measure the voltage across the switch using a voltmeter connected as shown left here:

schematic

simulate this circuit – Schematic created using CircuitLab

Operate the switch a few times, and see what voltage you measure with the switch opened and closed. If you find the voltage to be near 0V with the switch closed, and near 3.3V when it's open (which is the required, expected behaviour), then your problem lies with the FPGA, which for some reason is "loading" the output and holding it low.

If the problem persists, with node A permanently near 0V, check that the 3.3V power supply is unaffected by measuring its voltage as shown on the right. Operate the switch a few times and make sure that the 78L33's output is stable and unaffected by switch position. If that voltage fluctuates at all, or isn't 3.3V, then the problem can be:

  • the 78L33
  • the 78L33's input source of 5V, which you should also measure
  • the resistor is much much lower than 10kΩ; perhaps you've misread the value, or it's damaged or mislabelled.

If the 3.3V supply doesn't change while operating the switch, then either switch or resistor is damaged, or not what you think it is. To find out, revert to the left hand configuration above, and remove the switch from the circuit. The voltmeter should show 3.3V. If it doesn't, then the resistor is damaged (open), or has a much higher value than 10kΩ

If with the switch removed you do read 3.3V, then clearly the switch is stuck closed, or you're using the wrong switch terminals.

If after all that you find that 78L33 output is always 3.3V, the resistor really is 10kΩ, and the switch opens and closes as it should, then all that's left is wiring error. Maybe you've misunderstood breadboard layout?

\$\endgroup\$
7
  • \$\begingroup\$ thanks, this was helpful. I made your left circuit & completely removed the FPGA. I also removed the switch and opted for a no wire/wire-to-ground as a substitute for open/closed. With a single 10k resistor I measure 0.5V if open and 0V if closed. Measuring like your right ckt I get 3.2V from the 78L33 no matter the switch position. I also tried to swap resistors. I swapped different 10ks with the same result. If I swap in a 15k I see 0.35V/0V open/closed. With a low 71 ohm resistor I see 3.1V/0V. So the effect seems proportional to resistor value but not sure why such a big drop. \$\endgroup\$
    – epiolba
    Jun 12, 2023 at 0:34
  • \$\begingroup\$ @epiolba It seems there's something connected in parallel with your switch that you are not aware of. Looks like about 1k of resistance between A and ground. \$\endgroup\$ Jun 12, 2023 at 1:31
  • \$\begingroup\$ Hm, maybe. There really isn't much there. I attached some new pictures to the OP above. Could the voltmeter be causing an impact? \$\endgroup\$
    – epiolba
    Jun 12, 2023 at 3:36
  • \$\begingroup\$ @epiolba if the voltmeter is cheap crap, with very low resistance, I suppose it could be causing a problem, but it would have to be very, very bad to have that much impact. Is it possible that you have a very nice high end model, with a "low impedance mode" that you have accidentally enabled? \$\endgroup\$ Jun 12, 2023 at 3:49
  • \$\begingroup\$ It is apparent from the photos that the multimeter is set to 9V battery tester mode, not voltage measurement mode, so of course the results are bad, and all the work removing the FPGA was useless. @epiolba When meter results don't make sense, rule out the meter first, don't tear your circuit apart. \$\endgroup\$
    – Justme
    Jun 12, 2023 at 6:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.