• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:dspicについて)

dsPIC回路設計時のAポートの不具合について

このQ&Aのポイント
  • 初めてdsPICを使用して回路を設計しています。しかし、Aポートの一部のピンが入力ができない状態になっています。
  • スイッチをつなげてon/offを行うと、ピンとGND間の電圧は変化しているようです。また、TRISの設定は正しく行っています。
  • 使用しているのはdsPIC33FJ32MC202で、C30コンパイラを使用しています。わかる方がいらっしゃいましたらよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#230359
noname#230359
回答No.2

>スイッチをつなげてon/offを行うと、ピンとGND間の電圧は変化しているようです。 曖昧な表現ですね。プルアップがきちんと行われていますか? I/Oピン電圧が0.2VDD以下ならばLow、0.7 VDD以上ならばHighです。この値になっているか確認して下さい。 ちなみに内部プルアップは、CHANGE NOTIFICATION REGISTERを設定するば可能のようです。 茶黒赤金ならば1KΩです。無駄な電流が流れますが、不具合の原因とはならないでしょう。 >RA0,1及びRB0~3が入力不可でした。なぜかRA2のみ使用可能でした。 これって完全にアナログポート(AN0-AN6)と一致してますね。 デフォルトのアナログモードとなっているためデジタル入力できないのではと思います。 デジタルモードに変更するには、AD1PCFGL レジスタを設定します。

noname#230358
質問者

お礼

ご回答ありがとうございます。 プルアップですが10KΩ(茶黒赤金)で行っています。 また、電圧に関してもお教えいただいた条件を満たしておりました。 そのほかに考えられる要因はございますでしょうか? ありがとうございました。 アナログの設定を行うことによって無事に解決しました。

その他の回答 (1)

noname#230359
noname#230359
回答No.1

ペリフェラルの設定とかち合ってるだけでは? どのピンが入力ができない状態になっているか書きましょう。 全ピンですか? となると (1)LATAのほうを読んでいる (2)10.4 I/O Port Write/Read Timing を守ってない が怪しいですが (0)TRISAをリードして1Fhかどうかを確かめてPORTAを読む 検証コードを書いてみて。

noname#230358
質問者

お礼

ご回答ありがとうございます。 Aポートのピンがすべて入力できない状態になっています。 よろしくお願いいたします。 ご回答ありがとうございます。 私の知識では理解しかねましたのでコードを記入させていただきます。 main() TRISA = 0xFFEF; TRISB = 0x000F; while(1){ if(PORTSxbits.Rxn == 1){ //処理 } { //処理 } } また、こちらの確認不足で申し訳ないのですが、入力不可のピンを間違えていました。RA0,1及びRB0~3が入力不可でした。なぜかRA2のみ使用可能でした。 その他のピンはLCD制御用に使用していて、問題なく使用できています。 以上、よろしくお願い致します。

関連するQ&A