diff options
Diffstat (limited to 'Documentation/spi/butterfly')
-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 | |||