lutsabound has quit [Quit: Connection closed for inactivity]
_whitelogger has joined ##openfpga
Bike has quit [Ping timeout: 252 seconds]
Bike has joined ##openfpga
_whitelogger has joined ##openfpga
Bike has quit [Quit: Lost terminal]
_whitelogger has joined ##openfpga
_whitelogger has joined ##openfpga
_whitelogger has joined ##openfpga
stefanct has quit [Ping timeout: 245 seconds]
stefanct has joined ##openfpga
_whitelogger has joined ##openfpga
emeb_mac has quit [Ping timeout: 245 seconds]
tms_ has joined ##openfpga
flea86 has joined ##openfpga
_whitelogger has joined ##openfpga
Jybz has joined ##openfpga
_whitelogger has joined ##openfpga
Jybz has quit [Ping timeout: 252 seconds]
Bike has joined ##openfpga
cr1901_modern1 has joined ##openfpga
cr1901_modern has quit [Ping timeout: 245 seconds]
cr1901_modern1 has quit [Quit: Leaving.]
nurelin has joined ##openfpga
cr1901_modern has joined ##openfpga
nurelin has quit [Client Quit]
lutsabound has joined ##openfpga
nurelin has joined ##openfpga
nurelin has quit [Quit: WeeChat 2.4]
nurelin has joined ##openfpga
flea86 has quit [Quit: sleeptiem]
emeb has joined ##openfpga
<tnt>
Does anyone know what the "continuous read mode" in the picosoc spi controller is ?
<mwk>
huh, wondered about that as well
<mwk>
all I know is it hangs on my board
<tnt>
Here I can enable it and it improves things a tiny bit. But I can't disable it.
<tnt>
(it crashes)
* mwk
investigates
<tnt>
Oh, so apparently if you set some bit to 1 during one read command, for the next command you send, you don't have to sent the opcode, it assumes it will be the same command.
<mwk>
huh
<mwk>
you mean, this works with actually disabling CS#?
<mwk>
that's... strange and kind of horrible
<tnt>
mwk: yes. It just makes the next opcode implicit.
<tnt>
(which is probably why disabling it crashes ...
<mwk>
how is that even supposed to work
<mwk>
you send just the address? how are you supposed to get out of this mode?
<tnt>
well after the address you always have the 'dummy byte' which contains the mode bits which need to be set to a special value for this mode to stay enabled.
<mwk>
ohh
<tnt>
so you only enable it for the very next command.
<mwk>
still horrible
<mwk>
also explains why it doesn't work here, my SPI chip is shit
<tnt>
it's a gain especially when you are in something like quad DDR mode where you can basically transfer 8 bits per clock cycle ... but the command is still in normal spi mode so you waste 8 cycles to transmit the command and then address + dummy + data is only 4 cycles.
<mwk>
is there some sane way to reset it without upsetting the device if it's not currently in crazy mode?
<tnt>
Sure, if you do a read ID command for instance. If it was in this mode, this will do a read at some random address and return garbage (but exit this mode) and if you were not in this mode, it will return the unique ID.
<mwk>
I suppose that could be stuffed in the controller's state machine when starting up
<tnt>
Looks like the flash I picked for my custom board doesn't support that mode though :/ Damn. The 16mbits version of the flash does support it, so that might be worth upgrading to that.
<mwk>
hmm
<mwk>
the controller does seem to attempt such a reset already, though
<mwk>
it always sends a dummy 0xff command and then a dummy 0xab command on startup
<tnt>
Oh I mean disabling it at runtime, not on reset.
<mwk>
yes
<mwk>
but changing the config register should restart the controller state machine
<mwk>
softreset <= !config_en || cfgreg_we;
emeb_mac has joined ##openfpga
azonenberg has quit [Ping timeout: 276 seconds]
azonenberg_work has quit [Ping timeout: 276 seconds]
azonenberg_work has joined ##openfpga
azonenberg has joined ##openfpga
emeb has quit [Quit: Leaving.]
emeb_mac has quit [Ping timeout: 268 seconds]
unixb0y has quit [Quit: ZNC 1.6.5+deb1 - http://znc.in]