Commit | Line | Data |
---|---|---|
2e10c84b DB |
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 |