2024年06月10日

GreenPAKで遊ぶ(その6)逐次比較型A/D変換

 前回の記事で電子サイコロを作り、暫く習作はいいかな~と思っていました。しかし SLG46826 関連の情報をネットで見ていたところ、Single Slope Converter を見つけました。A/D変換の無いマイコンでCRでの充電 or 放電時間を計測して簡易的な A/D にする手法と同様にA/D変換が無い SLG46826 でCRの立ち上がり時間の長さをカウントすることでA/D変換するという試みです。※2024/07/30 文章を一部を修正

 しかし、SLG46826 であれば、抵抗のラダー回路を付けてD/A変換を付加すれば、逐次比較型A/D変換も実現できるのでは・・?


1.今回の課題
 SLG46826 で4ビットの逐次比較型A/D変換を実現します。実用性はあまりありませんがパズルとしては面白そうですね。GreenPAK はある意味、現代版の電子ブロックと言えるかもしれません


2.基本設計  処理内容はおおよそ次の通りです。
  1. D/A用のデータをゼロクリアする。
  2. D/Aデータの確定対象ビットをMSBとする。
  3. 被測定電圧(+側)とD/A出力の比較結果(コンパレータの出力)をD/Aデータの確定対象ビットに出力する。
  4. コンパレータの出力を再度確定対象ビットに出力する。
  5. 確定対象ビットをLSB側に1ビットずらし、3,4を繰り返す。
  6. LSBが確定するまで上記処理を繰り返す。
  7. 確定したD/AデータをA/D変換結果として外部出力用 D-FF に保存する。

3.回路設計
 設計した回路を下図に示します。外部のラダー回路も描くことでシミュレータで確認できるので GreenPAK Designer は便利ですね。

逐次比較型A/D変換回路

 タイミング制御用の信号は割合少ないリソースでできたのですが、ラッチが多く必要だったこともあり、下図のように機能要素(コンポーネント or マクロセル)の余りは殆ど無い状態です。

機能要素の使用状況

 シミュレーション結果を下図に示します。上から4段目までがD/Aデータ用 D-FF のクロックです。前述のように1回のA/D変換でコンパレータの出力を2回ラッチします。一番下が試験用のランプ出力の電圧源からの被測定信号です。

逐次比較型A/D変換シミュレーション結果(その1)

 シミュレーション結果の後半が下図です。一番上がD/Aの出力でA/D変換時の変化する様子が面白いですね。2番目以降の4つがA/D変換結果のMSBからLSBまでの4ビット分のデータです。
 このシミュレーションではA/D変換が6回実行されていてそれぞれの結果が、01H, 03H, 06H, 09H, 0BH, 0DH になっています。

逐次比較型A/D変換シミュレーション結果(その2)


4.まとめ
 無謀にも SLG46826 で逐次比較型A/D変換にチャレンジしましたが、なんとか実現できました。最初から「できそうだよなぁ」という感覚はありましたがリソース的にここまで余力がなくなる状態になるとは思いませんでした。最悪は出力データでのヒゲの発生を許容して、D/Aデータのクリア期間が最短になるようにして外部出力用ラッチを省くという対策案も考えていました。
 今回の逐次比較型A/D変換自体は実用的なメリットはあまりありませんが、非常に面白いパズルでした。冒頭にも書きましたがまさに現代版電子ブロックですね。


★追記 2024/06/09
 X(旧Twitter)に投稿したメッセージに添付した動画を貼っておきます。


[TOP] [ 前へ ] GreenPAKで遊ぶ [ 次へ ]
posted by skyriver at 21:41| Comment(0) | GreenPAK | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください