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