ENGLISH page is here.
GET DinopSearchBar
サイト内検索:
HOME
VC++ TIPS
ダウンロード
DinopExifReader
DinopSearchBar
DinopSearchBar mini
DinopTabbingBar
for Firefox
大阪湾の生き物
甲子園浜の自然
甲子園浜の干潟
甲子園浜の水中
甲子園浜の野鳥
近畿の山々
植物図鑑
箕面マップ
水中機材
カメラ
ランキング
望遠鏡の世界
顕微鏡の世界
Googleのすべて
GoogleマップAPI
ニュース
読んだ本
日記
変な料理の作り方
遺伝子操作
論文紹介
デイトレード
自動売買でFX
ネットで小遣い稼ぎ
Solaris
電子工作
その他
問い合わせ
VC++用コード集
大阪湾の生き物
水中用機材
since:2000/11/15
dinopcom@gmail.com
www.dinop.comは
だいのっぷ・どっと・こむ
と読んでください。







« PSoCを使いキャラクタ液晶モジュールに文字を表示する | メイン | PSoCとLM35で温度を計測する »

PSoCのADCINC12でA/Dコンバーターを使う





psoc_adcint12_01.gif
今回はPSoC Designerに用意されている12ビットA/Dコンバーター「ADCINC12」の計測値をキャラクタ液晶モジュールに表示する。

psoc_adcint12_02.gif
デバイスエディターの選択画面で「ADCs」にある「ADCINC12」を右クリックして現れたメニューから「Select」を選択する。

psoc_adcint12_03.gif
配線の設定画面に切り替えるため「Config」メニューの「Interconnect」を選択する。

psoc_adcint12_04.gif
「ADCINC12_1」のアイコンを右クリックして現れるメニューから「Place」を選択し、A/Dコンバーターモジュールを配置する。

psoc_adcint12_05.gif
内部配線図にデジタルブロックが2つとアナログブロック1つが配置された。確認したら左側で詳細設定をする。
「TMR Clock」を「CPU_32_KHz」に、
「CNT Clock」を「CPU_32_KHz」に、
「Input」を「Port_2_1」にした。今回は信号を増幅したりせず、ポート21からの電圧を直接A/Dコンバーターに入力することにした。

psoc_adcint12_06.gif
設定ができたら「View」メニューの「Application Editor」を選択し、ソースコード入力画面に切り替える。

psoc_adcint12_07.gif
A/Dコンバーターを動作させるためのサンプルソースコードを開く。ツールバーから「ADCs」の「ADCINC12」を指定し「User Module Datasheet」ボタンを押す。

psoc_adcint12_08.gif
するとA/Dコンバーターのデータシートが表示される。ここに掲載されているサンプルソースコードをコピーする。今回はメイン処理部分をすべてコピーした。

psoc_adcint12_09.gif
そして「main.asm」内に貼り付ける。そのとき「ADCINC12_」の部分を「ADCINC12_1_」に置換しておく。修正したら「Build」メニューからビルドする。

psoc_adcint12_10.gif
ビルドがエラーなく終了すればA/Dコンバーターの準備が整ったことになる。しかしこのままではPSoCへ書き込んでもA/Dコンバーターの動作状況を見ることができない。

次に計測値をキャラクタ液晶モジュールに表示するように設定する。「View」メニューの「Devivce Editor」を選択し画面をデバイスエディターに切り替える。

psoc_adcint12_11.gif
デバイスエディターが開いたが、配線設定画面なので選択画面に切り替える。「Config」メニューの「Selection」を選択する。

psoc_adcint12_12.gif
これでデバイスエディターの選択画面が開いた。ここで左側の「Misc Digital」にある「LCD」を右クリックして現れるメニューから「Select」を選択する。

psoc_adcint12_13.gif
そして再び配線図に切り替えるため「Config」メニューの「Interconnect」を選択する。

psoc_adcint12_14.gif
配線設定画面が開いた。ここで左側の設定欄で「LCDPort」を「Port_0」に設定する。すると自動的に左側下部のポート一覧の部分にLCDで利用するピンが表示される。確認したら「View」メニューの「Apllication Editor」を選択して画面を切り替える。

psoc_adcint12_15.gif
次に液晶モジュールに計測値を表示するためのソースコードを記述する。参考にするためサンプルコードを開く。ツールバーで「Misc Digital」の「LCD」を指定し、「User Module Datasheet」を選択する。

psoc_adcint12_16.gif
今回は文字列表示処理は不要なため液晶モジュールの初期化処理と表示位置の設定処理のみコピーする。

psoc_adcint12_17.gif
そして「main.asm」内にコピーしてきた初期化と表示位置設定処理を貼り付ける。このとき「LCD_」の部分を「LCD_1_」と置換しておくのを忘れないようにする。修正したら次に計測値を表示する処理を入れる。これもサンプルソースコードを参考にするため再びツールバーからデータシートを開く。

psoc_adcint12_18.gif
今回はデータシート中の「API」の部分を参照する。ここには標準で用意されている関数とその説明が一覧されている。この中から数値を表示する関数「LCD_PrHexInt」を探しサンプルソースコードをコピーする。

ちなみにこの「LCD_PrHexInt」関数は16ビット値を大文字の16進数表示するためのものだ。標準では残念ながら10進数の数値表示には対応していない。

psoc_adcint12_19.gif
コピーしてきた表示処理を「main.asm」の中に貼り付ける。このときも「LCD_」を「LCD_1_」にすることを忘れないようにする。

これでPSoC Designer上での準備が整った。ビルドしてPSoC Programmerで書き込む。

_DSC8964.JPG
今回は基板上に可変抵抗器が用意されているPSoCEval基板を利用して動作確認した。

_DSC8965.JPG
可変抵抗器のすぐ横に「VR」、「GND」、「VCC」の3つが用意されている。それぞれポート21、GND、VCCに接続する。液晶モジュールは「PSoCを使いキャラクタ液晶モジュールに文字を表示する」のときと同様にポート0に接続する。

_DSC8966.JPG
これで液晶モジュールに計測値が表示された。表示される値は0Vのときが「F800」、5Vのときが「0800」となる(つまり-2048~+2048の数値で出力される)。

写真では「043E」と表示されている。これを10進数の計測値に変換すると...(5.000V÷4096)×(0x043E+2048)≒3.825Vとなる。









Copyright (c) 1999-2007 issei. All rights reserved. (運営者情報