diff options
| author | David Brownell <david-b@pacbell.net> | 2006-01-11 14:23:49 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-01-13 19:29:56 -0500 |
| commit | 2e10c84b9cf0b2d269c5629048d8d6e35eaf6b2b (patch) | |
| tree | 2b338e8282d4e740529aeb3d5f303c4883f8d667 /Documentation/spi | |
| parent | 5d870c8e216f121307445c71caa72e7e10a20061 (diff) | |
[PATCH] SPI: add spi_butterfly driver
This adds a bitbanging parport based adaptor cable for AVR Butterfly, giving
SPI links to its DataFlash chip and (eventually) firmware running in the card.
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'Documentation/spi')
| -rw-r--r-- | Documentation/spi/butterfly | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Documentation/spi/butterfly b/Documentation/spi/butterfly new file mode 100644 index 000000000000..a2e8c8d90e35 --- /dev/null +++ b/Documentation/spi/butterfly | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | spi_butterfly - parport-to-butterfly adapter driver | ||
| 2 | =================================================== | ||
| 3 | |||
| 4 | This is a hardware and software project that includes building and using | ||
| 5 | a parallel port adapter cable, together with an "AVR Butterfly" to run | ||
| 6 | firmware for user interfacing and/or sensors. A Butterfly is a $US20 | ||
| 7 | battery powered card with an AVR microcontroller and lots of goodies: | ||
| 8 | sensors, LCD, flash, toggle stick, and more. You can use AVR-GCC to | ||
| 9 | develop firmware for this, and flash it using this adapter cable. | ||
| 10 | |||
| 11 | You can make this adapter from an old printer cable and solder things | ||
| 12 | directly to the Butterfly. Or (if you have the parts and skills) you | ||
| 13 | can come up with something fancier, providing ciruit protection to the | ||
| 14 | Butterfly and the printer port, or with a better power supply than two | ||
| 15 | signal pins from the printer port. | ||
| 16 | |||
| 17 | |||
| 18 | The first cable connections will hook Linux up to one SPI bus, with the | ||
| 19 | AVR and a DataFlash chip; and to the AVR reset line. This is all you | ||
| 20 | need to reflash the firmware, and the pins are the standard Atmel "ISP" | ||
| 21 | connector pins (used also on non-Butterfly AVR boards). | ||
| 22 | |||
| 23 | Signal Butterfly Parport (DB-25) | ||
| 24 | ------ --------- --------------- | ||
| 25 | SCK = J403.PB1/SCK = pin 2/D0 | ||
| 26 | RESET = J403.nRST = pin 3/D1 | ||
| 27 | VCC = J403.VCC_EXT = pin 8/D6 | ||
| 28 | MOSI = J403.PB2/MOSI = pin 9/D7 | ||
| 29 | MISO = J403.PB3/MISO = pin 11/S7,nBUSY | ||
| 30 | GND = J403.GND = pin 23/GND | ||
| 31 | |||
| 32 | Then to let Linux master that bus to talk to the DataFlash chip, you must | ||
| 33 | (a) flash new firmware that disables SPI (set PRR.2, and disable pullups | ||
| 34 | by clearing PORTB.[0-3]); (b) configure the mtd_dataflash driver; and | ||
| 35 | (c) cable in the chipselect. | ||
| 36 | |||
| 37 | Signal Butterfly Parport (DB-25) | ||
| 38 | ------ --------- --------------- | ||
| 39 | VCC = J400.VCC_EXT = pin 7/D5 | ||
| 40 | SELECT = J400.PB0/nSS = pin 17/C3,nSELECT | ||
| 41 | GND = J400.GND = pin 24/GND | ||
| 42 | |||
| 43 | The "USI" controller, using J405, can be used for a second SPI bus. That | ||
| 44 | would let you talk to the AVR over SPI, running firmware that makes it act | ||
| 45 | as an SPI slave, while letting either Linux or the AVR use the DataFlash. | ||
| 46 | There are plenty of spare parport pins to wire this one up, such as: | ||
| 47 | |||
| 48 | Signal Butterfly Parport (DB-25) | ||
| 49 | ------ --------- --------------- | ||
| 50 | SCK = J403.PE4/USCK = pin 5/D3 | ||
| 51 | MOSI = J403.PE5/DI = pin 6/D4 | ||
| 52 | MISO = J403.PE6/DO = pin 12/S5,nPAPEROUT | ||
| 53 | GND = J403.GND = pin 22/GND | ||
| 54 | |||
| 55 | IRQ = J402.PF4 = pin 10/S6,ACK | ||
| 56 | GND = J402.GND(P2) = pin 25/GND | ||
| 57 | |||
