[Armadillo:03524] Re: Armadilo-500 GPIOピンを利用した割り込みについて

g-kihara email@hidden
2008年 10月 9日 (木) 13:36:48 JST



>> 他になにか設定が必要なのでしょうか?
> CON16に接続されているピンは、GPIOとカメラインターフェース(CSI)
> とマルチプレクスされています。
> その設定は、どのようになっていますでしょうか?

前回メールに添付しましたソースにおける設定がすべてです。
マルチプレクスを使う場合、
mux_request_iomux()を使用すればよろしいでしょうか?

mux_request_iomux(MX31_PIN_CSI_D13, OUTPUTCONFIG_GPIO, INPUTCONFIG_GPIO )

のようにすればよろしいでしょうか?

最終的には、iMX31用に用意されたmxc_xxxx()関数を使わずに
writel()とreadl()関数のみで割り込みを発生させたいのです。
(もちろんrequest_irq()やfree_irq()は使います。)
当初、下記のようなプログラムで、
ICRやIMR、マルチプレクスの設定を行ったにもかかわらず、
割り込みがまったく発生しませんでした。
どのような設定が他に必要かわからないので、
mxc_xxxx()関数をつかって実験し、それで成功したら、
これらの関数の中身をみて、どのようなレジスタでどんな設定を
行う必要があるのか探っていこうとおもっているのです。

    // GPIO3 GDIR (Data Direction Register)
  13ビット目を"0"にして、"入力"に設定

    // GPIO3 ISR (Interrupt Status Register)
    13ビット目を"1"にして、ゼロクリア

    // GPIO3 ICR1 (Interrupt Configuration Register1)
    // The interrupt is rise-edge sensitive.
    27ビット(13*2+1),26(13*2)ビット目に"10"を設定し、
  "The interrupt is rise-edge sensitive"
    に設定。

    // GPIO3 IMR (Interrupt Mask Register)
    13ビット目を"1"にして、"the interrupt is enabled"

    // Wake-up Interrupt Mask Register(WIMR)
    0ビット目を"0"にして、"interrupt is enabled"

    // CSI_D13 -> GPIO MODE(MCU3_13)
     0x43FAC0A8にあるレジスタの
    sw_mux_ctl_csi_d13[6:0]について
    "00000001"を設定し、GPIO PSR/ISR input
    にしました。



以上




>
> また、ICR(Interrupt Configuration Register)、
> IMR(Interrupt Mask Register)の設定はいかがでしょうか?
>
> -- 
> Takenoshita Koyo
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo 




armadillo メーリングリストの案内