• Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by cospan

  1. Hi, I have been working on a PMOD TFT LCD that can be used to play video directly from the FPGA using only two PMODs. I designed the hardware a couple of years ago but recently I had to do a project where I needed to use the Vivado block diagram interface. I thought it was pretty cool how fast it was to put a design together so I went about making an IP Core that controlled the PMOD. It has an AXI Lite interface used to initialize the LCD and then a AXI Stream interface that can be connected directly to a VDMA core. I ended up making three different demos including the following: Using the Microblaze to write directly to the screen. I wrote another core that behaves like a console output that will write directly to the screen for you so the MCU doesn't need to write the console stuff to the screen. I streamed video. Unfortunately this was harder than I expected and had to use the Pynq board instead. Here's a video of it working. I wrote a project page on with more details I was thinking of trying to sell the boards but I didn't know if there would be any interest. Dave
  2. cospan

    Fmc Hmi Display

    Hi, I believe I can help with this. This board is pretty cool and in answer to your first question 'Can the card be customized with a new display?' Yes, it should but after looking at the TFTs manufacturers site, I haven't found any other display that would work with this connector, granted I only looked at 5. This reduced selection is determined by the connector chosen by the board designer and it uses a unique 45 pin FPC (Fine Pitch Connector) to communicate with the TFT. In order to see what was available I looked at two different sites for TFTs, and, they both use a 40 pin fine pitch connector that have similar pin configuration, I've used both in the past and the transition from a 4.3" TFT to a 5.0" TFT seems like it would only be a matter of modifying HDL and not a new board spin. Concerning your second question: 'Does this board support 1280x800?' Unfortunately, I doesn't appear to be so. Here are the list of TFTs that company produces: It looks like that company only supports up to 1024 x 768 and most of these TFTs require an LVDS interface, as apposed to a simple single ended parallel interface. I do have a suggestion for you, if you would like to interface with a screen the size of 1280 x 800 you might want to look at the Atlys devboard (I don't work for Digilent),400,836&Prod=ATLYS&CFID=7060499&CFTOKEN=ef9a5269bc4d9941-9979E6AE-5056-0201-02AFF10041060DF2 coupled with a setup like this from Adafruit (I don't work for Adafruit) A company I worked with said the example HDMI code found on the Atlys website worked really well. I looked into you last question about the Synopsys HAPS6X or ".."7X and unfortunately I couldn't even download the product brief for the project without signing my life away so I can't directly help you there. If you do have access to the product brief you can find if the HAPSXX supports FMC LPC interface, if so HUZZAH! Good luck, Dave
  3. I just got this up and running: It's a custom TFT LCD controller board using only two PMODs. The board controlling it is an FPGA devboard that communicates with the host computer using the FTDI's FT2232H in synchronous FIFO mode so that I can transfer data between the host and board at a rate of about 25MB/s using a simple protocol. I wrote a scripting tool that glues together wishbone cores to create an FPGA image using a simple configuration file. Editing configuration files are great but I thought it would be so much better if I could modify the FPGA image by using a GUI so I worked on an application that does that. Here is a screen shot of how I visually created the LCD controller. One of the big limitations of using USB 2.0 is the relatively large overhead to initiate a transaction, It's much faster if you send a large chunk of data. So instead of writing directly to the LCD controller I write to the SDRAM and then configure the LCD controller to read directly from the memory. This way I can write a new frame down to memory while the LCD controller is reading data out using a double buffer scheme (host writes to back, controller reads from front, then flip). The protocol to communicate with the FPGA is a really simple protocol abstracted away in Python to simply 'read' and 'write'. It was pretty cool to communicate with the FPGA using a python module but I thought it would be so much better if I could interface with an FPGA using a GUI. So I added a visual interface to communicate with it (That's what I was using in the video). If you're interested in the board here's the link: the code to control the LCD is here: The code is designed to be as generic as possible, so if you want to adapt it to your project it really just needs a wishbone bus but you can bypass Wishbone by just using the nh_lcd.v