[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 メーリングリストの案内