製品情報>Kintex-7 PCIe Express光ボード「Cosmo-K」>PCI Expressサンプルデザイン>GPIOの使い方

GPIOの使い方

Cosmo-KのGPIOは60本のシングルエンド、または30組の差動信号として使えます。デフォルトではシングルエンド60本としてコンフィグされています。

ピンの番号は下の図のようになっています。

 

ソフトウェア

これらのGPIOは下位30bitと上位30bitに分けて、BAR0に配置されたレジスタで1bit単位でアクセスできます。

オフセット 名称 bit31 bit30 bit[29:0]
+8 GPIO0_OUT 未使用 未使用 GPIO[29:0]の出力値
+12 GPIO0_DIR 未使用 未使用 GPIO[29:0]の出力許可
+16 GPIO0_IN 未使用 未使用 GPIO[29:0]の入力値
+20 GPIO1_OUT 未使用 未使用 GPIO[59:30]の出力値
+24 GPIO1_DIR 未使用 未使用 GPIO[59:30]の出力許可
+28 GPIO1_IN 未使用 未使用 GPIO[59:30]の入力値

例えば、GPIO[7:0]から0x55を出力し、GPIO[15:8]の値を入力して読み出すには以下のようにします。

ULONG Bar0Addr,Bar0Length;
PcieGetBar(0,&Bar0Addr,&Bar0Length); // BAR0の情報を取得
PcieWriteMemLong(Bar0Addr + 8, 0x55); // GPIO0[7:0]から0x55を出力する
PcieWriteMemLong(Bar0Addr + 12, 0x000000ff); // GPIO0[7:0]を出力にする
printf("%x\n",PciReadMemLong(Bar0Addr+16) >> 8); //GPIO[15:0]の値を表示する

 

ハードウェア

GPIOと内蔵レジスタはcskgpio_0というモジュールで処理されています。このモジュールを右クリックし、Edit in IP Packagerで処理することでカスタマイズすることができます。

 

 


© 2017 TokushuDenshiKairo Inc. All rights reserved