Hello all,
Is there any updated tutorials on how to get started with the MiniZed using the latest tools from Xilinx?
All I have found is old information and it's a real pain trying to figure out how this all works...
Thanks
Hello all,
Is there any updated tutorials on how to get started with the MiniZed using the latest tools from Xilinx?
All I have found is old information and it's a real pain trying to figure out how this all works...
Thanks
Hello again,
Not sure if this is a dead forum or people just don't want to help.... :-(
I have been able to get a basic "hello world" example working with Vivado/Vitis 2010.1.
I have had to bail with trying to get it working in Linux. The tools don't seem very stable in Ubuntu. They will work for a while then things start going bonkers. I'll have to figure that out later when I start trying to figure out Petalinux. For now I am running Vivado/Vitis in Windows 10 (not my preference but its at least working).
I'm now trying to figure out the GPIO stuff with a standalone system.
I added the AXI interconnect and AXI GPIO blocks to control the PL_LED_R and PL_LED_G outputs and read the PL_SW input to the Vivado design. I have created a Vitis project and can toggle the LEDs and read the switch. (Major pain trying to find the information on the web to do this.)
Now I'm trying to also control the PS_LED_R and PS_LED_G outputs and read the PS_PB input. (Again major pain trying to find the necessary info...)
I can read the input but have not been able to control the outputs. I'm not sure what I am missing.
In the Vivado design, so the PS MIO pins need to be made external and connected? I didn't do that with the PS_PB input and can read it with not problems. But the two outputs never change.
Right now I have this in the Vitis code:
XGpioPs mio;
XGpioPs_Config *cfg = XGpioPs_LookupConfig(XPAR_GPIO_0_DEVICE_ID);
XGpioPs_CfgInitialize(&mio, cfg, cfg->BaseAddr);
XGpioPs_SetDirectionPin(&mio, 0, 1); // PS_PB (MIO0) is an input
XGpioPs_SetDirectionPin(&mio, 52, 0); // PS_LED_R (MIO52) is an output
XGpioPs_SetDirectionPin(&mio, 53, 0); // PS_LED_G (MIO53) is an output
XGpioPs_SetOutputEnablePin(&mio, 52, 1);
XGpioPs_SetOutputEnablePin(&mio, 53, 1);
This this reads the input:
XGpioPs_ReadPin(&mio, 0);
And, I think, this should set the outputs:
XGpioPs_WritePin(&mio, 52, 0); // set PS_LED_R low (LED off)
XGpioPs_WritePin(&mio, 52, 1); // set PS_LED_R high (LED on)
Am I missing something?
Thanks
Hello again,
Not sure if this is a dead forum or people just don't want to help.... :-(
I have been able to get a basic "hello world" example working with Vivado/Vitis 2010.1.
I have had to bail with trying to get it working in Linux. The tools don't seem very stable in Ubuntu. They will work for a while then things start going bonkers. I'll have to figure that out later when I start trying to figure out Petalinux. For now I am running Vivado/Vitis in Windows 10 (not my preference but its at least working).
I'm now trying to figure out the GPIO stuff with a standalone system.
I added the AXI interconnect and AXI GPIO blocks to control the PL_LED_R and PL_LED_G outputs and read the PL_SW input to the Vivado design. I have created a Vitis project and can toggle the LEDs and read the switch. (Major pain trying to find the information on the web to do this.)
Now I'm trying to also control the PS_LED_R and PS_LED_G outputs and read the PS_PB input. (Again major pain trying to find the necessary info...)
I can read the input but have not been able to control the outputs. I'm not sure what I am missing.
In the Vivado design, so the PS MIO pins need to be made external and connected? I didn't do that with the PS_PB input and can read it with not problems. But the two outputs never change.
Right now I have this in the Vitis code:
XGpioPs mio;
XGpioPs_Config *cfg = XGpioPs_LookupConfig(XPAR_GPIO_0_DEVICE_ID);
XGpioPs_CfgInitialize(&mio, cfg, cfg->BaseAddr);
XGpioPs_SetDirectionPin(&mio, 0, 1); // PS_PB (MIO0) is an input
XGpioPs_SetDirectionPin(&mio, 52, 0); // PS_LED_R (MIO52) is an output
XGpioPs_SetDirectionPin(&mio, 53, 0); // PS_LED_G (MIO53) is an output
XGpioPs_SetOutputEnablePin(&mio, 52, 1);
XGpioPs_SetOutputEnablePin(&mio, 53, 1);
This this reads the input:
XGpioPs_ReadPin(&mio, 0);
And, I think, this should set the outputs:
XGpioPs_WritePin(&mio, 52, 0); // set PS_LED_R low (LED off)
XGpioPs_WritePin(&mio, 52, 1); // set PS_LED_R high (LED on)
Am I missing something?
Thanks
Avnet has hardware, software, and training courses for the MiniZed board. Though targeted to a recent version of the Xilinx tools, they may be very helpful for you to learn what you are trying to do:
You may also want to take a look at the latest PetaLinux 2020.1 BSP for the MiniZed. In this BSP the bi-color LED is tied to the microphone (any sensing of audio input changes the LED to red).
http://avnet.me/zedsupport then navigate to 2020.1 -> BSP
The Xilinx Vivado, Vitis, and PetaLinux tools run well on Ubuntu, but are finicky about the exact version being used. It is important to match the Xilinx tools to a known good, supported version of the host OS (Ubuntu). It is best to download and install a supported Ubuntu version and stay on that version (do not let Ubuntu update/upgrade). More information about supported Ubuntu versions for the 2020.1 Xilinx tools is in Xilinx UG973:
Also, Avnet publishes a VirtualBox VM Install Guide to aid users in their Ubuntu setup to run the Xilinx tools:
--Tom