thunderbolt!

thunderbolt!

PR

カレンダー

キーワードサーチ

▼キーワード検索

2019.12.18
XML
テーマ: 私のPC生活(7416)
カテゴリ: 家電
昨日の続き。

USB制御できる0-10V電圧源を格安に制作しています。
USB-IO2.0(AKI)を使ってUSBからデジタルI/Oを作り、MCP4922で0-5Vの直流電圧を生成し、LM358Nで0-10Vに昇圧することにしました。

【中古】 手作りUSB機器 USBーIOで作る電子ルーレットからWebカメラま / 永島 智二 / RBB PRESS [単行本]【宅配便出荷】


MCP4922を駆動するため、ビット列をUSB-IO2.0(AKI)のピンから出力してやります。
マニュアル19ページを見るとタイミング図が載っています。
191221a.jpg

ナンノコッチャ?電子回路の素人には敷居の高い図ですが、それほど難しいことが書いてあるわけではありません。


2. CSピンを0に落とすと、制御コマンド受付状態になる。
3. SDIピンに所望のビット状態を設定する。
4. SCKピンを1に上げると、その瞬間にSDIピンの状態が取り込まれる。
5. SCKピンを0に戻し、同時にSDIピンに次のビット状態を設定する。
6. 4と5を16ビット分繰り返す
7. 全データ送り終えたらCSピンを上げて、制御コマンドを受け付けない状態にする
8. 最後にLDACピンを0に落とすと、DC電圧がVoutピンにかかる。


この一連の信号送信間隔(つまりSCKピンの変動間隔=クロック)は、調律されたタイミングである必要はありません。
単にSCKピンの電圧が0→1になったタイミングでのみ、データピンの状態が読み込まれるってだけの話です。ばばばばーっとピン状態を買えてやればそれで良いと思います。
SPI通信、簡単じゃん・・・


送るべき16ビットのデータは、マニュアルの18ページに書いてあるとおり
191221b.jpg
クロック0→1のタイミングでデータが書きこまれるので、クロック0と1の2状態で1つのデータ送ることになります。

設定電圧は12ビット分解能で、4095(=&B111111111111)を送ると5Vが、0を送ると0Vが出力されます。
送るのは上位ビットから(D11)から下位ビット(D0)へ送信します。
出力したい数値をVとすると、n番目のビットはint(V/2^n) mod 2で表せれます。

V=500(500/4095=0.122、つまり昇圧して0.24Vぐらいが出力)とすると、送信するビット列は000111110100となります。

各ピンに送るビットデータ列を、エクセルで書いてみました。
例えばV=500(&B000111110100)を送るときなら
191221c.jpg

こんな順で、37回ピンの状態を変えてやれば良いわけです。


USB-IO2.0はドライバインストール不要とのことですが、まずは付属CDのサンプルプログラムを使って動作確認したほうが良いと思います。
サンプルプログラムはVisualBasicで記述されていますので、これをモディファイして制御プログラムを作りました。

プログラムはDOS窓から動かすものとしました。実行ファイル名をMCP4922drive.exeなどとして生成しておいて、コマンドプロンプト上で、例えば

C:> MCP4922drive A 3.5

などとすると、チャンネルAから3.5Vが出力されるような仕様です。



お金があれば、こういうのも良いですけどね・・・

定電圧/定電流 プログラマブル制御 電源モジュール 50V20A USB Bluetooth ステップダウン DCDCコンバータ 液晶




作成したプログラムは、明日の記事で。





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2019.12.27 22:55:53
コメント(0) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

© Rakuten Group, Inc.

Create a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: