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