FPGAの デジタルIO pinのみで、ボリュームの位置を読み取る回路。
胃腸完成しましたので、公開させて頂きます。
動作
こんな感じに動作します。
原理
ごくかいつまんで言うと
1. 2種類の乱数(TPAT_P/N)を発生
2. ボリュームの位置が、TPAT_Pに近ければ、TPAT_Pに一致する割合が多く
TPAT_Nに近ければTPAT_Nに一致する割合が多くなります。
3.中間位置では、一致する確率は半々になります(乱数なので)
4.TPAT_Pだけが一致した場合はFF,T_PAT_Nだけが一致した場合は01、それ以外は中点の'h80を出力し、
それをIIRフィルターでローパス平均化して出力します。
大体5bitくらいの制度が出ています。ケースに触るだけで、そのくらい変動しますが、
CR時定数法などに比べると格段に安定しています。
ボリュームは10kohm,キャリアは48MHzであることが、キーポイントかもしれません。
実際1kohmにすると、若干中央によってしまい、読み取れる角度が狭くなります
(両端よりも遠い位置で、100%一致してしまう)
本当のことを言うと、過渡現象がよくわからず、且つ過渡現象にたよった回路なため、
なぜ動くのかよくわからない謎の回路になってます。
FPGAの入力は若干シュミット気味ですが、時定数をもったシュミットで、
且つ逆シュミットっぽく動作することもあって、本当によくわかりません。
ごらんのように、ボリュームには外付け部品をつけておりません。
ご自由にお使いください。
enjoy!