応用-1. 位相検出

応用-2. 4bitsバイナリ・アップカウンタ

応用-3. 2桁デシマル・アップカウンタ

応用-4. 2桁 デシマル・アップカウンタ

応用-5. 8bits シフトレジスタ

応用-6. 8bits リングカウンタ

応用-7. 8bits ジョンソンカウンタ

●Home へ    最終更新|2022/03/20    15:29

■ 応用編

サンプルの[applica.lzh] をダウンロードしてください。

解凍して各項目でシミュレーションに使用します。

応用-1. 位相検出

* サンプルの [Phase.sio] を開 いてシミュレーションを実行してください。

6-2. D ラッチ」の応用です。

入力A [IN1] と入力B [IN2] の位相をπ/2周期(90°)ずらして入力してやると、A⇒B なのか B⇒A なのかが判別できます。

例えば [IN1] をON⇒ [IN2] をON すると、[OUT1] が ONします。

その後 [IN1] をOFF⇒ [IN2] をOFFすると [OUT1] はOFFします。

この時、[OUT2] は一切ONしません。

入力の順番を逆にしてやると [OUT2] がONします。

この例ではセンサの物検知で、中途半端な位置でON-OFFを繰り返しても誤動作しないようにしています。


 [IN1] (A)が先にON、次に [IN2] がONすると [OUT1] がONします。

このサンプルは、人や車の入出庫検知に応用できます。

まとめ

「D ラッチ」を使うと位相が検出できる。

人や車の入出庫、回転方向検知に利用できる。

SUS(株)様サイトの「使用事例」>「一方通行逆送チェック」に使えます。この場合

検出する車長より短い間隔でセンサを設置し、必ず2つのセンサが同時にONするタイミングを作るようにしてください。


応用-2. 4bits バイナリ・アップカウンタ

* サンプルの [4bitsBinCOUNTER.sio] を開 いてシミュレーションを実行してください。

7-3. T フリップ・フロップ」の応用です。

[IN1]の立上りでカウントアップします。4ビットバイナリカウンタなので 0~15 までカウントできます。

[OUT1](2の0乗)~[OUT4](2の3乗) の表示用出力があります。


 [OUT1] は立上り微分を、[OUT2] 以降は立下り微分の T-FF を構成しています。

入力の立上りでカウントしたいので、「2の0乗桁」は立上り微分の「Tフリップ・フロップ」で構成し、それ以降は立下り微分です。

カウンタ用途の他にも2の3乗までの分周器になります。

まとめ

SiOには外部(入出力)からアクセスできるカウンタ機能がありません。

デジタルスイッチでカウンタ値を設定したり、現在のカウンタ値を表示したい時は自分で作る必要が有ります。

バイナリカウンタは2のn乗の分周器になる。


応用-3. 2桁 デシマル・アップカウンタ

* サンプルの [2DecCOUNTER_ResSW.sio] を開 いてシミュレーションを実行してください。

7-3. T フリップ・フロップ」の応用です。

[IN1] の立上りでカウントアップします。[IN2] はリセットスイッチです。

[OUT1]~[OUT4] が10の0乗桁。[OUT5]~[OUT8] が10の1乗桁です。各桁のリセットフラグは [FLAG9]/[FLAG10] です。


 10カウントで1の位をリセットして、10の位をカウントアップします。

まとめ

SiOには外部(入出力)からアクセスできるカウンタ機能がありません。

デジタルスイッチでカウンタ値を設定したり、現在のカウンタ値を表示したい時は自分で作る必要が有ります。


応用-4. 2桁 デシマル・アップカウンタ(設定値入力/一致出力)

* サンプルの [2DecCOUNTER_DigiSW-ResSW.sio] を開 いてシミュレーションを実行してください。

7-3. T フリップ・フロップ」の応用です。

応用-3. 2桁 デシマル・アップカウンタ」にカウント設定値入力 [IN4]~[IN11] を実装し、その値とカウンタ値が一致した時に

出力( [OUT9] )を出すようにしました。

まとめ

SiOには外部(入出力)からアクセスできるカウンタ機能がありません。

デジタルスイッチでカウンタ値を設定したり、現在のカウンタ値を表示したい時は自分で作る必要が有ります。


応用-5. 8bits シフトレジスタ

* サンプルの [8bitsShiftRegister.sio] を開 いてシミュレーションを実行してください。

7-2. D フリップ・フロップ」の応用です。

[IN2] の状態を [IN1] の立上りで [OUT1] ⇒ [OUT2] ⇒ [OUT3]…… [OUT8] へ、シフトしていきます。


 [IN1](クロック)の立上りで [IN2](データ)の値を [OUT1] へ読込みながら [OUT2] …へシフトしていきます。

シリアル⇒パラレル 変換や パラレル⇒シリアル 変換に応用できます。

また、ピッチ送りコンベアなどのデータシフトにも利用できます。

まとめ

「Dフリップ・フロップ」を使えば、シフトレジスタが構成できる。

シフトレジスタは シリアル ⇔パラレル 相互変換に使える。


応用-6. 8bits リングカウンタ

* サンプルの [8bitsRingCOUNTER.sio] を開 いてシミュレーションを実行してください。

7-2. D フリップ・フロップ」の応用です。

初期値 [OUT1] がONです。[IN1](▲Clock)をONする度に [OUT1] ⇒ [OUT2]…… [OUT8] へ ON状態がシフトしていきます。

[OUT8] の次にまた [OUT1] へON状態が戻ります。


 クロックに同期してデータをシフトして行き、8カウントで [OUT8] → [OUT1] へON状態が戻ってきます。


* サンプルの [8bitsRingCOUNTER_CLK_diff.sio] を開 いてシミュレーションを実行してください。

6-2. D ラッチ」の応用です。

上の「リングカウンタ」のクロックを自動で生成しています。このクロックは1スキャンのみONするデバイスなので

「D ラッチ」を使っても正常に動作します。「D フリップ・フロップ」は記述に2行使いますが「D ラッチ」なら1行で記述できます。

「リングカウンタ」は、デジタルスイッチの読込やカウンタ値表示ユニットの時分割に使えます。

まとめ

「シフトレジスタ」を応用すると「リングカウンタ」が構成できる。

クロックが微分型のデバイスなら「D フリップ・フロップ」を使わずに「D ラッチ」で実現できる。

「リングカウンタ」は時分割の信号として使える。SiOのI/Oを有効に使うため、時分割は有効な手段である。


応用-7. 8bits ジョンソンカウンタ

* サンプルの [8bitsJohnsonCOUNTER.sio] を開 いてシミュレーションを実行してください。

7-2. D フリップ・フロップ」の応用です。

カウンタの最終ビットの状態の反転を最初のビットの入力にフィードバックした形です。

[IN1](▲Clock)の立上りで [OUT1] ⇒ [OUT2]…… [OUT8] へ ON状態がシフトしていきます。


 クロックに同期してONデータをシフトして行き、8カウントで 今度はOFFデータをシフトしていきます。