ZIA CB - DigitalMediaProfessionals/dv-sdk GitHub Wiki

レジスタ

以下の設定はzia-firmware-c3* のバージョン7.0.20190215 以降のレジスタ設定です。 ベースアドレスは0xa0001000 です。 汎用LED はご利用いただけません。 状態リードには/dev/mem をご利用ください。

ビット R/W 機能 備考
31:20 - Reserved
19 R CB S6-4 の状態(0:ON, 1:OFF)
18 R CB S6-3 の状態(0:ON, 1:OFF)
17 R CB S6-2 の状態(0:ON, 1:OFF)
16 R CB S6-1 の状態(0:ON, 1:OFF)
15:4 - Reserved
3 R プッシュボタン(S5) 状態リード
2 R プッシュボタン(S4) 状態リード
1 R プッシュボタン(S3) 状態リード
0 R プッシュボタン(S2) 状態リード

以下の設定はzia-firmware-c3* のバージョン7.0.20190215 までのレジスタ設定です。

オフセット レジスタ R/W 機能 備考
0x0000 GPI_00 R DIP スイッチ(S6) 状態リード
0x0010 GPI_P0 R プッシュボタン(S2) 状態リード
0x0014 GPI_P1 R プッシュボタン(S3) 状態リード
0x0018 GPI_P2 R プッシュボタン(S4) 状態リード
0x001C GPI_P3 R プッシュボタン(S5) 状態リード
0x0020 GPO_0 RW 汎用LED出力(LED1-4) Read Modify Write 必要
0x0030 GPIO_00 PF_IO0(K12)用 GPIO制御 現在はご利用いただけません
0x0034 GPIO_01 PF_IO1(K13)用 GPIO制御 現在はご利用いただけません
0x0038 GPIO_02 PF_IO2(F13)用 GPIO制御 現在はご利用いただけません

GPI_00

ビット R/W 機能 備考
31:4 - Reserved
3 R CB S6-4 の状態(0:ON, 1:OFF)
2 R CB S6-3 の状態(0:ON, 1:OFF)
1 R CB S6-2 の状態(0:ON, 1:OFF)
0 R CB S6-1 の状態(0:ON, 1:OFF)

GPI_P0

ビット R/W 機能 備考
31:1 - Reserved
0 R CB S2 の状態(0:Pushなし, 1:Pushあり) Read することにより0 に設定

GPI_P1

ビット R/W 機能 備考
31:1 - Reserved
0 R CB S3 の状態(0:Pushなし, 1:Pushあり) Read することにより0 に設定

GPI_P2

ビット R/W 機能 備考
31:1 - Reserved
0 R CB S4 の状態(0:Pushなし, 1:Pushあり) Read することにより0 に設定

GPI_P3

ビット R/W 機能 備考
31:1 - Reserved
0 R CB S5 の状態(0:Pushなし, 1:Pushあり) Read することにより0 に設定

GPO_0

ビット R/W 機能 備考
31:4 - Reserved
3 RW CB LED4制御(0:OFF, 1:ON)
2 RW CB LED3制御(0:OFF, 1:ON)
1 RW CB LED2制御(0:OFF, 1:ON)
0 RW CB LED1制御(0:OFF, 1:ON)

GPIO_00

ビット R/W 機能 備考
31:2 - Reserved
1 RW RF_IO0 DIR(0:Input, 1:Output) Hi-z出力はInputで対応
0 R Input時 入力データ
0 RW Output時 出力データ

GPIO_01

ビット R/W 機能 備考
31:2 - Reserved
1 RW RF_IO1 DIR(0:Input, 1:Output) Hi-z出力はInputで対応
0 R Input時 入力データ
0 RW Output時 出力データ

GPIO_02

ビット R/W 機能 備考
31:2 - Reserved
1 RW RF_IO2 DIR(0:Input, 1:Output) Hi-z出力はInputで対応
0 R Input時 入力データ
0 RW Output時 出力データ

GPIO

GPIO の使い方は次の通りです。

PS_MIOxx のGPIO

PS_MIOxx(xは数字)はLinux に一般のsysfs を通して操作可能です。 公式ドキュメントはこちらになります。

ただし、まず弊社のプログラムにより対象のGPIOを使えるように設定してください。


$ # initialize gpio by DMP program
$ cd /home/ubuntu/dv-sdk/utils/ && make
$ sudo ./reset_mio_c3 xx

$ # /sys/class/gpio/gpioxx/ が作られます。
$ echo $(( $(cat /sys/class/gpio/gpiochip*/base) + xx )) > /sys/class/gpio/export

$ # cat /sys/class/gpio/gpioxx/{direction,value,edge,active_low} などで情報を取得できます。
$ # 各ファイルにつきましては[https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/Documentation/gpio/sysfs.txt?h=v4.14.96] をご参照ください。

$ # finalize
$ echo $(( $(cat /sys/class/gpio/gpiochip*/base) + xx )) > /sys/class/gpio/unexport

C 言語のプログラムからも同様に操作できます。Xilinx-Wiki をご参照ください。

ただし、PS_MIO42/PS_MIO32/PS_MIO33 は予約済みのためご利用いただけません。

PF_IOx のGPIO

PF_IOx のGPIO は現在ご利用いただけません。