CAT760_GPIO

CAT760のGPIOのうち、UART (SCIF) と共用ピンになっている SCK1, CTS2, RTS2 が GPIOとして使用できるか確認した

GPIO機能接続先
PTG4SCK1LED4
PTH7SCK2EB760-CN5-24B
PTH6CTS2EB760-CN5-26A
PTH5RTS2EB760-CN5-26B

検証方法

linux-2.6.15にて 汎用 gpiodrv ドライバをロードして行う

filegpiodrv.ko linux-2.6.15用
filegpiodrv_2.6.32.ko linux-2.6.32用
filecat760.sh

Version1.2 → Version 1.3の変更点
PTH5,6,7 を GPIO In/Out 設定可能に変更した (以前は周辺モジュールモードのみ)
# insmod gpiodrv.ko
# ./cat760.sh

PTG4(SCK1)

# echo O > /dev/gpio/ptg4   大文字のO (Output)を書込み、GPIO出力に
# echo 0 > /dev/gpio/ptg4   点灯した
# echo 1 > /dev/gpio/ptg4   消灯した

PTG4の GPIO操作ができることを確認した

PTH6(CTS2), PTH5(RTS2)

RXD2-TXD2 をループバックし、 RTS2-CTS2 もループバックします

P1000858.jpg

pic1.png

この状態で PTH5 〜 PTH6 の GPIO折り返しが読み書きでき、かつ /dev/ttySC2 での折り返しが読み書きできれば UART機能と GPIO機能が同時に動くことが確認できます。

telnetなどで端末を2つ開きます

試験1

PHT6を入力、PTH5を出力にして折り返す

端末1
# echo I > /dev/gpio/pth6
# cat /dev/gpio/pth6
端末2
# echo O > /dev/gpio/pth5
# echo 1 > /dev/gpio/pth5
# echo 0 > /dev/gpio/pth5

試験2

PHT5を入力、PTH6を出力にして折り返す

端末1
# echo I > /dev/gpio/pth5
# cat /dev/gpio/pth5
端末2
# echo O > /dev/gpio/pth6
# echo 1 > /dev/gpio/pth6
# echo 0 > /dev/gpio/pth6

試験3

PTH7 (SCK2) を入力にし、Vcc, Gnd などに接続して値を読む

端末1
# echo I > /dev/gpio/pth7
# cat /dev/gpio/pth7

試験4

この状態で

端末1
# cat /dev/ttySC2
端末2
# echo "hello" >  /dev/ttySC2

UARTの折り返し動作OK

結論

SH7760ハードウェア的にはUART(SCIF)機能と、GPIO機能は混在させることが可能である。

ただし、Linuxの SCIFデバイスドライバが、 RTC/CTS 機能を使っている可能性があり、SCIF初期化時やioctl()による モード変更時に PTH5やPTH6を RTC/CTS モードに変更してしまう可能性があります(未検証)

アプリが関与しないところで PTH5 や PTH6 が出力に設定されると誤ったデータが出力される恐れがあります。

関連