[Armadillo:07956] Re: SC1602BSキャラクタディスプレードライバーを組込とgpioctrlが使用できない。
Takenoshita Koyo
email@hidden
2012年 3月 27日 (火) 18:30:59 JST
竹之下です。
(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キャラクタディスプレー、タクトスイッチで使用していないGPIO
> 8〜 を
> gpioctrlコマンドで使用したいのですが使用することができません。解る方お願
> いいたします。
使用できないとは、どういう状況でしょうか?
もう少し、詳しく教えていただけますか?
Howtoの記事を参考に、LCDモジュール用のドライバを作成されたのであれば、
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 メーリングリストの案内