Config_ICUでのIRQの設定について

いつも大変お世話になっております。リューキィです。

現在、RX65N Envision Kitでロータリーエンコーダを使用した試作機の開発をしているのですが、

信号の入力も表示も出来ているのですが、なぜか1回転した時の数字がズレてしまう事が多々発生してしまっています。

ロータリーエンコーダの接続の方法や、接続端子の接触不良等も疑ったのですがどうやら問題なさそうで、次にマイコン側の端子の設定

を疑っている次第です。

13chのD7(IRQ1)とD6(IRQ2)ロータリーエンコーダの信号線は接続しており、

モジュールのConfig_ICUでIRQ1/2ともに立上りエッジのレベル15 フィルタ無しにしてあります。

また、メインソース上で

R_GPIO_PinDirectionSet( GPIO_PORT_D_PIN_1, GPIO_DIRECTION_INPUT );
gpio_err |=R_GPIO_PinControl (GPIO_PORT_D_PIN_1, GPIO_CMD_IN_PULL_UP_ENABLE);
R_GPIO_PinDirectionSet( GPIO_PORT_3_PIN_2, GPIO_DIRECTION_INPUT );
gpio_err |=R_GPIO_PinControl (GPIO_PORT_3_PIN_2, GPIO_CMD_IN_PULL_UP_ENABLE);

で入力端子設定とプルアップ設定も行っております。

(※もしかしたらこれが二重設定とかになっていて邪魔をしているのか??とも思い始めました)

また、ロータリーエンコーダのカウントは

IRQ1が立ち上がった際に、IRQ2の状態を見て0だったらカウントをインクリメント

IRQ2が立ち上がった際に、IRQ1の状態を見て0だったらカウントをデクリメント

としています。(それぞれの立ち上がりを見ずとも、一行目にelseでデクリメントすれば良いのもわかっているのですが、ズレが発生しているので何か問題があるのかもと思い、わざと

分けてあります)

ロータリーエンコーダの1周の分解能は40なので、非常に少ないのですが数回転回すとズレる状態です。

何かわかる方がいらっしゃいましたら、ご指導いただきたく思います。

よろしくお願い致します。

Parents
  • リューキィさん、こんにちは。NoMaYです。

    データシートのURLをありがとうございました。今までの文面から察すると、電圧出力タイプのME○-30-40-Pという型番ですかね。(なお、○の部分は、S、H、D、の何れか。)

    そして、ME○-30-40-Pには5Vを給電していて、ME○-30-40-Pの出力を分圧してから、P32(IRQ2-DS)とPD1(IRQ1-DS)に入力していて、マイコン内部でプルアップ抵抗を有効にしている、ということですね。また、IRQのノイズフィルタはOFFにしている。

    具体的に、何回転ぐらいで何カウントずれるのでしょか?(何回転ぐらいで1カウントずれる?と言うべきなのかな?) また、そもそもどうやって回しているのですか?どれぐらいの速さで回しているのですか?(40カウントのエンコーダということは、1カウント当たり360/40=9度ですかね。直角90度を10等分ですかね。)


    ちなみに、データシートを見ると、電圧出力タイプといっても、2.2KΩでプルアップしたオープンコレクタを使った回路のことのようですので、どう分圧しているのか気になりました。(エンコーダの出力端子とGNDの間に3.3KΩを入れた?)

    そして、マイコンの設定で気になったのは、マイコン内部のプルアップ抵抗は要らないのでは?というのと、ノイズフィルタはONの方が良いのでは?ということでした。

  • NoMaY、こんにちは。リューキィさんです。

    ズレに関しては法則性が見つからないです。何回回してもズレない時もあれば、突然ずれたり、ゆっくり回した方がズレているような気もしますが、高速で複数回(回数にしばりなし)回してもズレる時はズレています。

    接続方法が怪しいのかと思い、メーカーにも問い合わせたんですが、デジタル入力端子に出力端子を入れて問題ないと言われたんですが、出力端子とGNDの間に抵抗がいるんですかね???(本当にそこらへんが全くわからなくて。。。独学でコンデンサとか勉強してもネットで読んでもさっぱりな状態です。プログラムなら、なんとか食らいつけるんですけど、回路は基礎知識が無さ過ぎて。。。)

    マイコン内部の設定ですが、先日投稿した後に、試しにgpioの方のインプット設定やプルアップ設定をコメントアウトしてみても、動作したので今は外しています。フィルタはいじってないので、入れて試してみます。

  • すみません!!NoMaYさん

    「さん」が抜けてました。

Reply Children
No Data