spi_butterfly - parport 到 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 板)。在 parport 端,这类似于“sp12”编程电缆。
信号
Butterfly
Parport (DB-25)
SCK
J403.PB1/SCK
引脚 2/D0
RESET
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
Parport (DB-25)
VCC
J400.VCC_EXT
引脚 7/D5
SELECT
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
Parport (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