Libero SoC の MPFS_DISCOVERY_KIT プロジェクトの LED を Linux から制御してみたい。
MPFS_DISCOVERY_KIT プロジェクトに LED を制御する回路を作ろうと思ったが、すでに CoreGPIO から接続されているようなので、それを利用して、Linux から制御してみることにした。
Libero SoC を起動して、MPFS_DISCOVERY_KIT プロジェクトを読み込んで、MPFS_DISCOVERY_KIT SmartDesign を表示した。
LED1 ポートをたどっていくと、OR_LED1 の Y に接続されている。OR の出力なので、入力の 2 つのどちらが 1 でも LED が点灯するのだろう?

OR_LED1 の A 入力をたどっていくと、FIC_3_PERIPHERALS_0 の GPIO_OUT[0] に入っている。

OR_LED1 の B 入力をたどっていくと、MSS_WRAPPER_0 の GPIO_2_M2F_17 に入っている。つまり、RISC-V から LED を点灯することができるということだろう?

FIC_3_PERIPHERALS_0 の中身を見ると、GPIO_OUT[6:0] は COREGPIO_C0 に接続されていた。

COREGPIO_C0 をダブルクリックし、設定画面を表示させた。

マニュアルで設定方法を確認するために Catalog タブをクリックして、IP Catalog の検索画面に GPIO と入れて検索した。
CoreGPIO が出てきたので、右クリックし、右クリックメニューから Open documentation -> CoreGPIO_HB.pdf を選択した。

HB0183: CoreGPIO v3.2 Handbook が開いた。
レジスタマップを見ると、0xA0 が Output register のようだ。

FIC3_ADDRESS_GENERATION_1 を見ると、0x400001A0 番地にアクセスすれば、CoreGPIO の Output register に書き込めそうだ。
- 2024年12月13日 04:03 |
- PolarFire SoC Discovery Kit
-
| トラックバック:0
-
| コメント:0