[Armadillo:07964] Re: SC1602BSキャラクタディスプレードライバーを組込とgpioctrlが使用できない。
h
email@hidden
2012年 3月 31日 (土) 17:08:24 JST
泉です。
竹之下さん返信ありがとうございます。
まず、Armadillo-220用のブートローダーのgpio出力LOWについて
hermit-at/src/target/armadillo2x0/boot.S ファイルを変更して出力LOW設定をしてみました。
ブート時GPIOに接続されているリレーやバックライトが、一瞬(目で見た感覚ですが、
100mS位)、ONしします。今回、使用用途としては、問題ないのですが、やはり起動時に完全に
OFFとしておくには、ハード的にドライブしているトランジスタを、(NPN)2SC1815でなく、
(PNP)2SC1015で出力HIGHでOFFがよいのかなと思います。
実験していないので本当によいかわかりませんが。
次にgpioctrlについて
SC1602BSキャラクタディスプレードライバー、GPIOドライバを有効にして
カーネル転送
<*> SC1602BS LCD Character Display driver
<*> Armadillo-210/220/230/240 GPIO driver
gpioctrlコマンドしてみると ON-OFFせずNG、SC1602BSキャラクタディスプレードライバー
は、表示しているのでOKのようです。試しにSC1602BSキャラクタディスプレードライバー
を外して、カーネル転送
< > SC1602BS LCD Character Display driver
<*> Armadillo-210/220/230/240 GPIO driver
gpioctrlコマンドしてみると GPIO ON-OFF OKです。
どこにに問題あるのでしょうか?
よろしくお願いします。
>竹之下です。
>> SC1602BSキャラクタディスプレードライバーが有効であるためGPIOドライバが無
>> 効です。
>> SC1602BSキャラクタディスプレーを使いながら、GPIO8〜15使用したということ
>> です。
>> GOIO_8、GPIO_9にトランジスタを接続、LCDのバックライト、リレーをON、OFF制御を
>> するようにしたいと考えています。
>> GPIOドライバ、もしくは、SC1602BSキャラクタディスプレードライバーの改造が
>> 必要でしょうか?
>そうですね。
>両方のドライバを同時に有効にする必要があります。make menuconfigで、
>CONFIG_LCD_SC1602BSとCONFIG_ARMADILLO2X0_GPIOを有効にしてください。
>(Armadillo-220用のGPIOドライバは、CONFIG_ARMADILLO210_GPIOではなく、
>CONFIG_ARMADILLO2X0_GPIOです。)
>もし、linux-2.6.12.3-a9/drivers/char/Kconfig を下記のように修正している場合、
>
>Kconfigの、"&& !ARMADILLO2X0_GPIO"の部分を削除すれば、GPIOドライバと
>SC1602BSキャラクタディスプレードライバーを両方同時に使えるようになります。
>--- linux-2.6.12.3-a9-3/drivers/char/Kconfig.orig
>+++ linux-2.6.12.3-a9-3/drivers/char/Kconfig
>@@ -4,6 +4,10 @@
menu "Character devices"
>+config LCD_SC1602BS
>+ tristate "SC1602BS LCD Character Display driver"
>+ depends on ARCH_ARMADILLO210 && !ARMADILLO2X0_GPIO
>+
>config ARMADILLO210_GPIO
>tristate "Armadillo-210 GPIO driver"
>depends on ARCH_ARMADILLO210
>しかし、ただ単に両方のドライバを有効にしただけだと、LCDに接続しているGPIOを
>GPIOドライバから操作できるようになってしまいます。gpioctrlでLCDに接続している
>
>GPIOを触らないようにするか、linux-2.6.12.3-a9/drivers/char/armadillo2x0_gpio.c
>の
>static struct gpio_info gpio[]
>から、変更したくないGPIOを削除してください。
>(2012年03月28日 23:24), h wrote:
>> 泉です。
>> 竹之下さん返信ありがとうございます。
> >>竹之下です。
>> >(2012年03月17日 13:12), h wrote:
>> >> 泉と申します。
>> >> Armadillo-210のHowToのSC1602BS LCDモジュールをつけようを参考に
>> >こちらですね。
>> >http://armadillo.atmark-techno.com/howto/add-lcd-char-display
>>
>> >> Armadillo- 220に
>> >> SC1602BSキャラクタディスプレードライバーを組込みc言語にてメニュープログ
>>
>> >> ラム、
>> >> ipアドレス表示プログラム、時間表示プログラムを作成してバックグラウン
>> ドで
>> >> 動かしています。
>> >> 問題はSC1602BSキャラクタディスプレー、タクトスイッチで使用していないGPI
>> >>8〜 をgpioctrlコマンドで使用したいのですが使用することができません。
>> >>解る方お願 いいたします。
>> >使用できないとは、どういう状況でしょうか?
>> >もう少し、詳しく教えていただけますか?
>> >Howtoの記事を参考に、LCDモジュール用のドライバを作成されたのであれば、
>> >GPIOドライバが無効になっているのではないかと思います。
>> SC1602BSキャラクタディスプレードライバーが有効であるためGPIOドライバが無
>> 効です。
>> SC1602BSキャラクタディスプレーを使いながら、GPIO8〜15使用したということ
>> です。
>> GOIO_8、GPIO_9にトランジスタを接続、LCDのバックライト、リレーをON、OFF制御を
>> するようにしたいと考えています。
>> GPIOドライバ、もしくは、SC1602BSキャラクタディスプレードライバーの改造が
>> 必要でしょうか?
>> さっそく下記のブートローダー、GPIOの設定を試してみたいと思います。
>>
>> >> またGPIO 8〜を電源立ち上げと同時に出力LOWレベル設定としたいです。
>> >> 過去のログを見るとGPIOの初期値を電源投入直後に設定したい場合
>> >> bootloader(hermit-at)とkernelの修正が必要とのコメントがありましたが具体
>>
>> >> 的に教えていただきたいです。
>> >Armadillo-220では、GPIOとEP9307のポートとの対応は下記のように
>> >なっています。
>>
>> >|ピン名 | GPIO番号|EP9307ポート|
>> >|CON12 1ピン | GPIO_8 | Port D:0 |
>> >|CON12 2ピン | GPIO_9 | Port D:1 |
>> >|CON12 3ピン | GPIO_10 | Port D:2 |
>> >|CON12 4ピン | GPIO_11 | Port D:3 |
>> >|CON12 5ピン | GPIO_12 | Port C:0 |
>> >|CON12 6ピン | GPIO_13 | Port C:1 |
>> >|CON12 7ピン | GPIO_14 | Port C:2 |
>> >|CON12 8ピン | GPIO_15 | Port C:3 |
>>
>> >EP9307のGPIOモジュールでは、ポートごとにDDR(Data Direction Register)と
>> >DR(Data Register)を持っています。出力Lowとするには、DDRの対応するビットを
>>
>> >1(出力)にし、DRの対応するビットを0(Low)にする必要があります。
>>
>> >Armadillo-220用のブートローダーでは、GPIOの設定は
>> >hermit-at/src/target/armadillo2x0/boot.S ファイルで行っています。
>> >下記のように変更すると、起動直後にGPIO_8から15が出力Lowになると思います。
>>
>>
>> >--- a/src/target/armadillo2x0/boot.S
>> >+++ b/src/target/armadillo2x0/boot.S
>> >@@ -60,11 +60,12 @@ _start_flash:
>> > cmp r4, #0x00
>> > moveq r1, #0x00 /* a210(Rev.A or B) */
>> > movne r1, #0x80 /* a2[2|3|4]0,a210(Rev.C or later) */
>> >- str r1, [r0, #0x18]
>> > str r1, [r0, #0x08]
>> >+ orr r1, r1, #0x0f
>> >+ str r1, [r0, #0x18]
>> >
>> >- /*PDDDR=0x00*/
>> >- mov r1, #0x00
>> >+ /*PDDDR=0x0f*/
>> >+ mov r1, #0x0f
>> > str r1, [r0, #0x1c]
>> >
>> > /*PFDDR=0x00*/
>> >
>> >カーネルでは、GPIO_8から15はGPIOドライバ以外誰も触らないので、修正の
>> >必要はないと思います。
>>
>> >--
>> >Koyo Takenoshita
>>
>>
>>
>> _______________________________________________
>> armadillo mailing list
>> email@hidden
>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>--
>Koyo Takenoshita
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20120331/3a34669b/attachment.html>
armadillo メーリングリストの案内