Comments (1)
I debugged this last night and found several issues preventing this from working at DIV=0:
pads.clk
is normally registered with aSDROutput
, but not when being output through theUSRMCLK
primitive, resulting in it being output too early. At DIV=0 this shifts it 180° out of phase, resulting in the flash not interpreting the command correctly.- The clock generator is glitching at the
IDLE
state between theDUMMY
andDATA
states, which at DIV=0 results in an extra clock pulse being output. - Since both the output and the input is registered with a
SDRTristate
, the input data arrives two cycles after the output data is written. At DIV=0 this means that the previous input arrives in the same cycle as the next output, which means that the last input bit doesn't arrive before we've left theDATA
state.
I've fixed the first two issues and worked around the third, so I have something that works now, but it requires a bit more work before it's ready to be submitted as a PR.
from litespi.
Related Issues (20)
- Support the SPI RAM found on HAD badge HOT 5
- Support talking to an SD Card in SPI mode
- Wrong data read from SPI flash on Arty
- Verify that dummy bits are handled correctly in I/O modes
- How does partial erase work? HOT 1
- Fix the name of LiteSPI instance in example/arty.py HOT 2
- Support for ECP5 boot flash in LiteSPI HOT 3
- Feedback / Contribution / Support
- Make 10000 cycle timeout configurable HOT 2
- Adding more ports to crossbar, how to handle arbitration? HOT 1
- Arty: Example for storing gateware on SPIflash HOT 3
- How to write to flash? HOT 13
- Improve resources usage. HOT 6
- Missing opcodes in auto-generated Modules. HOT 4
- Check simplified generic_sdr PHY / Apply changes to generic_ddr PHY. HOT 2
- litex.soc.doc generation error HOT 5
- Add DDR support for Fomu
- x4 configuration: read flash config/status errors (x1 mode)
- Support Auto-Initializing SPI Flashes to Quad Mode HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from litespi.