Keyboard Builders' Digest
Save 5% at Divinikey! Code: KBDNEWS
Keyboard Builders' Digest / Tips & Tricks

Forward voltage calculations

Some hard numbers and experiments for those who'd like to try their hands on matrices utilizing the voltage drop across diodes to eliminate ghosting.

KBD.news
Published January 1, 2000
This blog is powered by 54 readers while read by 150,000. Donate like RGBKeys, MoErgo Glove80, and Micah Alpern!

This is a dump of my measurements and experiments. I wanted to figure out the required forward voltage of the diodes, the threshold voltages for LOW and HIGH, etc. Will tidy it up later but reference it from some posts so here it is.

The following measurements were taken at 23°C room temperature (this may be important with these matrices):

Pic:

KB2040 experiment 2022-05-06, 23°C(!)

  • G->RAW (closed (skip voltage regulator)) 5.127V
  • G->RAW (open) 4.871V
  • G->3V 3.277V
  • G->D2 (pulled up) 3.270

Method

  • DP832 laboratory power supply
  • Common ground + PS out connected directly to D2 of an RP2040 on a Adafruit KB2040.
  • Plotting LOW/HIGH in Mu with 0.01 delay in code.
  • Starting from 3.270, the voltage was decreased/increased by 0.001V until the signal stabilized.
  • I waited 60 sec until the value (H/L) read on the pin was totally constant: plotted by 0.01 sec this means 6,000 consecutive measurements without a single outlier.

Results

  • Vhigh min: 1.388V
  • Vlow max: 1.283V

So no man's land range is: 1.39-1.28V

Btw, according to the RP2040 datasheet (3.3V):

  • V_IL(max)=0.8V
  • V_IH(min)=2V
  • V_HYS=0.2V

Empirical part

Trying 1/2/3/4 diodes with a switch.

1N4148 V_F=0.61-0.62 according to the diode function of my multimeter. When in a circuit, it was rather 0.7V.

1->2.66 2->2.05 3->1.44 Damn… 1.3 kellene…

1N4001? 0.7V

1->2.570 2->1.870 3->1.170 Yay!!!

PULLUP+GND

1N4007: is this also 0.60-62V?! 1->y 2->y 3->triggers very rarely, almost never (0-2/10)

1N4148: 0.60-61V… 1->y 2->y 3->triggers very rarely, almost never (0-2/10)

PULLDOWN+"3V"

(Conclusion, this direction doesn't work well. Use pullup instead.)

Fordítva: pulldown és feszkót neki! Ez így menne egyáltalán?

1N4148 (0.60-61V?)

1->y 2->y 3->y 4->triggers rarely (2/10)

1N4007 (0.62V?)

1->y 2->y 3->y 4->triggers a lot! (?)

It turns out you can't simply add up the individual forward voltages. Connecting the diodes results in slightly less cumulative drop than you'd expect for some reason (it may be an error in my measurement):

1N4148 0.614+0.623=1.215 0.614+0.623+0.608=1.773 0.614+0.623+0.608+0.615=2.287-2.426

1N4007 0.612+0.622=1.223 0.612+0.622+0.608=1.750 0.612+0.622+0.608+0.615=2.293

Pro Micro 5V Atmega32u4

  • raw: 4.727 (through voltage regulator, J1 NOT closed)
  • vcc: 4.678
  • high pin: 4.625

Results

  • High: >=1.449
  • Low: <=1.405

1N4148 V_F=0.61-0.62

0: 4.625 1: 4.015 2: 3.405 3: 2.795 4: 2.185 5: 1.575 6:

4.625-1.405=3.220 /3=1.071V

Ikeji's Vf measurement method

It seems the forward voltage is dependent on the actual current so you can't really measure it with the multimeter's diode mode.

Instead, you should measure the voltage drop in a similar circuit you want the diodes use in:

Pic:

KB2040/RP2040, 3.3V

  • G->D2 (pulled up) 3.270V
  • Vhigh min: 1.388V
  • Vlow max: 1.283V
  • No man's land range: 1.39-1.28V

Monitoring triggers and measuring Vf with multimeter:

1N4148

  • 1x->y (0.4674V)
  • 2x->y
  • 3x->triggers rarely, almost never (0-2/10) (1.406V)
  • 4x->n (1.861V)

1N4007

  • 1x->y (0.4836V)
  • 2x->y
  • 3x->triggers rarely, almost never (0-2/10) (1.436V)
  • 4x->n (1.909V)

To be continued…

Do you like this post? Share, donate, subscribe, tip me off!

Published on Sat 1st Jan 2000. Featured in KBD #0.


Related

×
top