アナログ入力ポートを変更するに当たって

Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
suto_2664507
Level 4
Level 4
50 replies posted 25 replies posted 10 replies posted

実はアナログの入力ポートを変更したのですが、PSoCでは、cydwrの

Name、Port、Pinだけの変更だけでは認識しないのでしょうか?

前回はP3[3]から今回はP0[5]に変更しただけですが、全く機能しないのです。

何処か変更する必要があるのでしょうか?
大至急教えて下さると助かります。

0 件の賞賛
1 解決策
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

> 先にTANAKA-SANの方でP0[4]アナログ入力にしてADC_Delsigを動作させたプログラムが御座いましたが、

> 確かに動作しているので、そうであれば何が違うのかなのです。

当該プログラムを現在のHWで動作確認されましたか?

もし、このトピックの前の方で、アップロードしたプログラムが動いているようであれば

ハードウェアには問題がないと考えられますので、プロジェクトの設定を見直すべきであると考えます。

もし、先にアップロードしたプログラムも動作していないのであれば

ハードウェアに問題があると考えられますので、ハードウェアの問題点を追及するべきであると考えられます。

以前の別のスレッドでも申し上げましたが、私が提供したものはあくまでもサンプルであり

それを読んで理解してご利用いただくも、役に立たないと判断して破棄していただくのも

SUZUKI-SAN のご自由にしていただけたならと存じます。

moto

元の投稿で解決策を見る

20 返答(返信)
MaKo_1526276
Level 2
Level 2
First like received

コンパイル通るならそれでOKなはずです。

Prototyping Kitを使っているとしたら、そのピンに余計な部品がついている可能性あります。

例えばPSoC 5LP Prototyping Kit の CY8CKIT-059 では P0_2 P0_3 P0_4 には1uFのコンデンサ(Vrefのパスコン)がついています

0 件の賞賛

キャプチャ.JPG
Mako様

ご連絡有り難う御座います。

実はPSoC5LP-097ではなくて、CY8C5888LTI-LP097で組んだボードなんですが、

ポート変更してbuildしたら、いきなりエラーが出ます。

なぜかMAPの上に\Adc_Delsig_1:Bypass_p03\がNameのところに出てきて、取れません。

なぜ、これが出てくるのかconfigも調べたのですが、解らないのです。

0 件の賞賛

Adc_Delsig_1:Bypass_p03 が出るのはADCのReference が Internal Bypassed on P0.3 になっているのだと思います。

pastedImage_0.png

ピンは自由に使えるわけではなく、他のピンの割り当ての影響で使えたり使えなかったりするようです。

ピン設定のところでLockのチェックを全部外してビルドしてみると使えないピンが設定されていた場合は自動的に別のピンがアサインされます。お試しください。

0 件の賞賛

Makoさん、おっしゃるとおりでした。

config見た時に触れてしまってreferenceが別のものになっていました。

さて、本題ですが、他でコメント下さったTanakaさんからご指摘のあったポートをP0.4に変更しました。
buildはOK、製品ボードに書込を行いましたが、やはり機能しません。

PSoC Programmerで書込を行っております。

Device FamilyはCY8C5xxxLP、DeviceはCY8C5888LTI-LP097です。

SWD書込、Voltageも5.0Vです。

キャプチャ.JPG

ハードウェアは外付けの計装アンプからの出力を10K抵抗と4.7μFのローパスを通過させて、CY8C5888LTI-LP097の基板に入力(コネクタにて)、P0.4手前で10KΩと0.1μFを通っております。

重いのかな。

0 件の賞賛
lock attach
Attachments are accessible only for community members.
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

P0[4] を使用して外部に POT をつないで簡単な実験を行ってみました。

詳細な設定は出来ておりませんが、当該ピンでのアナログ入力値は読めているようです。

000-TeraTerm-Log.JPG

moto

0 件の賞賛

田中さん

検証有り難う御座います。

問題無くADに上がっておりますね。

おそらく基板上で何か書き込めない要因があるのだろうと思います。

しかし、他の機能は書き込めているのに、なぜかP0.4へのアナログ入力のみ

機能していない。

どう考えてもおかしいですよね。

cydwrマップのName、Port、Pinだけの変更だけでbuild出来ますよねーーーーー

特にエラーは出ないわけだし。

0 件の賞賛
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

念のために、基板上のPSoCのP0[4] ラインにテストピンを立てて、

電圧に変化があるのか確認されては如何でしょうか?

moto

0 件の賞賛

アドバイス有り難う御座います。確かにアナログ入力値を変化させてP0[4]手前で電圧値を見ていますが、ADが取り込んでいないようです。ADCは7segmentで確認出来るのですが・・・・。

.cydwrのマップ画面でポート変更し、SAVEして、BUILDし、書き込んではいるようですが、他の機能は問題無く動いています。
他に設定するところは無いですよね。
ソフト上でもポートアドレス箇所が見当たらないし・・・・

configも特にいじることはありませんでしょうし。

手の打ちようがありませんが・・・・・。CONFIG.JPGDSC_0094.jpg

0 件の賞賛
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

> 確かにアナログ入力値を変化させてP0[4]手前で電圧値を見ていますが、ADが取り込んでいないようです。

これは P0[4] の外部で測定した電圧には変化があるということでしょうか?

ここに問題があるとは考えにくいですが、

念のために Vin_A の設定も Analog になっているかご確認いただけますか?

001-Vin_A_Config.JPG

後は、コンパイル時のウォーニングに ADC もしくは当該ピンに関するものがあるかご確認いただくことでしょうか。

moto

休み中、ハードウェア中心に調べておりましたが、解明まで出来ませんでした。 ハードウェアは、アナログ入力のLPF定数とポートを変更しただけです。 LPFは0.1uFから4.7uFへ、ポートはP3[3]からP0[4]としました。 buildすると以下のように出力されます。 HDL Generation... Synthesis... Tech Mapping... Analog Placement... Info: apr.M0002: Analog signal "\ADC_DelSig_1:Net_35\" is connected to one terminal only. (App=cydsfit) Analog Routing... Analog Code Generation... Digital Placement... Digital Routing... Bitstream Generation... Bitstream Verification... Static timing analysis... API Generation... Dependency Generation... 特にウォーニングされる訳でも無く、 No ELF section .cychecksum found, creating one Application checksum calculated and stored in ELF section .cychecksum Checksum calculated and stored in ELF section .cymeta cyelftool.exe -S "C:\Users\User\Documents\PSoC Creator\PDS05FULL_190917.cydsn\CortexM3\ARM_GCC_541\Debug\PDS05FULL_190917.elf" Flash used: 27792 of 262144 bytes (10.6%). SRAM used: 5089 of 65536 bytes (7.8%). Stack: 2048 bytes. Heap: 2048 bytes. 無事にコンパイルOKです。 アナログのVDDA、VCCA、VSSAの電位も問題有りませんでした。 あと考えられるのは、TANAKA-SANに作成していただいたmain.c、main.hの中でP3[3]が固定されているとか、HEXでアドレスを設定されているとか、またADC_Delsig_1のCONFIG設定が違っているかを検証するくらいなのですが、先にTANAKA-SANの方でP0[4]アナログ入力にしてADC_Delsigを動作させたプログラムが御座いましたが、確かに動作しているので、そうであれば何が違うのかなのです。 ここまで来ると何をどう進めたら良いのか困惑中です。

0 件の賞賛
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

> 先にTANAKA-SANの方でP0[4]アナログ入力にしてADC_Delsigを動作させたプログラムが御座いましたが、

> 確かに動作しているので、そうであれば何が違うのかなのです。

当該プログラムを現在のHWで動作確認されましたか?

もし、このトピックの前の方で、アップロードしたプログラムが動いているようであれば

ハードウェアには問題がないと考えられますので、プロジェクトの設定を見直すべきであると考えます。

もし、先にアップロードしたプログラムも動作していないのであれば

ハードウェアに問題があると考えられますので、ハードウェアの問題点を追及するべきであると考えられます。

以前の別のスレッドでも申し上げましたが、私が提供したものはあくまでもサンプルであり

それを読んで理解してご利用いただくも、役に立たないと判断して破棄していただくのも

SUZUKI-SAN のご自由にしていただけたならと存じます。

moto

私も現在のハードウェア(基板)が正常に動作するのかの確認が第一だと思います。

P0[4]以外のピンでADCできるかをまず試してはいかがでしょうか。

その基板でUSBやUARTが使えるならprintでデバッグできるでしょうし、

もし通信機能無くても、プログラムの書き込みができているいるのであればデバッガが使えるはずなので、

それでプログラムの挙動が確認できると思います。

参考記事

初心者のためのPSoC Creatorの歩き方(デバッグ編) - Qiita

P0[4]ポートからのアナログ入力でADCが無事動きました。 MaKoさん、tanakaさん、お二人にご協力感謝申し上げます。 原因は圧力センサーが偶然に2個連続で壊れていたことと、OPアンプのレファレンス(オフセット)と計装アンプのゲイン調整に使用しているcopalの可変抵抗が端子自体ガルウイングでは無くて、角に端子が置かれているタイプで、基板のランドに半田付けするのが大変で、その接触不良が多々出ておりました。 なお、ハードは良しとしてもソフトの改善はまだ必要です。ノイズの影響で7segment表示はパラパラと落ち着きません。 平均化プログラムがまだ機能していない状態、もう少しです。

0 件の賞賛

MaKoさん お世話様です。 PSoC PROGRAMMER MiniProg3を使用しているので、シリアルデバッグが出来ないのですよ。 PSoC5LP-097kitは、それが使えたのですが。 Tera Termで本当は状態をモニター出来ればBESTなんですが、何か良い方法はないでしょうか?

0 件の賞賛

別のスレッドにあったEXCELシートの回路図(潰れて字が読めませんが)では既に1つUARTをIO LINK PHYっぽい何かに使用しているため、シリアルが利用できないということでしょうか?

もしそうであれば、他に空いている端子に別のUARTを(とりあえずTXだけでも)アサインしてFTDIのUSB-TTLケーブル等を接続してみるというのは如何でしょう?

例えばP3[5]あたりにあるLED前の抵抗なら外しやすそうなので、これを外してTXとして使えばモニタするには十分かと思います。

それも厳しいようでしたらMaKo様が仰っているように、デバッガで追ってみるのも良いかと思います。

※MiniProg3はライターだけでなくデバッガとしても使えたはずなので

いずれにしても、本スレッド本来の「アナログ入力ポートを変更する」ことに関しては解決したようでなによりです。

0 件の賞賛

他のピンを試せるのなら、他のピンでADC試してはいかがでしょうか。

他のピンで動くのでしたらP04に問題あるという事になります。

写真を見ますと手はんだ付けのようですのではんだ付け不良の可能性もあるかと。

他のピンでも動かないなら、プログラムかPSoCの回路の問題となります。

ちなみにP04はSAR ADCのEXT Vref用のピンなので、他の用途で使用しない方がベターと思います。

MaKoさん


情報有り難う御座います。
一応2枚の基板で入力をカット&トライで元のP0[5]からP0[4]に切り換えました。

BUILDは成功、PSoC Programmer MiniPrpg3で書込はOK!
実践では何ら機能せず、機能というのはADC_Delsig_1の事です。

以前は、PSoC5LP-Kitを使用し、アナログ入力はP3[3]を使用しておりましたが、問題はありませんでした。

新しく基板を造り、その際はポートはP3[3]でしたが、問題無く書き込めました。

今回は単にポートをP3[3]→P0[5]→P0[4]へと変更しただけです。
圧力センサーからの信号を計装アンプで増幅し、それをPSoCのADに取り込んでいます。

圧力センサーの圧をかけると、計装アンプの出力(PSoCのAD入力部)に電圧変化はありますが、

7SEGMENTに何ら出力はしません。

やはりP0[4]は理由は分かりませんが、使えないということですね。
今、他に近いポートを探して、それを使ってみようと考えています。

0 件の賞賛

新しく基板を造り、その際はポートはP3[3]でしたが、問題無く書き込めました。

新しい基板でプログラムの書き込みができただけで、P3[3]でのADC動作が確認できたわけではないという事ですね。

PSoC5LP-Kit(CY8CKIT-059?)で動いていたプログラムと全く同じで、ピンだけの変更で動かないとすれば

新しい基板の回路の問題の可能性もあると思います。

デジタルは動いてアナログが動かないとすれば

アナログ電源系 VDDA,VCCA,VSSAの接続が正しいかなど確認してみてください。

0 件の賞賛

電源系はチェック済みです。

ただ1つ気がかりな点が御座います。

5V電源をスイッチングレギュレータICで+24Vから作っておりますが、

この電源の出力が+4.94Vと若干低いのです。

アナログ電源(デジタルもそうですが)としては動作しないレベルですか?

KITの場合はUSBからの電源でしたので、5Vは満たされておりました。

0 件の賞賛
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

私も CY8CKIT-059 で実験してみました。

P0[5] ではアナログ入力値が読めませんでした。

そこで回路図をみると下記のような記述がありました。

P3[3] は浮いていますが、P0[5] は GND に接続されているようです。

CY8CKIT_059_PIN0_5.JPG

CY8CKIT-059 をご使用になっている場合には他のピンの使用をご検討ください。

moto

0 件の賞賛