Filtror

by andy@warmcat.com 


A device to share a chunk of SRAM
between an LPC port and a PC
Printer Port

     
 Note   The prototype has been shown to work!
 
Back to Latest News

The Filtror Project

Scope 

Filtror is a small device designed to:

  • Present 4Mbit of SRAM (optionally 8Mbit if a second SRAM is fitted) to an LPC-compatible connector 
  • Allow the SRAM to be read and written to from a PC Printer port under Linux or Windows
  • Allow the SRAM to have shared access between the PC and the LPC host at all times, such that is is possible to communicate with the host by read and writing checksum-protected arbitrary length structs to arbirary addresses inside the SRAM while the host continues to read and write unhindered

The need the device fulfils is to facilitate rapid debug and communication with an LPC-enabled host and a PC.

The design schematics, gerbers and C & VHDL sources are being released under the GPL, others are encouraged to duplicate our design when it is proven.  However, as with all GPL projects, no warrenty at all is given about the performance of this design.  It might do anything up to and including destroying the planet you are on if you build one.  However I believe it will eventually perform as suggested.

Overview

     

Principles

  • Requires an always-on 3.3V power supply (for X-Box1 use this is availble from  PIC pin).  This allows us to communicate with the SRAM, and maintains its contents indefinitely, even when the main host power is down.  This implies it needs a private clock oscillator, because the 33MHz LPC clock will not be available when the main host power is down.
  • Not modal, that is, the host can always read and write the SRAM over LPC, and the PC can always read and write the same SRAM over the Printer Port connection without disturbance of either side.  So there is no mode where the PC has control or the host.  (this works by inserting LPC waitstates if a PC-side access is ongoing at that time).
  • Appears to be a Xilinx Parallel cable while the CPLD is unconfigured or a jumper is set.  This allows the CPLD to be configured directly from the Printer Port alone without needing any Xilinx programming hardware.  (The Xilinx programming software is needed however, and is available for download from Xilinx).
  • Will have the ability to drive the LPC reset pin to ensure the host is quiescent and not performing any LPC writes.  Will have a General Purpose signal that is low from powerup until the first LPC action from the host, when it becomes open-drain.  Will have the same power cycling hardware as Milksop allowing automated host restart.
  • Like milksop this is a not-for-profit design.  I will not  be building and selling these boards.  However, this time I intend to build more than one and give them at no charge to the kernel hackers who need them most.   Just to be crystal clear, it costs me hundreds of pounds to create and prove these designs, which I then give away for free for other people to build.  I in no way profit from these efforts, other than collecting some kind words in email from time to time.
  • This design does not do the same job as Milksop, it does not address TSOP forcing.  Because it does not contain flash it is of no use except to people who will be writing, running, and debugging code via an LPC connector.  It is of no use as a device for nonvolatile storage as it would need a PC to fill the SRAM every time you powered down the host.

Implementation

Physcial hardware

Milksop uses a Xilinx XC95144XL CPLD in a TQ100 package. 

Schematics

Click on the thumbnail to get the schematic PDF


PCB layout

2.75" x 2.25".  Gerbers and drill files.


Engineering Change Notice (ECN) 1

One single mistake - forgot to link the VccInt and VccIo nets for the CPLD.  This can easily be added in afterwards with a bridge between the top pad of C113 and the corner pad of the CPLD to its left, this is as shown on the diagram above.  I will add a photo as soon as I have some time.

Partslist

Qty Type Component ID Description part code
 
7
100n C102 C110 C111 C112
C113 C3 C4
1206 capacitors Farnell 644-316
1 330pF C2 Farnell 757-251
1 100uF 6V3 C105 submin electrolytic Farnell 334-9913
1
10uF 6V3
C104
Farnell 490-659
 
3 100R RP1 RP2 RP3  1206 quad respack Farnell 196-710
1 1K RP4 Farnell 196-770
1 4K7 RP5 Farnell 196-812
1
33K
R101
1206 single resistor
Farnell 613-885
1
470R
R102
Farnell 613-666
2
4K7
R1 R2
Farnell 613-782
 
1 74HC14 U1 SO-14 hex schmitt trigger Farnell 379-268
1
74HC157
U2
SO-16 Quad 2:1 mux
Farnell 379-402
1 XC95144XL-10TQ100C CPLD Xilinx CPLD Xilinx Website
2 BAT42 D1 D2 schottky diode Farnell 367-783
1 OSC20MHz OSC1 8-pin DIL can Oscillator Module (nb
specified for 5V Vcc but tested to work
on 3.3V Vcc)

Farnell 788-491
1
AS7C34096-12JC
RAM1 RAM2
4Mbit SRAM
Farnell 385-1114
2
2SK1336
Q1 Q2
N-channel Mosfet
Farnell 353-024
  
1 DB25M PRINTER Right-angle 25-way D connector male Farnell 892-440
1 HEADER 8X2 LPC DIL 0.1" pitch header posts, 2x8 way Farnell 511-821
1
HEADER 6
HOST
SIL 0.1" pitch header posts
Farnell 511-742
1
HEADER 2
CFG
SIL 0.1" pitch header posts
Farnell 511-705
2
Ribbon sockets

IDC Ribbon Cable skt 16-way
Farnell 316-6879
1
For host cable

Crimp housing
Farnell 183-3248
1

Crimp terminal strip
Farnell 182-3218
 
1 LED LED1 Green power LED Farnell 621-006


CPLD Logic

Second draft of VHDL 2002-06-27

SVF file
ready to program with milk

Host Cable

The host connector has the following pinout:

1: GND
2: (key)
3: nportNoLpcYet (for X-Box, hook to flash bus D0)
4: 3.3V 'always on' power supply input
5:  see below
6: see below

Pins 5 & 6 hook to active-low reset signal; for X-Box they need to be wired to the front panel connector pins 6 and 8 as shown below (the pin numbers refer to the connector shown, not the Host connector on Filtror)


Pin 4 of the host connector needs to be connected to an always-on 3.3V supply rail.  For the X-Box, this can be taken from p21 of the PIC, or for easier soldering, the end of the capacitor that this pin is also connected to.  0V is easily available from a nearby capacitor.


Debug connector

The Debug connector just brings out some unused IO from the CPLD to a place where I can monitor them easily.  I will be using this IO to help me see what is going on inside the CPLD if things are not working properly.  It also allows some extra signals to be added on to the design if someone has a bright idea.

CFG connector

This two-pin header is left open for normal operation.  To set Filtror into Xilinx configuration mode, where it looks like a Xilinx Parallel cable is already connected to the CPLD, link the two pins.  After configuration (or reconfiguration), remove the link for normal operation.

Progress 2002-07-03

Completed

Write and compile logic for CPLD
Ordered CPLDs
Design Schematics
Layout PCB
Order PCB
Receive PCB
Build Prototype

In Progress
 Write control app
 2002-07-04

Todo

Ship to MIST64 & anonymous

Build others

 

¹X-Box is a registered trademark of Microsoft Corporation, nothing to do with us.