On 7/5/11 2:25 AM, Peter Stuge wrote:
Andreas Galauner wrote:
I had the idea of developing a small Board which
contains a USB port
and an SPI flash.
Sure. Or just follow Tom's tip and wire a second SPI bus master
directly onto the mainboard.
Yep, I just found the pinheader. Seems to be 1.27x1.27mm.
I also created a support ticket for the pinout on Sapphire's website. It
would be nice if they give that to me, but I really doubt it.
I'll try to measure the pinout tomorrow with a multimeter.
thought about emulating the SPI flash completely by an AVR,
What do you mean by AVR? It's relevant for much of what you write.
Oh, sorry. I mean those Atmel AVR microcontrollers. I have a few of them
lying around here and wanted to give them some new lifes apart from
laying in my part box.
SPI flash must respond with data immediately after the
bit is received. It's really inconvenient to emulate this.
new approach is a SPI flash which resides on the
Sure. But simpler to just connect directly to the SPI on the
If I want to test a new BIOS, the AVR puts the
motherboard into reset,
detaches the flash chip with a multiplexer from the motherboard,
programs it, switches it back to the motherboard and let off the reset.
Program flash chip on mainboard
I'll try to figure out the pinout tomorow. And try to read the flash
with flashrom and a bus pirate
As an added bonus, I'm thinking about using a
USB 2.0 port of an
USB-capable AVR as a USB debug interface
Note that the Debug Class Device must be able to handle high speed
communication ("USB 2.0" is orthogonal to "high speed") and it must
be able to handle some out-of-spec transfers. It's not at all certain
that your controller does this.
Yes, I know.
And I just saw that my microcontrollers only do full speed and the
specification requires high speed. So, this isn't possible.
As I am currently looking for suitable parts, I
need to know some
basic parameters of the SPI communication.
Does anybody of you know what the typical clock rates between the
chipset and the flash are?
Any SPI bus master works, the SPI flashes are generally modern enough
to not have a problem with very slow clocks.
Since you seem interested in doing development for SPI flashing over
USB, you may want to look at the preliminary USB protocol document
that me and Stefan Tauner have been working on. Unfortunately it's
been idle for a while, but it's nearly complete. The missing parts
are the things that can vary between flash chips; erase command
sequence and write command sequence. They need to be expressed in
some nice way in the protocol. The intended development hardware is
the Olimex LPC-P1343 board with an NXP LPC1343 Cortex-M3. Once
software works, and once they become available, I want to put a
LPC11U00 on a flexpcb cheap enough to be soldered permanently onto
mainboards. (NXP promise <$1 for "quantity", probably 1k.)
I haven't done very much with SPI flashes until now. I know how the
physical protocol works and used it a few times in some smaller
microcontroller projects, but I definetely would want to take a look at it.
And the development board is easily available and cheap in Germany. Cool.