- ベストアンサー
dsPIC回路設計時のAポートの不具合について
- 初めてdsPICを使用して回路を設計しています。しかし、Aポートの一部のピンが入力ができない状態になっています。
- スイッチをつなげてon/offを行うと、ピンとGND間の電圧は変化しているようです。また、TRISの設定は正しく行っています。
- 使用しているのはdsPIC33FJ32MC202で、C30コンパイラを使用しています。わかる方がいらっしゃいましたらよろしくお願い致します。
- みんなの回答 (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 レジスタを設定します。
その他の回答 (1)
ペリフェラルの設定とかち合ってるだけでは? どのピンが入力ができない状態になっているか書きましょう。 全ピンですか? となると (1)LATAのほうを読んでいる (2)10.4 I/O Port Write/Read Timing を守ってない が怪しいですが (0)TRISAをリードして1Fhかどうかを確かめてPORTAを読む 検証コードを書いてみて。
お礼
ご回答ありがとうございます。 Aポートのピンがすべて入力できない状態になっています。 よろしくお願いいたします。 ご回答ありがとうございます。 私の知識では理解しかねましたのでコードを記入させていただきます。 main() TRISA = 0xFFEF; TRISB = 0x000F; while(1){ if(PORTSxbits.Rxn == 1){ //処理 } { //処理 } } また、こちらの確認不足で申し訳ないのですが、入力不可のピンを間違えていました。RA0,1及びRB0~3が入力不可でした。なぜかRA2のみ使用可能でした。 その他のピンはLCD制御用に使用していて、問題なく使用できています。 以上、よろしくお願い致します。
お礼
ご回答ありがとうございます。 プルアップですが10KΩ(茶黒赤金)で行っています。 また、電圧に関してもお教えいただいた条件を満たしておりました。 そのほかに考えられる要因はございますでしょうか? ありがとうございました。 アナログの設定を行うことによって無事に解決しました。