<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MiniZed Hardware Design - Recent Threads</title><link>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><lastBuildDate>Tue, 25 Mar 2025 09:54:30 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design" /><item><title>About Programming and Obtaining Configuration Files for IRPS5401MTRPBF</title><link>https://community.element14.com/thread/55646?ContentTypeID=0</link><pubDate>Tue, 25 Mar 2025 09:54:30 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:480f1e21-e629-41a4-82cd-59233c985ccd</guid><dc:creator>sdimen</dc:creator><slash:comments>0</slash:comments><comments>https://community.element14.com/thread/55646?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/55646/about-programming-and-obtaining-configuration-files-for-irps5401mtrpbf/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi everyone,&lt;/p&gt;
&lt;p&gt;I am designing a custom carrier board and plan to use Infineon&amp;#39;s &lt;a href="https://www.bettlink.com/product/infineontechnologies-irps5401mtrpbf-7638605" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;IRPS5401MTRPBF&lt;/a&gt;&amp;nbsp;PMIC with the UltraZed-EG SOM. I understand that the device needs to be programmed to meet specific power requirements.&lt;/p&gt;
&lt;p&gt;Programming Method: Programming of the IRPS5401MTRPBF requires the use of the PowIRCenter tool provided by Infineon. The tool allows the user to configure the PMIC&amp;#39;s output voltage, startup sequence, and other parameters according to specific application requirements.&lt;/p&gt;
&lt;p&gt;Configuration File Obtaining: If you want to use the same configuration as the UltraZed-EG SOM carrier board, you can contact the relevant designer or community member to obtain the PowIRCenter configuration file for the design. In previous discussions, the designer has indicated that such a configuration file is available.&lt;/p&gt;
&lt;p&gt;Pre-programmed device procurement: Typically, the IRPS5401MTRPBF is supplied in an unprogrammed state. If you need a pre-programmed device, you may need to contact a vendor or use a programming service. For example, Avnet offers a device programming service that can be customized to your needs.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Arduino expansion shield ports</title><link>https://community.element14.com/thread/55267?ContentTypeID=0</link><pubDate>Thu, 07 Nov 2024 15:08:52 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:0e268360-8e5a-485d-a08b-4822378637aa</guid><dc:creator>jimmi1</dc:creator><slash:comments>1</slash:comments><comments>https://community.element14.com/thread/55267?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/55267/arduino-expansion-shield-ports/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Can the arduino expansion ports be driven directly from the programmable logic or is it necessary to pass through the PS?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>GPIO can be used as input/output port?</title><link>https://community.element14.com/thread/54728?ContentTypeID=0</link><pubDate>Wed, 19 Jun 2024 02:37:13 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4dbe4493-df53-493d-ac4c-56648bcb9eeb</guid><dc:creator>koseiyokoyama</dc:creator><slash:comments>6</slash:comments><comments>https://community.element14.com/thread/54728?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/54728/gpio-can-be-used-as-input-output-port/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I am trying to comunicate with Temp/Humid module DHT11&lt;br /&gt;However data pin should be pull up to 3.3 but while my RTL trying to comunicate with DHT11 throgh IO13 pin, Data line pull down to GND. &lt;br /&gt;if GPIO can be inout port, then any one know how?&lt;/p&gt;
&lt;p&gt;My RTL working fine in simulation with Vivado&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Can MInized drive stepper Motor driver ULN2003A?</title><link>https://community.element14.com/thread/54684?ContentTypeID=0</link><pubDate>Fri, 07 Jun 2024 01:14:14 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:0b1bc526-d6b4-4bae-ac30-5f673769d162</guid><dc:creator>koseiyokoyama</dc:creator><slash:comments>4</slash:comments><comments>https://community.element14.com/thread/54684?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/54684/can-minized-drive-stepper-motor-driver-uln2003a/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Can Minized drive Stepper motor driver (one in ELGOO kit) ?&lt;/p&gt;
&lt;p&gt;Motor driver uses TI ULN2003A IC to dirve stepper motor (28BY-J-48)&lt;/p&gt;
&lt;p&gt;I wrote RTL to drive stepper motor driver from Minized GPIO,&lt;/p&gt;
&lt;p&gt;but it does not seems GPIO drive stepper motor driver&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;thank for your help&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Minized System generator hardware in the loop</title><link>https://community.element14.com/thread/54675?ContentTypeID=0</link><pubDate>Sat, 01 Jun 2024 18:22:41 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:a54b8fa4-c027-46e8-aecc-e86203d985aa</guid><dc:creator>jimmi1</dc:creator><slash:comments>2</slash:comments><comments>https://community.element14.com/thread/54675?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/54675/minized-system-generator-hardware-in-the-loop/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I would like to ask if anyone has experience or has managed to achieve hardware in the loop simulations using the minized board in matlabs system generator. I&amp;#39;m not sure if it is possible to enable the JTAG interface and whether or not board definition files exist for system generator.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>minized : how to define master clock in xdc for RTL</title><link>https://community.element14.com/thread/54576?ContentTypeID=0</link><pubDate>Thu, 02 May 2024 06:10:35 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f86ce51c-fbb1-4218-8107-74c733414028</guid><dc:creator>koseiyokoyama</dc:creator><slash:comments>7</slash:comments><comments>https://community.element14.com/thread/54576?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/54576/minized-how-to-define-master-clock-in-xdc-for-rtl/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I designed 7seg display driver in Verilog.&lt;br /&gt;in xdc file, I define my clock as follows&lt;/p&gt;
&lt;p&gt;set_property -dict {PACKAGE_PIN L12 IOSTANDARD LVCMOS33} [get_ports clk];&lt;br /&gt;&lt;br /&gt;create_clock -add -name sysclk -period 20.000 -waveform {0.000 10.000} [get_ports clk];&lt;/p&gt;
&lt;p&gt;L12 is WRCC Pin&lt;/p&gt;
&lt;p&gt;and clk is my clock input pin in my RTL design&lt;/p&gt;
&lt;p&gt;it does not seem clock is clocking..&lt;/p&gt;
&lt;p&gt;Am I missing&amp;nbsp; something?&lt;/p&gt;
&lt;p&gt;Block design is not used.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Updates of some Minized Resource Links</title><link>https://community.element14.com/thread/53313?ContentTypeID=0</link><pubDate>Mon, 17 Jul 2023 21:07:58 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:bf9d5cae-5186-4c39-9f0c-68ebe8911600</guid><dc:creator>rscasny</dc:creator><slash:comments>0</slash:comments><comments>https://community.element14.com/thread/53313?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/53313/updates-of-some-minized-resource-links/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I just learned today that some of our links were out of date. Here is the updated list:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Documentation/Reference Design&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://community.element14.com/products/devtools/avnetboardscommunity/w/boards/23077/minized"&gt;http://avnet.me/MINIZED_E14&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-training/technical-training-courses/m/files/145758"&gt;VirtualBox Installation 2021.1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.avnet.com/wps/portal/us/products/avnet-boards/avnet-board-families/minized/" rel="noopener noreferrer" target="_blank"&gt;http://avnet.me/minized&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.xilinx.com/zynq-7000" rel="nofollow noopener noreferrer" target="_blank"&gt;www.xilinx.com/zynq-7000&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id="" href="http://www.xilinx.com/Vitis" rel="nofollow noopener noreferrer" target="_blank"&gt;www.xilinx.com/Vitis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id="" href="http://www.xilinx.com/vivado" rel="nofollow noopener noreferrer" target="_blank"&gt;www.xilinx.com/vivado&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Forums/Discussion&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design"&gt;http://avnet.me/minized_forum&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Data transfer from PL to PS DDR</title><link>https://community.element14.com/thread/53267?ContentTypeID=0</link><pubDate>Wed, 12 Jul 2023 05:40:32 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:3a75dde5-3bb2-4c49-b0f0-3a7e0c4f8239</guid><dc:creator>Waqas</dc:creator><slash:comments>6</slash:comments><comments>https://community.element14.com/thread/53267?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/53267/data-transfer-from-pl-to-ps-ddr/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;We are using MiniZed Hardware in our project. We want to move some data from PL side to PS DDR through the control of PL side. We are using AXI datamover IP to transfer data from PL to PS DDR. However, we are not able to see any data in PS DDR after PL has provided data on Streaming Interface of AXI datamover IP.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Can&amp;nbsp;anyone suggest solution to&amp;nbsp;this problem??&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>MiniZed XDC Files - Where can I find  them or how to create them</title><link>https://community.element14.com/thread/51877?ContentTypeID=0</link><pubDate>Wed, 19 Oct 2022 19:02:31 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:930375dd-2dbe-4cad-91c6-2e9cab8eae3a</guid><dc:creator>kas.lewis</dc:creator><slash:comments>1</slash:comments><comments>https://community.element14.com/thread/51877?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/51877/minized-xdc-files---where-can-i-find-them-or-how-to-create-them/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m trying to get back to my FPGA board (Minized) but I&amp;#39;m having trouble as I&amp;#39;m trying to find an XDC file for the board or somewhere I can learn how to create one for all its peripherals. I have found&amp;nbsp;&lt;a href="https://github.com/Avnet/hdl/blob/master/Boards/MINIZED/minized_pins.xdc"&gt;THIS&lt;/a&gt;, but it does not include the LEDs or the push buttons on a quick check. Also is there a need to include any information for clocks or timing in this file?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kas&amp;nbsp;&lt;/p&gt;
&lt;p&gt;.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>FT2232H</title><link>https://community.element14.com/thread/51080?ContentTypeID=0</link><pubDate>Wed, 18 May 2022 05:00:09 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:438d85d8-8f08-441a-8f24-d1c861a13c5c</guid><dc:creator>snaseermohamed</dc:creator><slash:comments>1</slash:comments><comments>https://community.element14.com/thread/51080?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/51080/ft2232h/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;good morning,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; I am new to ft2232H. I have tried&amp;nbsp; to implement serial communication using MPSSE command in loop back mode. I&amp;nbsp; tried to run code given for serial communication in AN_135&lt;br /&gt;FTDI MPSSE Basics in loop back mode. But it gives&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot; Error - MPSSE receive buffer should have the looped-back data &amp;quot;.&lt;/p&gt;
&lt;p&gt;I tried both the way 1. using command &amp;quot;&amp;nbsp;&lt;span&gt;byOutputBuffer[dwNumBytesToSend++] = 0x84; &amp;quot; to internally connect TDI/DO PIN and TDO/DI .&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2. externally also connected both the pins.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;i want the solution for this. Please correct me if I made any mistakes as soon as possible.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;stdlib.h&amp;gt;
#include&amp;lt;string.h&amp;gt;
#include &amp;quot;ftd2xx.h&amp;quot;
#include&amp;lt;direct.h&amp;gt;
#include&amp;lt;stdbool.h&amp;gt;
int main()
{
// -----------------------------------------------------------
// Variables
// -----------------------------------------------------------
FT_HANDLE ftHandle; // Handle of the FTDI device
FT_STATUS ftStatus; // Result of each D2XX call
DWORD dwNumDevs; // The number of devices
unsigned int uiDevIndex = 0xF; // The device in the list that we&amp;#39;ll use
BYTE byOutputBuffer[8]; // Buffer to hold MPSSE commands and data
// to be sent to the FT2232H
BYTE byInputBuffer[8]; // Buffer to hold data read from the FT2232H
DWORD dwCount = 0; // General loop index
DWORD dwNumBytesToSend = 0; // Index to the output buffer
DWORD dwNumBytesSent = 0; // Count of actual bytes sent - used with FT_Write
DWORD dwNumBytesToRead = 0; // Number of bytes available to read
// in the driver&amp;#39;s input buffer
DWORD dwNumBytesRead = 0; // Count of actual bytes read - used with FT_Read
DWORD dwClockDivisor = 0xFFFF; // Value of clock divisor, SCL Frequency =
// 60/((1+0x05DB)*2) (MHz) = 1Mhz
// -----------------------------------------------------------
// Does an FTDI device exist?
// -----------------------------------------------------------
printf(&amp;quot;Checking for FTDI devices...\n&amp;quot;);
ftStatus = FT_CreateDeviceInfoList(&amp;amp;dwNumDevs);
// Get the number of FTDI devices
if (ftStatus != FT_OK) // Did the command execute OK?
{
printf(&amp;quot;Error in getting the number of devices\n&amp;quot;);
return 1; // Exit with error
}
if (dwNumDevs &amp;lt; 1) // Exit if we don&amp;#39;t see any
{
printf(&amp;quot;There are no FTDI devices installed\n&amp;quot;);
return 1; // Exit with error
}
printf(&amp;quot;%lu FTDI devices found \
- the count includes individual ports on a single chip\n&amp;quot;, dwNumDevs);
// -----------------------------------------------------------
// Open the port - For this application note, we&amp;#39;ll assume the first device is a
// FT2232H or FT4232H. Further checks can be made against the device
// descriptions, locations, serial numbers, etc. before opening the port.
// -----------------------------------------------------------
printf(&amp;quot;\nAssume first device has the MPSSE and open it...\n&amp;quot;);
ftStatus = FT_Open(0, &amp;amp;ftHandle);
if (ftStatus != FT_OK)
{
printf(&amp;quot;Open Failed with error %lu\n&amp;quot;, ftStatus);
return 1; // Exit with error
}


// Configure port parameters
printf(&amp;quot;\nConfiguring port for MPSSE use...\n&amp;quot;);
ftStatus |= FT_ResetDevice(ftHandle);
//Reset USB device
//Purge USB receive buffer first by reading out all old data from FT2232H receive buffer
ftStatus |= FT_GetQueueStatus(ftHandle, &amp;amp;dwNumBytesToRead);
// Get the number of bytes in the FT2232H
// receive buffer
if ((ftStatus == FT_OK) &amp;amp;&amp;amp; (dwNumBytesToRead &amp;gt; 0))
FT_Read(ftHandle, &amp;amp;byInputBuffer, dwNumBytesToRead, &amp;amp;dwNumBytesRead);
//Read out the data from FT2232H receive buffer
ftStatus |= FT_SetUSBParameters(ftHandle, 65536, 65535);
//Set USB request transfer sizes to 64K
ftStatus |= FT_SetChars(ftHandle, false, 0, false, 0);
//Disable event and error characters
ftStatus |= FT_SetTimeouts(ftHandle, 0, 5000);
//Sets the read and write timeouts in milliseconds
ftStatus |= FT_SetLatencyTimer(ftHandle, 1);
//Set the latency timer to 1mS (default is 16mS)
ftStatus |= FT_SetFlowControl(ftHandle, FT_FLOW_RTS_CTS, 0x00, 0x00);
//Turn on flow control to synchronize IN requests
ftStatus |= FT_SetBitMode(ftHandle, 0x0, 0x00);
//Reset controller
ftStatus |= FT_SetBitMode(ftHandle, 0x0, 0x02);
//Enable MPSSE mode
if (ftStatus != FT_OK)
{
printf(&amp;quot;Error in initializing the MPSSE %lu\n&amp;quot;, ftStatus);
FT_Close(ftHandle);
return 1; // Exit with error
}
Sleep(50); // Wait for all the USB stuff to complete and work
// Enable internal loop-back
byOutputBuffer[dwNumBytesToSend++] = 0x84;
// Enable loopback
ftStatus = FT_Write(ftHandle, byOutputBuffer, \
dwNumBytesToSend, &amp;amp;dwNumBytesSent);
// Send off the loopback command
dwNumBytesToSend = 0; // Reset output buffer pointer
// Check the receive buffer - it should be empty
ftStatus = FT_GetQueueStatus(ftHandle, &amp;amp;dwNumBytesToRead);
// the FT2232H receive buffer
if (dwNumBytesToRead != 0)
{
printf(&amp;quot;Error - MPSSE receive buffer should be empty %lu\n&amp;quot;, ftStatus);
FT_SetBitMode(ftHandle, 0x0, 0x00);
// Reset the port to disable MPSSE
FT_Close(ftHandle); // Close the USB port
return 1; // Exit with error
}
// -----------------------------------------------------------
// Synchronize the MPSSE by sending a bogus opcode (0xAB),
// The MPSSE will respond with &amp;quot;Bad Command&amp;quot; (0xFA) followed by
// the bogus opcode itself.
// -----------------------------------------------------------
byOutputBuffer[dwNumBytesToSend++] = 0xAB;
//Add bogus command ‘0xAB’ to the queue
ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &amp;amp;dwNumBytesSent);
// Send off the BAD command
dwNumBytesToSend = 0; // Reset output buffer pointer
do
{
ftStatus = FT_GetQueueStatus(ftHandle, &amp;amp;dwNumBytesToRead);
// Get the number of bytes in the device input buffer
} while ((dwNumBytesToRead == 0) &amp;amp;&amp;amp; (ftStatus == FT_OK));
//or Timeout
bool bCommandEchod = false;
ftStatus = FT_Read(ftHandle, &amp;amp;byInputBuffer, dwNumBytesToRead, &amp;amp;dwNumBytesRead);
//Read out the data from input buffer
for (dwCount = 0; dwCount &amp;lt; dwNumBytesRead - 1; dwCount++)
//Check if Bad command and echo command are received
{
if ((byInputBuffer[dwCount] == 0xFA) &amp;amp;&amp;amp; (byInputBuffer[dwCount+1] == 0xAB))
{
bCommandEchod = true;
break;
}
}
if (bCommandEchod == false)
{
printf(&amp;quot;Error in synchronizing the MPSSE\n&amp;quot;);
FT_Close(ftHandle);
return 1; // Exit with error
}
// Disable internal loop-back
//byOutputBuffer[dwNumBytesToSend++] = 0x85;
// Disable loopback
//ftStatus = FT_Write(ftHandle, byOutputBuffer,\
//dwNumBytesToSend, &amp;amp;dwNumBytesSent);
// Send off the loopback command
dwNumBytesToSend = 0; // Reset output buffer pointer
// Check the receive buffer - it should be empty
ftStatus = FT_GetQueueStatus(ftHandle, &amp;amp;dwNumBytesToRead);
// Get the number of bytes in
// the FT2232H receive buffer
if (dwNumBytesToRead != 0)
{
printf(&amp;quot;Error - MPSSE receive buffer should be empty\n %lu &amp;quot;, ftStatus);
FT_SetBitMode(ftHandle, 0x0, 0x00);
// Reset the port to disable MPSSE
FT_Close(ftHandle); // Close the USB port
return 1; // Exit with error
}

//MPSSE Setup
// -----------------------------------------------------------
// Configure the MPSSE settings for JTAG
// Multple commands can be sent to the MPSSE with one FT_Write
// -----------------------------------------------------------
dwNumBytesToSend = 0; // Start with a fresh index
// Set up the Hi-Speed specific commands for the FTx232H
byOutputBuffer[dwNumBytesToSend++] = 0x8A;
// Use 60MHz master clock (disable divide by 5)
byOutputBuffer[dwNumBytesToSend++] = 0x97;
// Turn off adaptive clocking (may be needed for ARM)
byOutputBuffer[dwNumBytesToSend++] = 0x8D;
// Disable three-phase clocking
ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &amp;amp;dwNumBytesSent);
// Send off the HS-specific commands
dwNumBytesToSend = 0; // Reset output buffer pointer
// Set TCK frequency
// TCK = 60MHz /((1 + [(1 +0xValueH*256) OR 0xValueL])*2)
byOutputBuffer[dwNumBytesToSend++] = &amp;#39;\x86&amp;#39;;
// Command to set clock divisor
byOutputBuffer[dwNumBytesToSend++] = dwClockDivisor &amp;amp; 0xFF;
// Set 0xValueL of clock divisor
byOutputBuffer[dwNumBytesToSend++] = (dwClockDivisor &amp;gt;&amp;gt; 8) &amp;amp; 0xFF;
// Set 0xValueH of clock divisor
ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &amp;amp;dwNumBytesSent);
// Send off the clock divisor commands
dwNumBytesToSend = 0; // Reset output buffer pointer
// Set initial states of the MPSSE interface
// - low byte, both pin directions and output values
// Pin name Signal Direction Config Initial State Config
// ADBUS0 TCK/SK output 1 high 1
// ADBUS1 TDI/DO output 1 low 0
// ADBUS2 TDO/DI input 0 0
// ADBUS3 TMS/CS output 1 high 1
// ADBUS4 GPIOL0 output 1 low 0
// ADBUS5 GPIOL1 output 1 low 0
// ADBUS6 GPIOL2 output 1 high 1
// ADBUS7 GPIOL3 output 1 high 1
byOutputBuffer[dwNumBytesToSend++] = 0x80;
// Configure data bits low-byte of MPSSE port
byOutputBuffer[dwNumBytesToSend++] = 0xC9;
// Initial state config above
byOutputBuffer[dwNumBytesToSend++] = 0xFB;
// Direction config above
ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &amp;amp;dwNumBytesSent);
// Send off the low GPIO config commands
dwNumBytesToSend = 0; // Reset output buffer pointer
// Note that since the data in subsequent sections will be clocked on the rising edge, the
// inital clock state of high is selected. Clocks will be generated as high-low-high.
// For example, in this case, data changes on the rising edge to give it enough time
// to have it available at the device, which will accept data *into* the target device
// on the falling edge.
// Set initial states of the MPSSE interface
// - high byte, both pin directions and output values
// Pin name Signal Direction Config Initial State Config
// ACBUS0 GPIOH0 input 0 0
// ACBUS1 GPIOH1 input 0 0
// ACBUS2 GPIOH2 input 0 0
// ACBUS3 GPIOH3 input 0 0
// ACBUS4 GPIOH4 input 0 0
// ACBUS5 GPIOH5 input 0 0
// ACBUS6 GPIOH6 input 0 0
// ACBUS7 GPIOH7 input 0 0
byOutputBuffer[dwNumBytesToSend++] = 0x82;
// Configure data bits low-byte of MPSSE port
byOutputBuffer[dwNumBytesToSend++] = 0x00;
// Initial state config above
byOutputBuffer[dwNumBytesToSend++] = 0x00;
// Direction config above
ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &amp;amp;dwNumBytesSent);
// Send off the high GPIO config commands
dwNumBytesToSend = 0; // Reset output buffer pointer
for(dwCount = 0; dwCount &amp;lt; 8; dwCount++)
{ // Clear out the input and output buffers
byInputBuffer[dwCount] = 0x00;
byOutputBuffer[dwCount] = 0x00;
}
// Data Transmit, no receive
dwNumBytesToSend = 0;
byOutputBuffer[dwNumBytesToSend++] = 0x84;
// Enable loopback
ftStatus = FT_Write(ftHandle, byOutputBuffer, \
dwNumBytesToSend, &amp;amp;dwNumBytesSent);
//sleep(2);
dwNumBytesToSend = 0;
byOutputBuffer[dwNumBytesToSend++] = 0x10;
// Output on rising clock, no input
// MSB first, clock a number of bytes out
byOutputBuffer[dwNumBytesToSend++] = 0x01; // Length L
byOutputBuffer[dwNumBytesToSend++] = 0x00; // Length H
// Length = 0x0001 + 1
byOutputBuffer[dwNumBytesToSend++] = 0xA5;
byOutputBuffer[dwNumBytesToSend++] = 0x0F;
// Data = 0xA50F
ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &amp;amp;dwNumBytesSent);
// Send off the command
dwNumBytesToSend = 0; // Reset output buffer pointer
Sleep(2); // Wait for data to be transmitted and status
// to be returned by the device driver
// - see latency timer above
// Check the receive buffer - it should be empty
ftStatus = FT_GetQueueStatus(ftHandle, &amp;amp;dwNumBytesToRead);
// Get the number of bytes in
// the FT2232H receive buffer
// It should be zero since there was
// no data clocked *in*
FT_Read(ftHandle, &amp;amp;byInputBuffer, dwNumBytesToRead, &amp;amp;dwNumBytesRead);
if (dwNumBytesToRead != 0)
{
printf(&amp;quot;Error - MPSSE receive buffer should be empty %lu\n&amp;quot;, ftStatus);
FT_SetBitMode(ftHandle, 0x0, 0x00);
// Reset the port to disable MPSSE
FT_Close(ftHandle); // Close the USB port
return 1; // Exit with error
}
printf(&amp;quot;Press &amp;lt;Enter&amp;gt; to continue\n&amp;quot;);
getchar(); // wait for a carriage return
// Now repeat the transmission with the send and receive op-code in place of transmit-only
// Data Transmit, with receive
byOutputBuffer[dwNumBytesToSend++] = 0x34;
// Output on rising clock, input on falling clock
// MSB first, clock a number of bytes out
byOutputBuffer[dwNumBytesToSend++] = 0x01; // Length L
byOutputBuffer[dwNumBytesToSend++] = 0x00; // Length H
// Length = 0x0001 + 1
byOutputBuffer[dwNumBytesToSend++] = 0xA5;
byOutputBuffer[dwNumBytesToSend++] = 0x0F;
// Data = 0xA50F
ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &amp;amp;dwNumBytesSent);
// Send off the command
dwNumBytesToSend = 0; // Reset output buffer pointer
Sleep(2); // Wait for data to be transmitted and status
// to be returned by the device driver
// - see latency timer above
// Check the receive buffer - it should contain the looped-back data
ftStatus = FT_GetQueueStatus(ftHandle, &amp;amp;dwNumBytesToRead);
// Get the number of bytes in
// the FT2232H receive buffer
// It should be zero since there was
// no data clocked *in*
FT_Read(ftHandle, &amp;amp;byInputBuffer, dwNumBytesToRead, &amp;amp;dwNumBytesRead);
// The input buffer should contain the same number of bytes as those output
//printf(&amp;quot;\n size:%d&amp;quot;,dwNumBytesToRead);
if (dwNumBytesToRead != 2)
{
printf(&amp;quot;Error - MPSSE receive buffer should have the looped-back data\n&amp;quot;);
FT_SetBitMode(ftHandle, 0x0, 0x00);
// Reset the port to disable MPSSE
FT_Close(ftHandle); // Close the USB port
return 1; // Exit with error
}
printf(&amp;quot;The correct number of bytes have been received\n&amp;quot;);
// Check to be sure it&amp;#39;s the same.
for(dwCount = 0; dwCount &amp;lt;= dwNumBytesRead - 1; dwCount++)
{
if (byInputBuffer[dwCount] != byOutputBuffer[dwCount + 3])
// Output data begins at location 3,
// after the opcode and length
{
printf(&amp;quot;Error - Data received does not match data output\n&amp;quot;);
FT_SetBitMode(ftHandle, 0x0, 0x00);
// Reset the port to disable MPSSE
FT_Close(ftHandle); // Close the USB port
return 1; // Exit with error
}
}
printf(&amp;quot;The input data matches the output data\n&amp;quot;);
printf(&amp;quot;Press &amp;lt;Enter&amp;gt; to continue\n&amp;quot;);
getchar(); // wait for a carriage return
// Clear the buffers
for(dwCount = 0; dwCount &amp;lt; 8; dwCount++)
{
byInputBuffer[dwCount] = 0x00;
byOutputBuffer[dwCount] = 0x00;
}
FT_Close(ftHandle);
return 0;
}
&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>FT2232H</title><link>https://community.element14.com/thread/51076?ContentTypeID=0</link><pubDate>Tue, 17 May 2022 05:18:44 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:d76bd251-ecf0-487c-b0c3-3161ca3826f7</guid><dc:creator>snaseermohamed</dc:creator><slash:comments>1</slash:comments><comments>https://community.element14.com/thread/51076?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/51076/ft2232h/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;good morning,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; I am new to ft2232H. I have tried&amp;nbsp; to implement serial communication using MPSSE command in loop back mode. I&amp;nbsp; tried to run code given for serial communication in AN_135&lt;br /&gt;FTDI MPSSE Basics in loop back mode. But it gives&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot; Error - MPSSE receive buffer should have the looped-back data &amp;quot;.&lt;/p&gt;
&lt;p&gt;I tried both the way 1. using command &amp;quot;&amp;nbsp;&lt;span&gt;byOutputBuffer[dwNumBytesToSend++] = 0x84; &amp;quot; to internally connect TDI/DO PIN and TDO/DI .&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2. externally also connected both the pins.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;i want the solution for this. Please correct me if I made any mistakes as soon as possible.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;int main()&lt;br /&gt;{&lt;br /&gt;// -----------------------------------------------------------&lt;br /&gt;// Variables&lt;br /&gt;// -----------------------------------------------------------&lt;br /&gt;FT_HANDLE ftHandle; // Handle of the FTDI device&lt;br /&gt;FT_STATUS ftStatus; // Result of each D2XX call&lt;br /&gt;DWORD dwNumDevs; // The number of devices&lt;br /&gt;unsigned int uiDevIndex = 0xF; // The device in the list that we&amp;#39;ll use&lt;br /&gt;BYTE byOutputBuffer[8]; // Buffer to hold MPSSE commands and data&lt;br /&gt;// to be sent to the FT2232H&lt;br /&gt;BYTE byInputBuffer[8]; // Buffer to hold data read from the FT2232H&lt;br /&gt;DWORD dwCount = 0; // General loop index&lt;br /&gt;DWORD dwNumBytesToSend = 0; // Index to the output buffer&lt;br /&gt;DWORD dwNumBytesSent = 0; // Count of actual bytes sent - used with FT_Write&lt;br /&gt;DWORD dwNumBytesToRead = 0; // Number of bytes available to read&lt;br /&gt;// in the driver&amp;#39;s input buffer&lt;br /&gt;DWORD dwNumBytesRead = 0; // Count of actual bytes read - used with FT_Read&lt;br /&gt;DWORD dwClockDivisor = 0xFFFF; // Value of clock divisor, SCL Frequency =&lt;br /&gt;// 60/((1+0x05DB)*2) (MHz) = 1Mhz&lt;br /&gt;// -----------------------------------------------------------&lt;br /&gt;// Does an FTDI device exist?&lt;br /&gt;// -----------------------------------------------------------&lt;br /&gt;printf(&amp;quot;Checking for FTDI devices...\n&amp;quot;);&lt;br /&gt;ftStatus = FT_CreateDeviceInfoList(&amp;amp;dwNumDevs);&lt;br /&gt;// Get the number of FTDI devices&lt;br /&gt;if (ftStatus != FT_OK) // Did the command execute OK?&lt;br /&gt;{&lt;br /&gt;printf(&amp;quot;Error in getting the number of devices\n&amp;quot;);&lt;br /&gt;return 1; // Exit with error&lt;br /&gt;}&lt;br /&gt;if (dwNumDevs &amp;lt; 1) // Exit if we don&amp;#39;t see any&lt;br /&gt;{&lt;br /&gt;printf(&amp;quot;There are no FTDI devices installed\n&amp;quot;);&lt;br /&gt;return 1; // Exit with error&lt;br /&gt;}&lt;br /&gt;printf(&amp;quot;%lu FTDI devices found \&lt;br /&gt;- the count includes individual ports on a single chip\n&amp;quot;, dwNumDevs);&lt;br /&gt;// -----------------------------------------------------------&lt;br /&gt;// Open the port - For this application note, we&amp;#39;ll assume the first device is a&lt;br /&gt;// FT2232H or FT4232H. Further checks can be made against the device&lt;br /&gt;// descriptions, locations, serial numbers, etc. before opening the port.&lt;br /&gt;// -----------------------------------------------------------&lt;br /&gt;printf(&amp;quot;\nAssume first device has the MPSSE and open it...\n&amp;quot;);&lt;br /&gt;ftStatus = FT_Open(0, &amp;amp;ftHandle);&lt;br /&gt;if (ftStatus != FT_OK)&lt;br /&gt;{&lt;br /&gt;printf(&amp;quot;Open Failed with error %lu\n&amp;quot;, ftStatus);&lt;br /&gt;return 1; // Exit with error&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;// Configure port parameters&lt;br /&gt;printf(&amp;quot;\nConfiguring port for MPSSE use...\n&amp;quot;);&lt;br /&gt;ftStatus |= FT_ResetDevice(ftHandle);&lt;br /&gt;//Reset USB device&lt;br /&gt;//Purge USB receive buffer first by reading out all old data from FT2232H receive buffer&lt;br /&gt;ftStatus |= FT_GetQueueStatus(ftHandle, &amp;amp;dwNumBytesToRead);&lt;br /&gt;// Get the number of bytes in the FT2232H&lt;br /&gt;// receive buffer&lt;br /&gt;if ((ftStatus == FT_OK) &amp;amp;&amp;amp; (dwNumBytesToRead &amp;gt; 0))&lt;br /&gt;FT_Read(ftHandle, &amp;amp;byInputBuffer, dwNumBytesToRead, &amp;amp;dwNumBytesRead);&lt;br /&gt;//Read out the data from FT2232H receive buffer&lt;br /&gt;ftStatus |= FT_SetUSBParameters(ftHandle, 65536, 65535);&lt;br /&gt;//Set USB request transfer sizes to 64K&lt;br /&gt;ftStatus |= FT_SetChars(ftHandle, false, 0, false, 0);&lt;br /&gt;//Disable event and error characters&lt;br /&gt;ftStatus |= FT_SetTimeouts(ftHandle, 0, 5000);&lt;br /&gt;//Sets the read and write timeouts in milliseconds&lt;br /&gt;ftStatus |= FT_SetLatencyTimer(ftHandle, 1);&lt;br /&gt;//Set the latency timer to 1mS (default is 16mS)&lt;br /&gt;ftStatus |= FT_SetFlowControl(ftHandle, FT_FLOW_RTS_CTS, 0x00, 0x00);&lt;br /&gt;//Turn on flow control to synchronize IN requests&lt;br /&gt;ftStatus |= FT_SetBitMode(ftHandle, 0x0, 0x00);&lt;br /&gt;//Reset controller&lt;br /&gt;ftStatus |= FT_SetBitMode(ftHandle, 0x0, 0x02);&lt;br /&gt;//Enable MPSSE mode&lt;br /&gt;if (ftStatus != FT_OK)&lt;br /&gt;{&lt;br /&gt;printf(&amp;quot;Error in initializing the MPSSE %lu\n&amp;quot;, ftStatus);&lt;br /&gt;FT_Close(ftHandle);&lt;br /&gt;return 1; // Exit with error&lt;br /&gt;}&lt;br /&gt;Sleep(50); // Wait for all the USB stuff to complete and work&lt;br /&gt;// Enable internal loop-back&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x84;&lt;br /&gt;// Enable loopback&lt;br /&gt;ftStatus = FT_Write(ftHandle, byOutputBuffer, \&lt;br /&gt;dwNumBytesToSend, &amp;amp;dwNumBytesSent);&lt;br /&gt;// Send off the loopback command&lt;br /&gt;dwNumBytesToSend = 0; // Reset output buffer pointer&lt;br /&gt;// Check the receive buffer - it should be empty&lt;br /&gt;ftStatus = FT_GetQueueStatus(ftHandle, &amp;amp;dwNumBytesToRead);&lt;br /&gt;// the FT2232H receive buffer&lt;br /&gt;if (dwNumBytesToRead != 0)&lt;br /&gt;{&lt;br /&gt;printf(&amp;quot;Error - MPSSE receive buffer should be empty\n&amp;quot;, ftStatus);&lt;br /&gt;FT_SetBitMode(ftHandle, 0x0, 0x00);&lt;br /&gt;// Reset the port to disable MPSSE&lt;br /&gt;FT_Close(ftHandle); // Close the USB port&lt;br /&gt;return 1; // Exit with error&lt;br /&gt;}&lt;br /&gt;// -----------------------------------------------------------&lt;br /&gt;// Synchronize the MPSSE by sending a bogus opcode (0xAB),&lt;br /&gt;// The MPSSE will respond with &amp;quot;Bad Command&amp;quot; (0xFA) followed by&lt;br /&gt;// the bogus opcode itself.&lt;br /&gt;// -----------------------------------------------------------&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0xAB;&lt;br /&gt;//Add bogus command &amp;lsquo;0xAB&amp;rsquo; to the queue&lt;br /&gt;ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &amp;amp;dwNumBytesSent);&lt;br /&gt;// Send off the BAD command&lt;br /&gt;dwNumBytesToSend = 0; // Reset output buffer pointer&lt;br /&gt;do&lt;br /&gt;{&lt;br /&gt;ftStatus = FT_GetQueueStatus(ftHandle, &amp;amp;dwNumBytesToRead);&lt;br /&gt;// Get the number of bytes in the device input buffer&lt;br /&gt;} while ((dwNumBytesToRead == 0) &amp;amp;&amp;amp; (ftStatus == FT_OK));&lt;br /&gt;//or Timeout&lt;br /&gt;bool bCommandEchod = false;&lt;br /&gt;ftStatus = FT_Read(ftHandle, &amp;amp;byInputBuffer, dwNumBytesToRead, &amp;amp;dwNumBytesRead);&lt;br /&gt;//Read out the data from input buffer&lt;br /&gt;for (dwCount = 0; dwCount &amp;lt; dwNumBytesRead - 1; dwCount++)&lt;br /&gt;//Check if Bad command and echo command are received&lt;br /&gt;{&lt;br /&gt;if ((byInputBuffer[dwCount] == 0xFA) &amp;amp;&amp;amp; (byInputBuffer[dwCount+1] == 0xAB))&lt;br /&gt;{&lt;br /&gt;bCommandEchod = true;&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;if (bCommandEchod == false)&lt;br /&gt;{&lt;br /&gt;printf(&amp;quot;Error in synchronizing the MPSSE\n&amp;quot;);&lt;br /&gt;FT_Close(ftHandle);&lt;br /&gt;return 1; // Exit with error&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;dwNumBytesToSend = 0; // Reset output buffer pointer&lt;br /&gt;// Check the receive buffer - it should be empty&lt;br /&gt;ftStatus = FT_GetQueueStatus(ftHandle, &amp;amp;dwNumBytesToRead);&lt;br /&gt;// Get the number of bytes in&lt;br /&gt;// the FT2232H receive buffer&lt;br /&gt;if (dwNumBytesToRead != 0)&lt;br /&gt;{&lt;br /&gt;printf(&amp;quot;Error - MPSSE receive buffer should be empty\n&amp;quot;, ftStatus);&lt;br /&gt;FT_SetBitMode(ftHandle, 0x0, 0x00);&lt;br /&gt;// Reset the port to disable MPSSE&lt;br /&gt;FT_Close(ftHandle); // Close the USB port&lt;br /&gt;return 1; // Exit with error&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;//MPSSE Setup&lt;br /&gt;// -----------------------------------------------------------&lt;br /&gt;// Configure the MPSSE settings for JTAG&lt;br /&gt;// Multple commands can be sent to the MPSSE with one FT_Write&lt;br /&gt;// -----------------------------------------------------------&lt;br /&gt;dwNumBytesToSend = 0; // Start with a fresh index&lt;br /&gt;// Set up the Hi-Speed specific commands for the FTx232H&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x8A;&lt;br /&gt;// Use 60MHz master clock (disable divide by 5)&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x97;&lt;br /&gt;// Turn off adaptive clocking (may be needed for ARM)&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x8D;&lt;br /&gt;// Disable three-phase clocking&lt;br /&gt;ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &amp;amp;dwNumBytesSent);&lt;br /&gt;// Send off the HS-specific commands&lt;br /&gt;dwNumBytesToSend = 0; // Reset output buffer pointer&lt;br /&gt;// Set TCK frequency&lt;br /&gt;// TCK = 60MHz /((1 + [(1 +0xValueH*256) OR 0xValueL])*2)&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = &amp;#39;\x86&amp;#39;;&lt;br /&gt;// Command to set clock divisor&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = dwClockDivisor &amp;amp; 0xFF;&lt;br /&gt;// Set 0xValueL of clock divisor&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = (dwClockDivisor &amp;gt;&amp;gt; 8) &amp;amp; 0xFF;&lt;br /&gt;// Set 0xValueH of clock divisor&lt;br /&gt;ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &amp;amp;dwNumBytesSent);&lt;br /&gt;// Send off the clock divisor commands&lt;br /&gt;dwNumBytesToSend = 0; // Reset output buffer pointer&lt;br /&gt;// Set initial states of the MPSSE interface&lt;br /&gt;// - low byte, both pin directions and output values&lt;br /&gt;// Pin name Signal Direction Config Initial State Config&lt;br /&gt;// ADBUS0 TCK/SK output 1 high 1&lt;br /&gt;// ADBUS1 TDI/DO output 1 low 0&lt;br /&gt;// ADBUS2 TDO/DI input 0 0&lt;br /&gt;// ADBUS3 TMS/CS output 1 high 1&lt;br /&gt;// ADBUS4 GPIOL0 output 1 low 0&lt;br /&gt;// ADBUS5 GPIOL1 output 1 low 0&lt;br /&gt;// ADBUS6 GPIOL2 output 1 high 1&lt;br /&gt;// ADBUS7 GPIOL3 output 1 high 1&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x80;&lt;br /&gt;// Configure data bits low-byte of MPSSE port&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0xC9;&lt;br /&gt;// Initial state config above&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0xFB;&lt;br /&gt;// Direction config above&lt;br /&gt;ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &amp;amp;dwNumBytesSent);&lt;br /&gt;// Send off the low GPIO config commands&lt;br /&gt;dwNumBytesToSend = 0; // Reset output buffer pointer&lt;br /&gt;// Note that since the data in subsequent sections will be clocked on the rising edge, the&lt;br /&gt;// inital clock state of high is selected. Clocks will be generated as high-low-high.&lt;br /&gt;// For example, in this case, data changes on the rising edge to give it enough time&lt;br /&gt;// to have it available at the device, which will accept data *into* the target device&lt;br /&gt;// on the falling edge.&lt;br /&gt;// Set initial states of the MPSSE interface&lt;br /&gt;// - high byte, both pin directions and output values&lt;br /&gt;// Pin name Signal Direction Config Initial State Config&lt;br /&gt;// ACBUS0 GPIOH0 input 0 0&lt;br /&gt;// ACBUS1 GPIOH1 input 0 0&lt;br /&gt;// ACBUS2 GPIOH2 input 0 0&lt;br /&gt;// ACBUS3 GPIOH3 input 0 0&lt;br /&gt;// ACBUS4 GPIOH4 input 0 0&lt;br /&gt;// ACBUS5 GPIOH5 input 0 0&lt;br /&gt;// ACBUS6 GPIOH6 input 0 0&lt;br /&gt;// ACBUS7 GPIOH7 input 0 0&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x82;&lt;br /&gt;// Configure data bits low-byte of MPSSE port&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x00;&lt;br /&gt;// Initial state config above&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x00;&lt;br /&gt;// Direction config above&lt;br /&gt;ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &amp;amp;dwNumBytesSent);&lt;br /&gt;// Send off the high GPIO config commands&lt;br /&gt;dwNumBytesToSend = 0; // Reset output buffer pointer&lt;br /&gt;for(dwCount = 0; dwCount &amp;lt; 8; dwCount++)&lt;br /&gt;{ // Clear out the input and output buffers&lt;br /&gt;byInputBuffer[dwCount] = 0x00;&lt;br /&gt;byOutputBuffer[dwCount] = 0x00;&lt;br /&gt;}&lt;br /&gt;// Data Transmit, no receive&lt;br /&gt;dwNumBytesToSend = 0;&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x84;&lt;br /&gt;// Enable loopback&lt;br /&gt;ftStatus = FT_Write(ftHandle, byOutputBuffer, \&lt;br /&gt;dwNumBytesToSend, &amp;amp;dwNumBytesSent);&lt;br /&gt;//sleep(2);&lt;br /&gt;dwNumBytesToSend = 0;&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x10;&lt;br /&gt;// Output on rising clock, no input&lt;br /&gt;// MSB first, clock a number of bytes out&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x01; // Length L&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x00; // Length H&lt;br /&gt;// Length = 0x0001 + 1&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0xA5;&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x0F;&lt;br /&gt;// Data = 0xA50F&lt;br /&gt;ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &amp;amp;dwNumBytesSent);&lt;br /&gt;// Send off the command&lt;br /&gt;dwNumBytesToSend = 0; // Reset output buffer pointer&lt;br /&gt;Sleep(2); // Wait for data to be transmitted and status&lt;br /&gt;// to be returned by the device driver&lt;br /&gt;// - see latency timer above&lt;br /&gt;// Check the receive buffer - it should be empty&lt;br /&gt;ftStatus = FT_GetQueueStatus(ftHandle, &amp;amp;dwNumBytesToRead);&lt;br /&gt;// Get the number of bytes in&lt;br /&gt;// the FT2232H receive buffer&lt;br /&gt;// It should be zero since there was&lt;br /&gt;// no data clocked *in*&lt;br /&gt;FT_Read(ftHandle, &amp;amp;byInputBuffer, dwNumBytesToRead, &amp;amp;dwNumBytesRead);&lt;br /&gt;if (dwNumBytesToRead != 0)&lt;br /&gt;{&lt;br /&gt;printf(&amp;quot;Error - MPSSE receive buffer should be empty\n&amp;quot;, ftStatus);&lt;br /&gt;FT_SetBitMode(ftHandle, 0x0, 0x00);&lt;br /&gt;// Reset the port to disable MPSSE&lt;br /&gt;FT_Close(ftHandle); // Close the USB port&lt;br /&gt;return 1; // Exit with error&lt;br /&gt;}&lt;br /&gt;printf(&amp;quot;Press &amp;lt;Enter&amp;gt; to continue\n&amp;quot;);&lt;br /&gt;getchar(); // wait for a carriage return&lt;br /&gt;// Now repeat the transmission with the send and receive op-code in place of transmit-only&lt;br /&gt;// Data Transmit, with receive&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x34;&lt;br /&gt;// Output on rising clock, input on falling clock&lt;br /&gt;// MSB first, clock a number of bytes out&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x01; // Length L&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x00; // Length H&lt;br /&gt;// Length = 0x0001 + 1&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0xA5;&lt;br /&gt;byOutputBuffer[dwNumBytesToSend++] = 0x0F;&lt;br /&gt;// Data = 0xA50F&lt;br /&gt;ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &amp;amp;dwNumBytesSent);&lt;br /&gt;// Send off the command&lt;br /&gt;dwNumBytesToSend = 0; // Reset output buffer pointer&lt;br /&gt;Sleep(2); // Wait for data to be transmitted and status&lt;br /&gt;// to be returned by the device driver&lt;br /&gt;// - see latency timer above&lt;br /&gt;// Check the receive buffer - it should contain the looped-back data&lt;br /&gt;ftStatus = FT_GetQueueStatus(ftHandle, &amp;amp;dwNumBytesToRead);&lt;br /&gt;// Get the number of bytes in&lt;br /&gt;// the FT2232H receive buffer&lt;br /&gt;// It should be zero since there was&lt;br /&gt;// no data clocked *in*&lt;br /&gt;FT_Read(ftHandle, &amp;amp;byInputBuffer, dwNumBytesToRead, &amp;amp;dwNumBytesRead);&lt;br /&gt;// The input buffer should contain the same number of bytes as those output&lt;br /&gt;printf(&amp;quot;\n size:%d&amp;quot;,dwNumBytesToRead);&lt;br /&gt;if (dwNumBytesToRead != 2)&lt;br /&gt;{&lt;br /&gt;printf(&amp;quot;Error - MPSSE receive buffer should have the looped-back data\n&amp;quot;);&lt;br /&gt;FT_SetBitMode(ftHandle, 0x0, 0x00);&lt;br /&gt;// Reset the port to disable MPSSE&lt;br /&gt;FT_Close(ftHandle); // Close the USB port&lt;br /&gt;return 1; // Exit with error&lt;br /&gt;}&lt;br /&gt;printf(&amp;quot;The correct number of bytes have been received\n&amp;quot;);&lt;br /&gt;// Check to be sure it&amp;#39;s the same.&lt;br /&gt;for(dwCount = 0; dwCount &amp;lt;= dwNumBytesRead - 1; dwCount++)&lt;br /&gt;{&lt;br /&gt;if (byInputBuffer[dwCount] != byOutputBuffer[dwCount + 3])&lt;br /&gt;// Output data begins at location 3,&lt;br /&gt;// after the opcode and length&lt;br /&gt;{&lt;br /&gt;printf(&amp;quot;Error - Data received does not match data output\n&amp;quot;);&lt;br /&gt;FT_SetBitMode(ftHandle, 0x0, 0x00);&lt;br /&gt;// Reset the port to disable MPSSE&lt;br /&gt;FT_Close(ftHandle); // Close the USB port&lt;br /&gt;return 1; // Exit with error&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;printf(&amp;quot;The input data matches the output data\n&amp;quot;);&lt;br /&gt;printf(&amp;quot;Press &amp;lt;Enter&amp;gt; to continue\n&amp;quot;);&lt;br /&gt;getchar(); // wait for a carriage return&lt;br /&gt;// Clear the buffers&lt;br /&gt;for(dwCount = 0; dwCount &amp;lt; 8; dwCount++)&lt;br /&gt;{&lt;br /&gt;byInputBuffer[dwCount] = 0x00;&lt;br /&gt;byOutputBuffer[dwCount] = 0x00;&lt;br /&gt;}&lt;br /&gt;FT_Close(ftHandle);&lt;br /&gt;return 0;&lt;br /&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>BSP 2019.1 BSP MiniZed</title><link>https://community.element14.com/thread/50911?ContentTypeID=0</link><pubDate>Mon, 11 Apr 2022 21:46:15 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:0f24ab47-6e46-4b69-8046-0363e0cc433b</guid><dc:creator>iaguilar</dc:creator><slash:comments>1</slash:comments><comments>https://community.element14.com/thread/50911?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/50911/bsp-2019-1-bsp-minized/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I am getting a critical warring regarding wireless_mgr.&amp;nbsp; The file is not in the build.&amp;nbsp; Where can I find that file?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>error when running avnet make_minized_sbc_base.sh script</title><link>https://community.element14.com/thread/50894?ContentTypeID=0</link><pubDate>Thu, 07 Apr 2022 23:23:25 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:6aa76584-392a-4c5a-a565-f38a6c4452b3</guid><dc:creator>NealRayYoung</dc:creator><slash:comments>0</slash:comments><comments>https://community.element14.com/thread/50894?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/50894/error-when-running-avnet-make_minized_sbc_base-sh-script/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I&amp;#39;m having trouble getting the minized_sbc_base petalinux project to build.&lt;/p&gt;
&lt;p&gt;Here are the steps I performed:&lt;/p&gt;
&lt;p&gt;I cloned the three repos:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;$ cd ~&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;$ mkdir -p git/avnet&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;$ cd git/avnet&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;$ git clone&amp;nbsp;&lt;/span&gt;&lt;a class="" href="https://github.com/avnet/bdf.git"&gt;https://github.com/avnet/bdf.git&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;$ git clone&amp;nbsp;&lt;a class="" href="https://github.com/avnet/bdf.git"&gt;https://github.com/avnet/hdl.git&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;$ git clone&amp;nbsp;&lt;a class="" href="https://github.com/avnet/bdf.git"&gt;https://github.com/avnet/petalinux.git&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And checked out the branches (bdf is ok at master):&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;$ cd hdl&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;$ git checkout 2021.2&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;$ cd ../petalinux&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;$ git checkout 2021.2&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;$ cd scripts&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;$ ./make_minized_sbc_base.sh&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;It creates and builds the vivado project just fine. Then is copies the .bit and .xsa as expected.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Here is the output of the script:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Importing hardware definition minized_sbc_base.xsa from HDL project folder ...&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Importing hardware bitstream minized_sbc_base_wrapper.bit from HDL project folder...&lt;/p&gt;
&lt;p&gt;[INFO] Sourcing buildtools&lt;br /&gt;INFO: Getting hardware description...&lt;br /&gt;INFO: Renaming minized_sbc_base.xsa to system.xsa&lt;br /&gt;[INFO] Generating Kconfig for project&lt;br /&gt;[INFO] Silentconfig project&lt;br /&gt;[INFO] Extracting yocto SDK to components/yocto. This may take time!&lt;br /&gt;[INFO] Sourcing build environment&lt;br /&gt;[INFO] Generating kconfig for Rootfs&lt;br /&gt;[INFO] Silentconfig rootfs&lt;br /&gt;[INFO] Generating plnxtool conf&lt;br /&gt;[INFO] Adding user layers&lt;br /&gt;[INFO] Generating workspace directory&lt;/p&gt;
&lt;p&gt;Patching PetaLinux project config ...&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Tag 2021p2_minized_sbc_20210426_105325 not found. Cloning 2021.2 branch instead.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;***WARNING: This may result in build mismatch!***&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Stop (&amp;lt;ctrl&amp;gt;-c) in the next 5 seconds if this is not OK.&lt;/p&gt;
&lt;p&gt;Pause here for 5 seconds&lt;br /&gt;Clone meta-avnet layer and checkout 2021.2 branch&lt;/p&gt;
&lt;p&gt;Cloning into &amp;#39;project-spec/meta-avnet&amp;#39;...&lt;br /&gt;remote: Enumerating objects: 2704, done.&lt;br /&gt;remote: Counting objects: 100% (1266/1266), done.&lt;br /&gt;remote: Compressing objects: 100% (685/685), done.&lt;br /&gt;remote: Total 2704 (delta 721), reused 947 (delta 504), pack-reused 1438&lt;br /&gt;Receiving objects: 100% (2704/2704), 7.76 MiB | 5.85 MiB/s, done.&lt;br /&gt;Resolving deltas: 100% (1326/1326), done.&lt;/p&gt;
&lt;p&gt;Setting cache (sstate and download) path (/home/dev/test/petalinux/projects/cache) ...&lt;/p&gt;
&lt;p&gt;[INFO] Sourcing buildtools&lt;br /&gt;[INFO] Silentconfig project&lt;br /&gt;[INFO] Sourcing build environment&lt;br /&gt;[INFO] Generating kconfig for Rootfs&lt;br /&gt;[INFO] Silentconfig rootfs&lt;br /&gt;[INFO] Generating plnxtool conf&lt;br /&gt;[INFO] Adding user layers&lt;br /&gt;[INFO] Generating workspace directory&lt;br /&gt;[INFO] Successfully configured project&lt;/p&gt;
&lt;p&gt;Modifying project config for INITRD boot support...&lt;/p&gt;
&lt;p&gt;[INFO] Sourcing buildtools&lt;br /&gt;[INFO] Silentconfig project&lt;br /&gt;[INFO] Sourcing build environment&lt;br /&gt;[INFO] Generating kconfig for Rootfs&lt;br /&gt;[INFO] Silentconfig rootfs&lt;br /&gt;[INFO] Generating plnxtool conf&lt;br /&gt;[INFO] Generating workspace directory&lt;br /&gt;[INFO] Successfully configured project&lt;/p&gt;
&lt;p&gt;Building project...&lt;/p&gt;
&lt;p&gt;[INFO] Sourcing buildtools&lt;br /&gt;[INFO] Building avnet-image-full&lt;br /&gt;[INFO] Sourcing build environment&lt;br /&gt;[INFO] Generating workspace directory&lt;br /&gt;INFO: bitbake avnet-image-full&lt;br /&gt;NOTE: Started PRServer with DBfile: /home/dev/test/petalinux/projects/minized_sbc_base_2021_2/build/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 39873, PID: 2629570&lt;br /&gt;Loading cache: 100% | | ETA: --:--:--&lt;br /&gt;Loaded 0 entries from dependency cache.&lt;br /&gt;Parsing recipes: 100% |##########################################################################| Time: 0:03:32&lt;br /&gt;Parsing of 3513 .bb files complete (0 cached, 3513 parsed). 5170 targets, 278 skipped, 0 masked, 0 errors.&lt;br /&gt;NOTE: Resolving any missing task queue dependencies&lt;br /&gt;NOTE: Fetching uninative binary shim file:///home/dev/test/petalinux/projects/minized_sbc_base_2021_2/components/yocto/downloads/uninative/5ec5a9276046e7eceeac749a18b175667384e1f445cd4526300a41404d985a5b/x86_64-nativesdk-libc.tar.xz;sha256sum=5ec5a9276046e7eceeac749a18b175667384e1f445cd4526300a41404d985a5b (will check PREMIRRORS first)&lt;br /&gt;Initialising tasks: 100% |######################################################################################################| Time: 0:00:09&lt;br /&gt;Checking sstate mirror object availability: 100% |###############################################################################################################################| Time: 0:00:47&lt;br /&gt;Sstate summary: Wanted 2138 Found 1662 Missed 476 Current 0 (77% match, 0% complete)&lt;br /&gt;NOTE: Executing Tasks&lt;br /&gt;NOTE: Tasks Summary: Attempted 6336 tasks of which 2845 didn&amp;#39;t need to be rerun and all succeeded.&lt;br /&gt;INFO: Failed to copy built images to tftp dir: /tftpboot&lt;br /&gt;[INFO] Successfully built avnet-image-full&lt;br /&gt;[INFO] Sourcing buildtools&lt;br /&gt;INFO: Getting system flash information...&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/images/linux/zynq_fsbl.elf&amp;quot;&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/project-spec/hw-description/minized_sbc_base.bit&amp;quot;&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/images/linux/u-boot.elf&amp;quot;&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/images/linux/system.dtb&amp;quot;&lt;br /&gt;INFO: Generating zynq binary package BOOT.BIN...&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;****** Xilinx Bootgen v2021.2&lt;br /&gt; **** Build date : Sep 30 2021-06:08:18&lt;br /&gt; ** Copyright 1986-2021 Xilinx, Inc. All Rights Reserved.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;[INFO] : Bootimage generated successfully&lt;/p&gt;
&lt;p&gt;INFO: Binary is ready.&lt;br /&gt;WARNING: Unable to access the TFTPBOOT folder /tftpboot!!!&lt;br /&gt;WARNING: Skip file copy to TFTPBOOT folder!!!&lt;br /&gt;[INFO] Sourcing buildtools&lt;br /&gt;INFO: Getting system flash information...&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/images/linux/zynq_fsbl.elf&amp;quot;&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/images/linux/system.bit&amp;quot;&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/images/linux/u-boot.elf&amp;quot;&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/images/linux/system.dtb&amp;quot;&lt;br /&gt;INFO: Generating zynq binary package BOOT.BIN...&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;****** Xilinx Bootgen v2021.2&lt;br /&gt; **** Build date : Sep 30 2021-06:08:18&lt;br /&gt; ** Copyright 1986-2021 Xilinx, Inc. All Rights Reserved.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;[INFO] : Bootimage generated successfully&lt;/p&gt;
&lt;p&gt;INFO: Binary is ready.&lt;br /&gt;WARNING: Unable to access the TFTPBOOT folder /tftpboot!!!&lt;br /&gt;WARNING: Skip file copy to TFTPBOOT folder!!!&lt;/p&gt;
&lt;p&gt;Modifying project config for INITRD boot support...&lt;/p&gt;
&lt;p&gt;[INFO] Sourcing buildtools&lt;br /&gt;[INFO] Silentconfig project&lt;br /&gt;[INFO] Sourcing build environment&lt;br /&gt;[INFO] Generating kconfig for Rootfs&lt;br /&gt;[INFO] Silentconfig rootfs&lt;br /&gt;[INFO] Generating plnxtool conf&lt;br /&gt;[INFO] Generating workspace directory&lt;br /&gt;[INFO] Successfully configured project&lt;/p&gt;
&lt;p&gt;Building project...&lt;/p&gt;
&lt;p&gt;[INFO] Sourcing buildtools&lt;br /&gt;[INFO] Building avnet-image-full&lt;br /&gt;[INFO] Sourcing build environment&lt;br /&gt;[INFO] Generating workspace directory&lt;br /&gt;INFO: bitbake avnet-image-full&lt;br /&gt;NOTE: Started PRServer with DBfile: /home/dev/test/petalinux/projects/minized_sbc_base_2021_2/build/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 34731, PID: 144671&lt;br /&gt;Loading cache: 100% | | ETA: --:--:--&lt;br /&gt;Loaded 0 entries from dependency cache.&lt;br /&gt;Parsing recipes: 100% |##########################################################################################################################################################| Time: 0:01:56&lt;br /&gt;Parsing of 3513 .bb files complete (0 cached, 3513 parsed). 5170 targets, 278 skipped, 0 masked, 0 errors.&lt;br /&gt;NOTE: Resolving any missing task queue dependencies&lt;br /&gt;Initialising tasks: 100% |#######################################################################################################################################################| Time: 0:00:18&lt;br /&gt;Sstate summary: Wanted 298 Found 251 Missed 47 Current 1825 (84% match, 97% complete)&lt;br /&gt;NOTE: Executing Tasks&lt;br /&gt;NOTE: Tasks Summary: Attempted 6293 tasks of which 5596 didn&amp;#39;t need to be rerun and all succeeded.&lt;br /&gt;INFO: Failed to copy built images to tftp dir: /tftpboot&lt;br /&gt;[INFO] Successfully built avnet-image-full&lt;br /&gt;[INFO] Sourcing buildtools&lt;br /&gt;INFO: Getting system flash information...&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/images/linux/zynq_fsbl.elf&amp;quot;&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/project-spec/hw-description/minized_sbc_base.bit&amp;quot;&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/images/linux/u-boot.elf&amp;quot;&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/images/linux/system.dtb&amp;quot;&lt;br /&gt;INFO: Generating zynq binary package BOOT.BIN...&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;****** Xilinx Bootgen v2021.2&lt;br /&gt; **** Build date : Sep 30 2021-06:08:18&lt;br /&gt; ** Copyright 1986-2021 Xilinx, Inc. All Rights Reserved.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;[INFO] : Bootimage generated successfully&lt;/p&gt;
&lt;p&gt;INFO: Binary is ready.&lt;br /&gt;WARNING: Unable to access the TFTPBOOT folder /tftpboot!!!&lt;br /&gt;WARNING: Skip file copy to TFTPBOOT folder!!!&lt;br /&gt;[INFO] Sourcing buildtools&lt;br /&gt;INFO: Getting system flash information...&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/images/linux/zynq_fsbl.elf&amp;quot;&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/images/linux/system.bit&amp;quot;&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/images/linux/u-boot.elf&amp;quot;&lt;br /&gt;INFO: File in BOOT BIN: &amp;quot;/home/dev/test/petalinux/projects/minized_sbc_base_2021_2/images/linux/system.dtb&amp;quot;&lt;br /&gt;INFO: Generating zynq binary package BOOT.BIN...&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;****** Xilinx Bootgen v2021.2&lt;br /&gt; **** Build date : Sep 30 2021-06:08:18&lt;br /&gt; ** Copyright 1986-2021 Xilinx, Inc. All Rights Reserved.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;[INFO] : Bootimage generated successfully&lt;/p&gt;
&lt;p&gt;INFO: Binary is ready.&lt;br /&gt;WARNING: Unable to access the TFTPBOOT folder /tftpboot!!!&lt;br /&gt;WARNING: Skip file copy to TFTPBOOT folder!!!&lt;/p&gt;
&lt;p&gt;Modifying project config for EXT4 boot support...&lt;/p&gt;
&lt;p&gt;[INFO] Sourcing buildtools&lt;br /&gt;[INFO] Silentconfig project&lt;br /&gt;[INFO] Sourcing build environment&lt;br /&gt;[INFO] Generating kconfig for Rootfs&lt;br /&gt;[INFO] Silentconfig rootfs&lt;br /&gt;[INFO] Generating plnxtool conf&lt;br /&gt;[INFO] Generating workspace directory&lt;br /&gt;[INFO] Successfully configured project&lt;/p&gt;
&lt;p&gt;Building project...&lt;/p&gt;
&lt;p&gt;[INFO] Sourcing buildtools&lt;br /&gt;[INFO] Building avnet-image-full&lt;br /&gt;[INFO] Sourcing build environment&lt;br /&gt;[INFO] Generating workspace directory&lt;br /&gt;INFO: bitbake avnet-image-full&lt;br /&gt;NOTE: Started PRServer with DBfile: /home/dev/test/petalinux/projects/minized_sbc_base_2021_2/build/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 34333, PID: 215614&lt;br /&gt;Loading cache: 100% | | ETA: --:--:--&lt;br /&gt;Loaded 0 entries from dependency cache.&lt;br /&gt;Parsing recipes: 100% |##########################################################################################################################################################| Time: 0:01:54&lt;br /&gt;Parsing of 3513 .bb files complete (0 cached, 3513 parsed). 5170 targets, 278 skipped, 0 masked, 0 errors.&lt;br /&gt;NOTE: Resolving any missing task queue dependencies&lt;br /&gt;ERROR: Nothing PROVIDES &amp;#39;u-boot&amp;#39; (but /home/dev/test/petalinux/projects/minized_sbc_base_2021_2/components/yocto/layers/meta-xilinx/meta-xilinx-bsp/recipes-bsp/bootbin/xilinx-bootbin_1.0.bb DEPENDS on or otherwise requires it)&lt;br /&gt;u-boot was skipped: PREFERRED_PROVIDER_virtual/bootloader set to u-boot-xlnx, not u-boot&lt;br /&gt;ERROR: Required build target &amp;#39;avnet-image-full&amp;#39; has no buildable providers.&lt;br /&gt;Missing or unbuildable dependency chain was: ['avnet-image-full', 'virtual/boot-bin', 'u-boot']&lt;/p&gt;
&lt;p&gt;Summary: There were 2 ERROR messages shown, returning a non-zero exit code.&lt;br /&gt;ERROR: Failed to build avnet-image-full. Check the /home/dev/test/petalinux/projects/minized_sbc_base_2021_2/build/build.log file for more details...&lt;br /&gt;[INFO] Sourcing buildtools&lt;br /&gt;[INFO] Building avnet-image-full&lt;br /&gt;[INFO] Sourcing build environment&lt;br /&gt;[INFO] Generating workspace directory&lt;br /&gt;INFO: bitbake avnet-image-full&lt;br /&gt;NOTE: Started PRServer with DBfile: /home/dev/test/petalinux/projects/minized_sbc_base_2021_2/build/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 34819, PID: 216273&lt;br /&gt;Loading cache: 100% |############################################################################################################################################################| Time: 0:00:01&lt;br /&gt;Loaded 5165 entries from dependency cache.&lt;br /&gt;Parsing recipes: 100% |##########################################################################################################################################################| Time: 0:00:01&lt;br /&gt;Parsing of 3513 .bb files complete (3508 cached, 5 parsed). 5170 targets, 278 skipped, 0 masked, 0 errors.&lt;br /&gt;NOTE: Resolving any missing task queue dependencies&lt;br /&gt;ERROR: Nothing PROVIDES &amp;#39;u-boot&amp;#39; (but /home/dev/test/petalinux/projects/minized_sbc_base_2021_2/components/yocto/layers/meta-xilinx/meta-xilinx-bsp/recipes-bsp/bootbin/xilinx-bootbin_1.0.bb DEPENDS on or otherwise requires it)&lt;br /&gt;u-boot was skipped: PREFERRED_PROVIDER_virtual/bootloader set to u-boot-xlnx, not u-boot&lt;br /&gt;ERROR: Required build target &amp;#39;avnet-image-full&amp;#39; has no buildable providers.&lt;br /&gt;Missing or unbuildable dependency chain was: ['avnet-image-full', 'virtual/boot-bin', 'u-boot']&lt;/p&gt;
&lt;p&gt;Summary: There were 2 ERROR messages shown, returning a non-zero exit code.&lt;br /&gt;ERROR: Failed to build avnet-image-full. Check the /home/dev/test/petalinux/projects/minized_sbc_base_2021_2/build/build.log file for more details...&lt;/p&gt;
&lt;p&gt;________________________________________&lt;/p&gt;
&lt;p&gt;Since I&amp;#39;m using the stuff directly from the avnet git repo I&amp;#39;m not sure why I&amp;#39;m getting errors and could use a little help in figuring out why I have a &amp;quot;&lt;span&gt;Missing or unbuildable dependency chain was: ['avnet-image-full', 'virtual/boot-bin', 'u-boot']&amp;quot;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Any help would be appreciated.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>how can i use and see module on rootfs menuconfig of meta-avnet layer??</title><link>https://community.element14.com/thread/50839?ContentTypeID=0</link><pubDate>Fri, 25 Mar 2022 09:57:24 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:c038ecd1-e630-4314-963a-cd15e683c081</guid><dc:creator>ldw</dc:creator><slash:comments>0</slash:comments><comments>https://community.element14.com/thread/50839?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/50839/how-can-i-use-and-see-module-on-rootfs-menuconfig-of-meta-avnet-layer/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello!&lt;/p&gt;
&lt;p&gt;i use minized zynq board by minized_sbc_base_2020_2.bsp .. so i build &amp;#39;petaliux-build -c avnet-image-minimal&amp;#39; .&lt;/p&gt;
&lt;p&gt;i hope to use led-brightness module at &amp;#39;project-spec/meta-avnet/recipes-modules/led-brightness that was already supported on bsp.&lt;/p&gt;
&lt;p&gt;but, i command by petalinux-config -c rootfs&amp;nbsp; and enter menu config &amp;#39;modules -&amp;gt; no modules&amp;#39;&lt;/p&gt;
&lt;p&gt;So, is there some command to use not &amp;#39;meta-user&amp;#39; layer but &amp;#39;meta-avnet&amp;#39; layer???&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;when i command&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;petalinux-create -t modules --name test-driver --enable, this module generated&amp;nbsp; at meta-user .. not meta-avnet.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;please, let me know .. how can i use meta-avnet layer? why i can&amp;#39;t see any ready-maded modules..?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;thank you.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How can i use 'meta-avnet' modules on minized_2020.2_bsp ?</title><link>https://community.element14.com/thread/50838?ContentTypeID=0</link><pubDate>Fri, 25 Mar 2022 01:42:23 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:b7583ee8-1342-4dd2-938a-4cf345962146</guid><dc:creator>ldw</dc:creator><slash:comments>0</slash:comments><comments>https://community.element14.com/thread/50838?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/50838/how-can-i-use-meta-avnet-modules-on-minized_2020-2_bsp/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello&lt;/p&gt;
&lt;p&gt;i use minized zynq board by minized_sbc_base_2020_2.bsp .. so i build &amp;#39;petaliux-build -c avnet-image-full&amp;#39; .&lt;/p&gt;
&lt;p&gt;i hope to use led-brightness module at &amp;#39;project-spec/meta-avnet/recipes-modules/led-brightness that was already supported ...&lt;/p&gt;
&lt;p&gt;but, i command by petalinux-config -c rootfs&amp;nbsp; and enter modules menu -&amp;gt; no modules&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So, is there some command to use not &amp;#39;meta-user&amp;#39; layer but &amp;#39;meta-avnet&amp;#39; layer???&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;when i command &lt;span&gt;&amp;nbsp;petalinux-create -t modules --name test-driver --enable, this module generated&amp;nbsp; at meta-user .. not meta-avnet.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;please, let me know .. how can i use meta-avnet layer that was supported and made already by&amp;nbsp;minized_sbc_base_2020_2.bsp.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>MiniZed Sainsmart relay connection</title><link>https://community.element14.com/thread/50787?ContentTypeID=0</link><pubDate>Fri, 11 Mar 2022 12:55:33 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:5002842f-9da4-4446-9fe1-b6e9d75ac332</guid><dc:creator>tanderson</dc:creator><slash:comments>4</slash:comments><comments>https://community.element14.com/thread/50787?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/50787/minized-sainsmart-relay-connection/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I am driving a Sainsmart 4 Relay Module from MiniZed.&lt;/p&gt;
&lt;p&gt;Because it needs 5 volts, I connected JD-VCC to 5v on Arduino Shield of MiniZed.&lt;/p&gt;
&lt;p&gt;VCC is connected to 3.3v VCC of MiniZed.&lt;/p&gt;
&lt;p&gt;Ground is connected to ground.&lt;/p&gt;
&lt;p&gt;IN4 of Sainsmart is connected to an output of MiniZed.&lt;/p&gt;
&lt;p&gt;The relay allows a connected module to have its VCC connected/disconnected on K4 of Sainsmart.&lt;/p&gt;
&lt;p&gt;All seems to be working well, but I am wondering if 5v of relay could draw too much power. I did not see any specs for 5v on the MiniZed HW users guide.&lt;/p&gt;
&lt;p&gt;An alternative would be using an external 5v power supply (breadboard power supply), but so far, the setup appears to work.&lt;/p&gt;
&lt;p&gt;I plan on doing some testing of the setup, and I would not want to jeopardize my MiniZed.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Todd Anderson&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Error at exporting Minized BSP 2020.2 hardware xpr</title><link>https://community.element14.com/thread/50772?ContentTypeID=0</link><pubDate>Tue, 08 Mar 2022 07:35:43 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:0988bac9-52d8-4ece-8607-cfa1f67bef44</guid><dc:creator>Sungwoo</dc:creator><slash:comments>2</slash:comments><comments>https://community.element14.com/thread/50772?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/50772/error-at-exporting-minized-bsp-2020-2-hardware-xpr/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;When exporting 2020.2 xpr at Vivado, following error comes up.&lt;/p&gt;
&lt;p&gt;ERROR: [Common 17-53] User Exception: Specified ip cache dir /home/training/Projects/bsp_build_tests/test_tag/minized_sbc_base/hdl/projects/minized_sbc_base_2020_2/minized_sbc_base.cache/ip does not exist. Unable to copy into Shell.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;To replicate, here is steps based on Ubuntu 20.04&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;~/Downloads$ tar -xf minized_sbc_base_2020_2.tar.gz&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ source ~/petalinux/settings.sh&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;$ petalinux-create -t project -s ~/Downloads/minized_sbc_base_2020_2.bsp&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;At Vivado 2020.2, open project at /hardware/minized_sbc_base_2020_2/minized_sbc_base.xpr&lt;br /&gt;&lt;br /&gt;Then File/Export/Export Platform, select Next, select Hardware, select include bitstream, select Next, Next, Finish. &lt;br /&gt;Then above error pops up.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I want to modify the design and export to xsa but the error is blocking. Any advice ?&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Macros missing from xparameters.h when using AXI Timer</title><link>https://community.element14.com/thread/50564?ContentTypeID=0</link><pubDate>Wed, 19 Jan 2022 20:11:25 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:ae718244-d80b-44c6-a75b-1493c669d416</guid><dc:creator>LTxAlves</dc:creator><slash:comments>1</slash:comments><comments>https://community.element14.com/thread/50564?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/50564/macros-missing-from-xparameters-h-when-using-axi-timer/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I needed to use to PWM from the AXI Timer IP. I designed a simple block diagram, exported the hardware to work on it on SDK. Looking at the example given for the PWM using the Timer IP, SDK pointed out some errors with the code. I fixed some by&amp;nbsp;modifying&amp;nbsp;the BSP settings and changing them back. However, I noticed some MACRO definitions were missing in the xparameters.h file, which in turn SDK points out as errors and I have no idea if I can just copy those from another xparameters.h file or what to change in my code/bock design so those definitions appear on my current file.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The block design:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://imgur.com/a/9qGeMHu"&gt;https://imgur.com/a/9qGeMHu&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The code:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/******************************************************************************
*
* Copyright (C) 2018 Xilinx, Inc.  All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* XILINX  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Except as contained in this notice, the name of the Xilinx shall not be used
* in advertising or otherwise to promote the sale, use or other dealings in
* this Software without prior written authorization from Xilinx.
*
******************************************************************************/
/*****************************************************************************/
/**
* @file  xtmrctr_pwm_example.c
*
* This file contains a design example using the timer counter driver
* and hardware device using interrupt mode. The example demonstrates
* the use of PWM feature of axi timers. PWM is configured to operate at specific
* duty cycle and after every N cycles the duty cycle is incremented until a
* specific duty cycle is achieved. No software validation of duty cycle is
* undergone in the example.
*
* This example assumes that the interrupt controller is also present as a part
* of the system.
*
*
*
*
* &amp;lt;pre&amp;gt;
* MODIFICATION HISTORY:
*
* Ver   Who  Date	 Changes
* ----- ---- -------- -----------------------------------------------
* 1.00b cjp  03/28/18 First release
*&amp;lt;/pre&amp;gt;
******************************************************************************/

/***************************** Include Files *********************************/
#include &amp;quot;xtmrctr.h&amp;quot;
#include &amp;quot;xparameters.h&amp;quot;
#include &amp;quot;xil_exception.h&amp;quot;

#ifdef XPAR_INTC_0_DEVICE_ID
#include &amp;quot;xintc.h&amp;quot;
#include &amp;lt;stdio.h&amp;gt;
#else
#include &amp;quot;xscugic.h&amp;quot;
#include &amp;quot;xil_printf.h&amp;quot;
#endif

/************************** Constant Definitions *****************************/
/*
 * The following constants map to the XPAR parameters created in the
 * xparameters.h file. They are only defined here such that a user can easily
 * change all the needed parameters in one place.
 */
#define TMRCTR_DEVICE_ID        XPAR_TMRCTR_0_DEVICE_ID

#ifdef __MICROBLAZE__
#define TMRCTR_INTERRUPT_ID     XPAR_INTC_0_TMRCTR_0_VEC_ID
#else
#define TMRCTR_INTERRUPT_ID     XPAR_FABRIC_TMRCTR_0_VEC_ID
#endif

#ifdef XPAR_INTC_0_DEVICE_ID
#define INTC_DEVICE_ID          XPAR_INTC_0_DEVICE_ID
#define INTC                    XIntc
#define INTC_HANDLER            XIntc_InterruptHandler
#else
#define INTC_DEVICE_ID          XPAR_SCUGIC_SINGLE_DEVICE_ID
#define INTC                    XScuGic
#define INTC_HANDLER            XScuGic_InterruptHandler
#endif /* XPAR_INTC_0_DEVICE_ID */

#define PWM_PERIOD              500000000    /* PWM period in (500 ms) */
#define TMRCTR_0                0            /* Timer 0 ID */
#define TMRCTR_1                1            /* Timer 1 ID */
#define CYCLE_PER_DUTYCYCLE     10           /* Clock cycles per duty cycle */
#define MAX_DUTYCYCLE           100          /* Max duty cycle */
#define DUTYCYCLE_DIVISOR       4            /* Duty cycle Divisor */
#define WAIT_COUNT              PWM_PERIOD   /* Interrupt wait counter */

/**************************** Type Definitions *******************************/

/***************** Macros (Inline Functions) Definitions *********************/

/************************** Function Prototypes ******************************/
int TmrCtrPwmExample(INTC *IntcInstancePtr, XTmrCtr *InstancePtr, u16 DeviceId,
								u16 IntrId);
static void TimerCounterHandler(void *CallBackRef, u8 TmrCtrNumber);
static int TmrCtrSetupIntrSystem(INTC *IntcInstancePtr, XTmrCtr *InstancePtr,
						u16 DeviceId, u16 IntrId);
static void TmrCtrDisableIntr(INTC *IntcInstancePtr, u16 IntrId);

/************************** Variable Definitions *****************************/
INTC InterruptController;  /* The instance of the Interrupt Controller */
XTmrCtr TimerCounterInst;  /* The instance of the Timer Counter */

/*
 * The following variables are shared between non-interrupt processing and
 * interrupt processing such that they must be global.
 */
static int   PeriodTimerHit = FALSE;
static int   HighTimerHit = FALSE;

/*****************************************************************************/
/**
* This function is the main function of the Tmrctr PWM example.
*
* @param	None.
*
* @return	XST_SUCCESS to indicate success, else XST_FAILURE to indicate a
*		Failure.
*
* @note		None.
*
******************************************************************************/
int main(void)
{
	int Status;

	/* Run the Timer Counter PWM example */
	Status = TmrCtrPwmExample(&amp;amp;InterruptController, &amp;amp;TimerCounterInst,
				  TMRCTR_DEVICE_ID, TMRCTR_INTERRUPT_ID);
	if (Status != XST_SUCCESS) {
		xil_printf(&amp;quot;Tmrctr PWM Example Failed\r\n&amp;quot;);
		return XST_FAILURE;
	}

	xil_printf(&amp;quot;Successfully ran Tmrctr PWM Example\r\n&amp;quot;);
	return XST_SUCCESS;
}

/*****************************************************************************/
/**
* This function demonstrates the use of tmrctr PWM APIs.
*
* @param	IntcInstancePtr is a pointer to the Interrupt Controller
*		driver Instance
* @param	TmrCtrInstancePtr is a pointer to the XTmrCtr driver Instance
* @param	DeviceId is the XPAR_&amp;lt;TmrCtr_instance&amp;gt;_DEVICE_ID value from
*		xparameters.h
* @param	IntrId is XPAR_&amp;lt;INTC_instance&amp;gt;_&amp;lt;TmrCtr_instance&amp;gt;_INTERRUPT_INTR
*		value from xparameters.h
*
* @return	XST_SUCCESS if the Test is successful, otherwise XST_FAILURE
*
* @note		none.
*
*****************************************************************************/
int TmrCtrPwmExample(INTC *IntcInstancePtr, XTmrCtr *TmrCtrInstancePtr,
						u16 DeviceId, u16 IntrId)
{
	u8  DutyCycle;
	u8  NoOfCycles;
	u8  Div;
	u32 Period;
	u32 HighTime;
	u64 WaitCount;
	int Status;

	/*
	 * Initialize the timer counter so that it&amp;#39;s ready to use,
	 * specify the device ID that is generated in xparameters.h
	 */
	Status = XTmrCtr_Initialize(TmrCtrInstancePtr, DeviceId);
	if (Status != XST_SUCCESS) {
		return XST_FAILURE;
	}

	/*
	 * Perform a self-test to ensure that the hardware was built
	 * correctly. Timer0 is used for self test
	 */
	Status = XTmrCtr_SelfTest(TmrCtrInstancePtr, TMRCTR_0);
	if (Status != XST_SUCCESS) {
		return XST_FAILURE;
	}

	/*
	 * Connect the timer counter to the interrupt subsystem such that
	 * interrupts can occur
	 */
	Status = TmrCtrSetupIntrSystem(IntcInstancePtr, TmrCtrInstancePtr,
							DeviceId, IntrId);
	if (Status != XST_SUCCESS) {
		return XST_FAILURE;
	}

	/*
	 * Setup the handler for the timer counter that will be called from the
	 * interrupt context when the timer expires
	 */
	XTmrCtr_SetHandler(TmrCtrInstancePtr, TimerCounterHandler,
							TmrCtrInstancePtr);

	/* Enable the interrupt of the timer counter */
	XTmrCtr_SetOptions(TmrCtrInstancePtr, TMRCTR_0, XTC_INT_MODE_OPTION);
	XTmrCtr_SetOptions(TmrCtrInstancePtr, TMRCTR_1, XTC_INT_MODE_OPTION);

	/*
	 * We start with the fixed divisor and after every CYCLE_PER_DUTYCYCLE
	 * decrement the divisor by 1, as a result Duty cycle increases
	 * proportionally. This is done until duty cycle is reached upto
	 * MAX_DUTYCYCLE
	 */
	Div = DUTYCYCLE_DIVISOR;

	/* Configure PWM */
	do {
		/* Fail check for 0 divisor */
		if (!Div) {
			Status = XST_FAILURE;
			goto err;
		}

		/* Disable PWM for reconfiguration */
		XTmrCtr_PwmDisable(TmrCtrInstancePtr);

		/* Configure PWM */
		Period = PWM_PERIOD;
		HighTime = PWM_PERIOD / Div--;
		DutyCycle = XTmrCtr_PwmConfigure(TmrCtrInstancePtr, Period,
								HighTime);
		if (Status != XST_SUCCESS) {
			Status = XST_FAILURE;
			goto err;
		}

		xil_printf(&amp;quot;PWM Configured for Duty Cycle = %d\r\n&amp;quot;, DutyCycle);

		/* Enable PWM */
		XTmrCtr_PwmEnable(TmrCtrInstancePtr);

		NoOfCycles = 0;
		WaitCount = WAIT_COUNT;
		while (NoOfCycles &amp;lt; CYCLE_PER_DUTYCYCLE) {
			if (PeriodTimerHit == TRUE &amp;amp;&amp;amp; HighTimerHit == TRUE) {
				PeriodTimerHit = FALSE;
				HighTimerHit = FALSE;
				WaitCount = WAIT_COUNT;
				NoOfCycles++;
			}

			/* Interrupt did not occur as expected */
			if (!(--WaitCount)) {
				return XST_FAILURE;
			}
		}
	} while (DutyCycle &amp;lt; MAX_DUTYCYCLE);

	Status = XST_SUCCESS;
err:
	/* Disable PWM */
	XTmrCtr_PwmDisable(TmrCtrInstancePtr);

	/* Disable interrupts */
	TmrCtrDisableIntr(IntcInstancePtr, DeviceId);

	return Status;
}

/*****************************************************************************/
/**
* This function is the handler which performs processing for the timer counter.
* It is called from an interrupt context.
*
* @param	CallBackRef is a pointer to the callback function
* @param	TmrCtrNumber is the number of the timer to which this
*		handler is associated with.
*
* @return	None.
*
* @note		None.
*
******************************************************************************/
static void TimerCounterHandler(void *CallBackRef, u8 TmrCtrNumber)
{
	/* Mark if period timer expired */
	if (TmrCtrNumber == TMRCTR_0) {
		PeriodTimerHit = TRUE;
	}

	/* Mark if high time timer expired */
	if (TmrCtrNumber == TMRCTR_1) {
		HighTimerHit = TRUE;
	}
}

/*****************************************************************************/
/**
* This function setups the interrupt system such that interrupts can occur
* for the timer counter. This function is application specific since the actual
* system may or may not have an interrupt controller.  The timer counter could
* be directly connected to a processor without an interrupt controller.  The
* user should modify this function to fit the application.
*
* @param	IntcInstancePtr is a pointer to the Interrupt Controller
*		driver Instance.
* @param	TmrCtrInstancePtr is a pointer to the XTmrCtr driver Instance.
* @param	DeviceId is the XPAR_&amp;lt;TmrCtr_instance&amp;gt;_DEVICE_ID value from
*		xparameters.h.
* @param	IntrId is XPAR_&amp;lt;INTC_instance&amp;gt;_&amp;lt;TmrCtr_instance&amp;gt;_VEC_ID
*		value from xparameters.h.
*
* @return	XST_SUCCESS if the Test is successful, otherwise XST_FAILURE.
*
* @note		none.
*
******************************************************************************/
static int TmrCtrSetupIntrSystem(INTC *IntcInstancePtr,
			XTmrCtr *TmrCtrInstancePtr, u16 DeviceId, u16 IntrId)
{
	 int Status;

#ifdef XPAR_INTC_0_DEVICE_ID
	/*
	 * Initialize the interrupt controller driver so that
	 * it&amp;#39;s ready to use, specify the device ID that is generated in
	 * xparameters.h
	 */
	Status = XIntc_Initialize(IntcInstancePtr, INTC_DEVICE_ID);
	if (Status != XST_SUCCESS) {
		return XST_FAILURE;
	}

	/*
	 * Connect a device driver handler that will be called when an interrupt
	 * for the device occurs, the device driver handler performs the
	 * specific interrupt processing for the device
	 */
	Status = XIntc_Connect(IntcInstancePtr, IntrId,
				(XInterruptHandler)XTmrCtr_InterruptHandler,
				(void *)TmrCtrInstancePtr);
	if (Status != XST_SUCCESS) {
		return XST_FAILURE;
	}

	/*
	 * Start the interrupt controller such that interrupts are enabled for
	 * all devices that cause interrupts, specific real mode so that
	 * the timer counter can cause interrupts through the interrupt
	 * controller
	 */
	Status = XIntc_Start(IntcInstancePtr, XIN_REAL_MODE);
	if (Status != XST_SUCCESS) {
		return XST_FAILURE;
	}

	/* Enable the interrupt for the timer counter */
	XIntc_Enable(IntcInstancePtr, IntrId);
#else
	XScuGic_Config *IntcConfig;

	/*
	 * Initialize the interrupt controller driver so that it is ready to
	 * use
	 */
	IntcConfig = XScuGic_LookupConfig(INTC_DEVICE_ID);
	if (NULL == IntcConfig) {
		return XST_FAILURE;
	}

	Status = XScuGic_CfgInitialize(IntcInstancePtr, IntcConfig,
					IntcConfig-&amp;gt;CpuBaseAddress);
	if (Status != XST_SUCCESS) {
		return XST_FAILURE;
	}

	XScuGic_SetPriorityTriggerType(IntcInstancePtr, IntrId,
					0xA0, 0x3);

	/*
	 * Connect the interrupt handler that will be called when an
	 * interrupt occurs for the device.
	 */
	Status = XScuGic_Connect(IntcInstancePtr, IntrId,
				 (Xil_ExceptionHandler)XTmrCtr_InterruptHandler,
				 TmrCtrInstancePtr);
	if (Status != XST_SUCCESS) {
		return Status;
	}

	/* Enable the interrupt for the Timer device */
	XScuGic_Enable(IntcInstancePtr, IntrId);
#endif /* XPAR_INTC_0_DEVICE_ID */

	/* Initialize the exception table */
	Xil_ExceptionInit();

	/* Register the interrupt controller handler with the exception table */
	Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,
					(Xil_ExceptionHandler)
					INTC_HANDLER,
					IntcInstancePtr);

	/* Enable non-critical exceptions */
	Xil_ExceptionEnable();

	return XST_SUCCESS;
}

/******************************************************************************/
/**
*
* This function disconnects the interrupts for the Timer.
*
* @param	IntcInstancePtr is a reference to the Interrupt Controller
*		driver Instance.
* @param	IntrId is XPAR_&amp;lt;INTC_instance&amp;gt;_&amp;lt;Timer_instance&amp;gt;_VEC_ID
*		value from xparameters.h.
*
* @return	None.
*
* @note		None.
*
******************************************************************************/
void TmrCtrDisableIntr(INTC *IntcInstancePtr, u16 IntrId)
{
	/* Disconnect the interrupt for the timer counter */
#ifdef XPAR_INTC_0_DEVICE_ID
	XIntc_Disconnect(IntcInstancePtr, IntrId);
#else
	XScuGic_Disconnect(IntcInstancePtr, IntrId);
#endif
}
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Some&amp;nbsp;of the Macros which aren&amp;#39;t defined:&amp;nbsp;XPAR_INTC_0_DEVICE_ID,&amp;nbsp;XPAR_INTC_0_TMRCTR_0_VEC_ID,&amp;nbsp;XPAR_FABRIC_TMRCTR_0_VEC_ID and causing errors&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>suitable ethernet phy chip for ps side of XC7Z020/XC7Z010</title><link>https://community.element14.com/thread/50477?ContentTypeID=0</link><pubDate>Fri, 07 Jan 2022 04:05:47 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:aaf4d7bf-fb4d-438a-97ab-d758f172c9dd</guid><dc:creator>hasila</dc:creator><slash:comments>4</slash:comments><comments>https://community.element14.com/thread/50477?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/50477/suitable-ethernet-phy-chip-for-ps-side-of-xc7z020-xc7z010/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span class="uiOutputText" dir="ltr"&gt;Hi all,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="uiOutputText" dir="ltr"&gt;I am trying to make my own low cost XC7Z020/XC7Z010 based board. I am referring the microzed schematic and picozed schematic... the thing is with the phy chip attached to the ps. the both boards are using 88E1512-A0-NNP2I000 which is very expensive(~35 usd). I have attached the schematic with this post. so I want to change this phy chip and go for a cheaper option. but my concern is....are there any reason why this has been selected even for this kind of development board... is it okay to go for a cheaper option like RTL8211E-VL which is used in the &lt;/span&gt;&lt;a title="https://digilent.com/reference/_media/reference/programmable-logic/zybo/zybo_sch.pdf" href="https://digilent.com/reference/_media/reference/programmable-logic/zybo/zybo_sch.pdf" rel="noopener noreferrer" target="_blank"&gt;&lt;span class="uiOutputText" dir="ltr"&gt;zybo &lt;/span&gt;&lt;/a&gt;&lt;span class="uiOutputText" dir="ltr"&gt;board... I would be most grateful if someone can give me a clear idea about this or what are the criteria need to be consider apart from voltage levels of the zynq chip and RMII compatibility.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="uiOutputText" dir="ltr"&gt;kind regards&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-discussions-components-files/312/4237.mz-sch.PDF"&gt;community.element14.com/.../4237.mz-sch.PDF&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Reprogramming a minized from a USB drive</title><link>https://community.element14.com/thread/50458?ContentTypeID=0</link><pubDate>Mon, 03 Jan 2022 23:06:51 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:c5b10c05-ccb7-4a34-8efd-df48c5ee4e56</guid><dc:creator>GaryA</dc:creator><slash:comments>0</slash:comments><comments>https://community.element14.com/thread/50458?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/50458/reprogramming-a-minized-from-a-usb-drive/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I inadvertently deleted the files in the /run/media/mmcbkl1d1 folder and hit the reset button.&lt;/p&gt;
&lt;p&gt;Now all I get is the Zynq&amp;gt; prompt - uboot.&lt;/p&gt;
&lt;p&gt;I read &amp;quot;Restoring MiniZed to the Factory State&amp;quot; but it assumes that the board is running PetaLinux which my board is not.&lt;/p&gt;
&lt;p&gt;How do I get image.ub, smallboot.bin, and wpa_supplicant.conf back onto the eMMC from a USB drive or some other possible way?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank you in advance for all your help.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Gary&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>reprogramming a minized from a USB drive using the uboot Zynq&gt; prompt</title><link>https://community.element14.com/thread/50457?ContentTypeID=0</link><pubDate>Mon, 03 Jan 2022 23:01:10 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:cbf8a0f3-c974-4812-ab0f-46b31a836fad</guid><dc:creator>GaryA</dc:creator><slash:comments>1</slash:comments><comments>https://community.element14.com/thread/50457?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/50457/reprogramming-a-minized-from-a-usb-drive-using-the-uboot-zynq-prompt/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I inadvertently removed the files from /run/media/mmcblk1d1 which contains the image.ub and smallboot.bin.&lt;/p&gt;
&lt;p&gt;How do I get those files back into the eMMC from a USB drive?&lt;/p&gt;
&lt;p&gt;I have read the &amp;quot;Restoring MiniZed to the Factory State&amp;quot; and it does not describe anything near what I require - it assumes that the device is up and running PetaLinux, which it is not.&lt;/p&gt;
&lt;p&gt;Thanks for any and all help with this&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;NOTE: this problem was solved by invoking the following command from the Zynq&amp;gt; prompt&lt;/p&gt;
&lt;p&gt;Zynq&amp;gt;run boot_qspi.&lt;/p&gt;
&lt;p&gt;Once that command was run then the entire filesystem was available and I could copy the files back into the designated folder. YES!!!&lt;/p&gt;
&lt;p&gt;I wish that information was in the &amp;quot;Restoring MiniZed to the Factory State&amp;quot; document.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Quickstart of IBM Bluemix is not working with petalinux of Minized</title><link>https://community.element14.com/thread/50073?ContentTypeID=0</link><pubDate>Tue, 02 Nov 2021 22:02:03 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:868c49bd-a14f-469f-93f4-e59c90d55eda</guid><dc:creator>jvilardy</dc:creator><slash:comments>3</slash:comments><comments>https://community.element14.com/thread/50073?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/50073/quickstart-of-ibm-bluemix-is-not-working-with-petalinux-of-minized/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p style="margin:0;"&gt;For the course: Integrating Sensors on MiniZed with PetaLinux 2019.1, how to setup the web page quickstart IoT of IBM? &lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;When I enter the link &lt;/span&gt;&lt;a class="jive-link-external-small" href="https://quickstart.internetofthings.ibmcloud.com/" rel="nofollow ugc noopener" target="_blank"&gt;https://quickstart.internetofthings.ibmcloud.com/&lt;/a&gt;&lt;span&gt; , this web page is offline.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Register Definitions</title><link>https://community.element14.com/thread/50014?ContentTypeID=0</link><pubDate>Mon, 18 Oct 2021 03:54:38 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:96d344e2-89f8-4ba4-a485-c901d7c275ee</guid><dc:creator>kas.lewis</dc:creator><slash:comments>1</slash:comments><comments>https://community.element14.com/thread/50014?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/50014/register-definitions/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p style="margin:0;"&gt;Hello All, &lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;I&amp;#39;m trying to get back to learning FPGAs and how to program them. The issue I&amp;#39;m having is understanding were to find the information to interact with the FPGA side. I wanted to create a basic program where I have an AND or some other basic input/output created in the FPGA fabric and that would then be used by the MCU side. \&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;I&amp;#39;ve worked through this &lt;a class="jive-link-external-small" href="https://www.youtube.com/watch?v=Mb-cStd4Tqs" rel="nofollow ugc noopener" target="_blank"&gt;https://www.youtube.com/watch?v=Mb-cStd4Tqs&lt;/a&gt; video and can get it to run, but I can&amp;#39;t figure out how the MCU interacts with the UART created in the FPGA fabric. Any help with this would be greatly appreciated. &lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Kas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How do I enable the USB Type A port on MiniZed single-core Zynq 7Z007S development board?</title><link>https://community.element14.com/thread/49971?ContentTypeID=0</link><pubDate>Tue, 21 Sep 2021 20:41:44 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:3b263c36-8d2a-425a-972f-ef16f87fc10d</guid><dc:creator>yiu.yuen</dc:creator><slash:comments>4</slash:comments><comments>https://community.element14.com/thread/49971?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/49971/how-do-i-enable-the-usb-type-a-port-on-minized-single-core-zynq-7z007s-development-board/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;Hello,&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;I&amp;#39;m&amp;nbsp; USB Type A port on a MiniZed single-core Zynq 7Z007S development board, I can&amp;#39;t access it neither from the Petalinux application prompt nor from an uboot prompt.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;I need the t&lt;span style="font-family:Calibri, sans-serif;"&gt;he USB Type A port being accessible/enabled for the purpose of transferring a Vxworks OS from our PC to the FPGA board.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="font-family:Calibri, sans-serif;"&gt;Is there a way I can &lt;span style="font-family:Calibri, sans-serif;"&gt;transfer a file into the MiniZed FPGA board other than buying a &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Calibri, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;font-family:Calibri, sans-serif;"&gt;Thanks&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Workshop files contain virus or malware?</title><link>https://community.element14.com/thread/49968?ContentTypeID=0</link><pubDate>Tue, 21 Sep 2021 01:20:46 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:36a930dd-0408-490a-a7e6-532437a9f126</guid><dc:creator>dc73</dc:creator><slash:comments>2</slash:comments><comments>https://community.element14.com/thread/49968?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/minized-hardware-design/49968/workshop-files-contain-virus-or-malware/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p style="margin:0;"&gt;I began the Avnet speedway workshop &amp;quot;MiniZed Developing Zynq Hardware With Xilinx Vivado 2019.1&amp;quot;. When I attempt to download the student files, I get the error from Norton 360 that the files contain malware or virus. Can anyone confirm?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>