spi_butterfly - 并口到 Butterfly 适配器驱动程序¶
这是一个软硬件项目,包括构建和使用一个并口适配器电缆,以及一个“AVR Butterfly”来运行固件,以实现用户界面和/或传感器功能。Butterfly 是一种售价 20 美元、电池供电的卡片,带有一个 AVR 微控制器和许多好东西:传感器、LCD、闪存、拨动杆等等。您可以使用 AVR-GCC 为此开发固件,并使用此适配器电缆进行烧录。
您可以将旧打印机电缆改造成这个适配器,并直接将元件焊接到 Butterfly 上。或者(如果您有零件和技能),您可以设计出更精巧的方案,为 Butterfly 和打印机端口提供电路保护,或者提供比从打印机端口的两个信号引脚更好的电源。就此而言,您可以使用类似的电缆与许多 AVR 板(甚至面包板)进行通信。
这比“ISP 编程”电缆更强大,因为它允许内核 SPI 协议驱动程序与 AVR 交互,甚至可以让 AVR 向它们发出中断。之后,您的协议驱动程序应该可以很容易地与“真正的 SPI 控制器”配合使用,而不是这个位操作器。
首次电缆连接将 Linux 连接到一个 SPI 总线,带有 AVR 和 DataFlash 芯片;并连接到 AVR 复位线。这是您重新烧录固件所需的一切,这些引脚是标准的 Atmel “ISP” 连接器引脚(也用于非 Butterfly AVR 板)。在并口端,这类似于“sp12”编程电缆。
信号
Butterfly
并口 (DB-25)
SCK
J403.PB1/SCK
引脚 2/D0
复位
J403.nRST
引脚 3/D1
VCC
J403.VCC_EXT
引脚 8/D6
MOSI
J403.PB2/MOSI
引脚 9/D7
MISO
J403.PB3/MISO
引脚 11/S7,nBUSY
GND
J403.GND
引脚 23/GND
为了让 Linux 作为主设备与 DataFlash 芯片通信,您必须 (a) 烧录禁用 SPI 的新固件(设置 PRR.2,并通过清除 PORTB.[0-3] 禁用上拉电阻);(b) 配置 mtd_dataflash 驱动程序;以及 (c) 连接芯片选择线。
信号
Butterfly
并口 (DB-25)
VCC
J400.VCC_EXT
引脚 7/D5
选择
J400.PB0/nSS
引脚 17/C3,nSELECT
GND
J400.GND
引脚 24/GND
或者,您可以烧录固件,将 AVR 设为 SPI 从设备(同时保持 DataFlash 处于复位状态),并调整 spi_butterfly 驱动程序,使其绑定到您自定义的基于 SPI 协议的驱动程序。
使用 J405 的“USI”控制器也可以用于第二个 SPI 总线。这将允许您使用带有 USI 功能的自定义 SPI 固件与 AVR 通信,同时让 Linux 或 AVR 使用 DataFlash。有大量的空闲并口引脚可以连接此总线,例如
信号
Butterfly
并口 (DB-25)
SCK
J403.PE4/USCK
引脚 5/D3
MOSI
J403.PE5/DI
引脚 6/D4
MISO
J403.PE6/DO
引脚 12/S5,nPAPEROUT
GND
J403.GND
引脚 22/GND
IRQ
J402.PF4
引脚 10/S6,ACK
GND
J402.GND(P2)
引脚 25/GND