element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet & Tria Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
Avnet Boards General QSPI as normal Flash
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Verified Answer
  • Replies 4 replies
  • Subscribers 368 subscribers
  • Views 542 views
  • Users 0 members are here
Related

QSPI as normal Flash

zanabonir
zanabonir over 9 years ago

Dear Forum

Im playing whit the QSPI via baremetal code,using the I/O mode because of  possibility to write ...some not possible with the Linear Mode.

In particular,im using the Quad Mode.

 Before post my code, partially working , maybe is better I understand some parts in datasheet.Question are:

1)Datasheet 12.2.3 IO Mode Transmit Register

What meas the phrase before the table -The user must empty the TxFIFO beetwen consec......-

And i cant understand the table also

2) Why in datasheet 12.3.3,  the point 4 -Enable Controller- is in this position and not before ?

I means, is not normal ,before of all, Enable the controller, Configure it ,and at last enable the CS ..and so start operation?

Thanks for help

Roberto

  • Sign in to reply
  • Cancel
  • jafoste4
    0 jafoste4 over 9 years ago

    Hello Roberto,

    Could you provide me a link to the data sheet you are looking at please?

    --Josh

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • zanabonir
    0 zanabonir over 9 years ago in reply to jafoste4

    Thanks

     

    is the ug585 v1.11 at

    https://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jafoste4
    0 jafoste4 over 9 years ago

    Hi Robiberto,

    1)      FIFOS work as in First in first out.  I think they want you to flush the FIFO so that the empty flag flips on the FIFO.  That flag is probably used to tell later logic that we are DONE, reset your state machine to IDLE and await a new command.  If you read the documentation, it specifically states that each access to the register corresponds to a write to the TxFIFO.  Through stopping and flushing, it is telling the mechanisms that the next data that goes in, will need to be a new command (read/write).  Do not mistake a FIFO for a pipeline.  They can be used that way, but in this case, it is just a way that Xilinx is using to MASK the pin combinations and commands that need to go to the QSPI memory from software.  In SW land, you just issue register accesses.  The QSPI state machine then translates to controlling the memory.  Hence, finish one command before starting another.  Again, this is NOT a pipeline.  It is a register.  1 deep.  The FIFO allows you to DUMP a load of data into 1 register to allow the processor to go about its business.

    2)       There is probably a state machine in there, it needs to be reset to IDLE before you can configure it and run it.  Hence being disabled, you configure, enable, it does magic, then you disable to bring it back to IDLE ready for the next action.  It also needs to be enabled before you try to assert any IO controls to QSPI memory.  If the controller is not ready, you cannot be certain the correct initial state is ready and you could end up confusing the QSPI through providing erroneous or undefined configuration to the memory.

    I would like to state that this is our interpretation of this. I would suggest you contact Xilinx for a more definitive answer.

    --Josh

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • zanabonir
    0 zanabonir over 9 years ago in reply to jafoste4

    Thanks for reply Mr Foster..and for time you spend in it

    If could be intresting I can post the code, that work good in some part, but not in other.

    Else, I can consider solved this post.

     

    Thanks again

    Roberto

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Reject Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube