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.
I first 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 last address bit is received. It's really inconvenient to emulate this.
new approach is a SPI flash which resides on the AVR board
Sure. But simpler to just connect directly to the SPI on the mainboard.
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.
Make that:
Hold reset Program flash chip on mainboard Release reset
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.
Andreas