ニキシーチューブ管IN-9を使ったタコメータの制作中。

たまたまPIC16F1705マイコンで過去基板を起こしていたので、それを改造してニキシー管の制御をしている。
IMG_4233
自作パルスジェネレータで信号を入れると、綺麗に動くので、実車に付けてみる事にした。

XL125SはCDIなので、これで試してみる。
IMG_4235

信号は上手く取れているっぽい。
IMG_4234
アイドリングでだいたい90ms間隔。
一分間は60,000msなので、60000÷90≒700rpm弱。
クランク2回に1回点火なのかな。とすれば1400rpm位か。

しかしニキシー管は変な値を行ったり来たり。
どうもノイズを食っている様な感じ。

もう少しレンジを狭めて見てみる。
IMG_4237
あ〜なるほど。
信号をライジングエッジで取っているとすれば、ノイズを食っている可能性大。
マイコンの動作が速すぎて2〜3回信号取ってると思われます。
1msec位はピンの変化を無視した方が良さそう。

昔のPICマイコンはピンによって信号入力時の電圧感知仕様が違っていた。
PIC16F1705のプログラム書いてて気が付いたんだけど、全てのピンで入力特性が変えられるようになっていた。
11.1.5 INPUT THRESHOLD CONTROL
The INLVLA register (Register 11-8) controls the input voltage threshold for each of the available PORTA input pins. A selection between the Schmitt Trigger CMOS or the TTL Compatible thresholds is available. The input threshold is important in determining the value of a read of the PORTA register and also the level at which an interrupt-on-change occurs, if that feature is enabled. See Table 32-4: I/O Ports for more information on threshold levels.
とあり、INVLAレジスターを弄る事によって、シュミットトリガー付きCMOSレベルかTTLコンパチレベルになるようだ。
すげぇな。
例えば、電源が5Vの時、
TTLだと0.8Vでオフ、2Vでオン
ST付きCMOSレベルだと1Vでオフ、4Vでオン
となる。
TTLレベルだと、上記波形だと完全にオン判定をしてしまう。
ということで、RA2でCDIの信号を取っていたんで、
INLVLA = 0b00111111;    // x3F;
としてみたけれども、結果は変わらなかった。

確かにオシロで波形をみたところ、4Vに達しているようなので、オン判定されているのだろう。
波形からすればフォーリングエッジで反応し、1msec〜2msec位は反応しないのが良いと思う。

来週末修正してやり直してみる事にします。

つづく