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