Jump to content

RichardV

Members
  • Posts

    33
  • Joined

  • Last visited

Everything posted by RichardV

  1. Hello. I think I figured it out! I had help from BYTEMAN on this forum. Here is an early draft of my procedure. User beware that it may have mistakes. It think "time delays" are needed in the User App when booting from QSPI flash. The code I altered comes from the GPIO example in the BSP. This only works for Vivado 2019.1 and earlier. I haven't figured out how do to this with Vitis yet. Richard V How To Store Your SDK Project in SPI Flash using the CMod_A7.pdf
  2. Hello, I need the help of a Digilent Engineer with CMod-A7 experience (Artix 7). I'm trying to find out if it's even POSSIBLE to run an SDK application from bootup on the CMod-A7. I'm able to load the HDL code, but NOT the SDK application I really need. I'm starting to doubt it's even possible to do this. Someone please just tell me Yes/No if this is true or not? I tried following this tutorial using another Arix 7 device: https://digilent.com/reference/learn/programmable-logic/tutorials/htsspisf/start The problem with this tutorial is that the CMod-A7 doen'st have memory configuration jumpers, so it's not possible to follow this tutorial exactly the same way. I have searched everywhere I can think of for ANYbody that's been able to even get the simple Hello_World code to work upon boot-up. If you know I'm wrong about this, then please provide the links that proves so? I'd be very grateful for a demonstration on this. It seems that the CMod-A7 is totally unable to run SDK applications without being TETHERED to a computer to program it every time it's powered up. I'm trying to sever that tether to my computer. Thank you, Richard V
  3. Hello Byteman. Yes, I'd like to perfect this tutorial for the Cmod-A7: https://digilent.com/reference/learn/programmable-logic/tutorials/htsspisf/start I think my HDL code is loading, but I can't get it to run my SDK application code to load from bootup. I'd very much like to work with you. What's a good way to give you my information without making it public? Best regards, Richard V
  4. Hello. I have seen the Cmod A7 tutorial that stores the .bit file to QSPI for boot from powerup, but this doesn't store an application program like "Hello World". It's actually a 2 stage process for the Zynq; one needs a First Stage Bootloader (FSBL) and a Second Stage Bootloader finishes the job. But I'm using the Microblaze on the Cmod A7 and this process is not so easy. I've tried using a tutorial using for another Artix 7 device (Nexsys, link below), but I failed when trying to adapt it to the Cmod A7. If anyone has a suggestion, I'd be grateful for the advice. Thank you, Richard V https://digilent.com/reference/learn/programmable-logic/tutorials/htsspisf/start
  5. Hello artvvb. Thank you for code, but I can't even generate a bitstream yet. Attached is my block diagram (without the GPIO signals for controlling the OLED). Did I do a simple error here? I keep getting weird errors even though I'm letting Vivado do the automated connecting. The messages are confusing and long (image below). All I want to is drive the PMOD OLED as a simple SPI port device. I managed to set the QSPI to Standard mode, Master, with FIFO enable (tried without FIFO too), but it still doesn't work. I cannot find a simple SPI example anywhere at Digilent that works with Microblaze; please prove me wrong if I am. Based on recent experience, the Zynq is not a good example to follow trying to program the Microblaze; it's just too confusing and many of the signals don't compare. For example, the Zynq SPI port has a slave select (SS) input that requires a constant to be applied as an input. Does the Microblaze have this same weird requirement? Is there a "document" (User Guide) that I can follow to set up the SPI port in Microblaze? I found this one (https://www.xilinx.com/support/documentation/ip_documentation/axi_quad_spi/v3_2/pg153-axi-quad-spi.pdf), but it's not helpful with the setup in Vivado. I can't even get the Nexys 4 Vivado example for the OLED example to compile (found here: https://reference.digilentinc.com/reference/pmod/pmodoled/start?redirect=1); the program says that "IP" structures are out of date, or I'm not allowed to use it for some reason. I keep running into examples that don't compile and this is extremely frustrating to those of us trying to LEARN. And Vivado keeps changing, so the help files get confusing when they deviate from the actual Vivado environment. Is there ANY OLED or "standard SPI" example (that isn't a flash memory example using QSPI) that actually works? I saw a link to some Github code written by some 3rd party, but the documentation is very poor and doesn't work without correcting all sorts of problems. I'd be happy just to see a very simple SPI example using the Quad SPI. There are TOO many Zynq examples that are of no help with Microblaze. Any SPI device would be good, so long as it isn't a Zynq example. This is my constraint file: # Pmod Header JA set_property -dict { PACKAGE_PIN G17 IOSTANDARD LVCMOS33 } [get_ports { OLED_DC }]; #OLED D/C IO_L5N_T0_D07_14 Sch=ja[1] set_property -dict { PACKAGE_PIN G19 IOSTANDARD LVCMOS33 } [get_ports { OLED_RST }]; #OLED RST IO_L4N_T0_D05_14 Sch=ja[2] set_property -dict { PACKAGE_PIN N18 IOSTANDARD LVCMOS33 } [get_ports { OLED_VBAT }]; #OLED VBAT IO_L9P_T1_DQS_14 Sch=ja[3] set_property -dict { PACKAGE_PIN L18 IOSTANDARD LVCMOS33 } [get_ports { OLED_VDDC }]; #OLED VDDC IO_L8P_T1_D11_14 Sch=ja[4] set_property -dict { PACKAGE_PIN H17 IOSTANDARD LVCMOS33 } [get_ports { OLED_CS[0] }]; #OLED CS IO_L5P_T0_D06_14 Sch=ja[7] set_property -dict { PACKAGE_PIN H19 IOSTANDARD LVCMOS33 } [get_ports { OLED_MOSI }]; #OLED MOSI IO_L4P_T0_D04_14 Sch=ja[8] set_property -dict { PACKAGE_PIN J19 IOSTANDARD LVCMOS33 } [get_ports { OLED_MISO }]; #OLED MISO IO_L6N_T0_D08_VREF_14 Sch=ja[9] set_property -dict { PACKAGE_PIN K18 IOSTANDARD LVCMOS33 } [get_ports { OLED_SCK }]; #OLED SCK IO_L8N_T1_D12_14 Sch=ja[10] This is my block diagram that doesn't generate a bitstream. These are the error messages:
  6. Hello artvvb. Thank you for your response. I'm sorry if used the terms incorrectly. I meant that the Microblaze supports QSPI devices, but I only want to drive a simple SPI device, like an OLED or a temperature sensor. From what I recall, QSPI uses 4 lines for each of the MISO and MOSI signals. It looks like you answered my question, the QSPI can be configured to run in "standard mode". It's unfortunate, though, that every example of the QSPI port uses all 4 lines to read a flash memory. I have sample projects for the OLED that use the ordinary SPI port, but it's for the Zynq. I want to use the Cmod-a7 for it's size, cost and form factor, but it uses the Microblaze. Is there any example that shows how to use the QSPI port in standard mode, or can you recommend what I should read? Thank you, Richard V
  7. Hello, I want to use the Cmod-A7 for a project, but it uses the Microblaze processor and only supports QSPI, from what I can tell. Is it possible to configure the QSPI port to use only part of its resources to drive a regular (legacy) SPI port? Thank you, Richard V
×
×
  • Create New...