GPIO problem

Dear All,

I'm trying to use a GIPO module in my application, but I can't figure out how to use it and the GPIO specification (DS466) and software API definition document are not helping much.

I need 32 lines for input and 32 different lines for output. I decided to use a GPIO core, 32 bits wide, configured as single channel. The idea is to read data from the GPIO_in pins and write data to GPIO_d_out pins. I have parameterized the core as follows: C_GPIO_WIDTH 31 C_ALL_IMPUTS 0 C_IS_BIDIR 0 C_IS_DUAL 0

So, my first question is: Is there something wrong with this configuration? Can I us it?

Next, I try to write to the core. I used the following instructions: XGpio gpio_io; XGpio_Initialize(&gpio_io, XPAR_GPIO_IOPORT_DEVICE_ID); XGpio_DiscreteWrite(&gpio_io,1,255);

Noting happens. Do I have to set the direction with XGpio_SetDataDirection? Do I have to use other functions?

Tanks to all

Jos=E9 Mariano

Reply to
jmariano
Loading thread data ...

If you actually check the example program in the installed EDK folder, you find an example that uses the GPIO components.

You have to set the data direction using the XGpio_mSetDataDirection function and use XGpio_mSetDataReg function to set the GPIO component.

jmariano wrote:

Reply to
Paul Lee

Hi Paul,

Tanks for your help. I'm sorry for the late replay. I wanted to try what you suggested before answering, but din't had much time.

The example programs ware very useful, and I manage to solve my problem. What I have misunderstood is that you can not configure a GPIO module as input and output simultaneously, unless you use the GPIO_IO pins.

tanks again,

Jos=E9 Mariano

Reply to
jmariano

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.