Git Product home page Git Product logo

fmod's Introduction

FMOD

A flexible (literally) interface for connecting FPGA modules.

Essentially PMOD reimagined with the 2x6 2.54mm pitch header replaced with a 20-pin 0.5mm pitch FFC connector.

Pinout

Function Pin Pin Function
GND 1 2 IO0
GND 3 4 IO1
GND 5 6 IO2
GND 7 8 IO3
GND 9 10 VIO
VIO 11 12 GND
IO4 13 14 GND
IO5 15 16 GND
IO6 17 18 GND
IO7 19 20 GND

Connector

The recommended connector is Omron XF3M-2015-1B, but any compatible 20-pin 0.5mm pitch connector can be used. One benefit of the recommended connector is that it has both top and bottom contacts, so it'll work with both cable orientations.

Cable type/orientation

The nominal cable type is a top/bottom cable, inserted contacts up on either end, making a 1:1 connection. However, the pinout is designed to be symmetric, meaning that with a reversal of the signal order in the FPGA gateware, a mirrored connection can also be made when appropriate, e.g. to ease cable routing.

Background

I came up with this while building a replacement controller for a three decades old FANUC robot arm. Since I was reverse-engineering the various interfaces, I wanted a modular design so I wouldn't have to respin the entire thing if I got one of the interfaces wrong, so I needed a way to distribute 70-80 signals between a FPGA board and four different interface boards, with a varying number of signals going to each.

FAQ

What is VIO?

The IO voltage of the signals. Usually 3.3V, but other IO voltages are allowed. Nominally provided by the FPGA side and consumed by the peripheral side, but variations are allowed. The integrator is responsible for ensuring that the voltage, current and direction specs of both sides of a connection are compatible.

Why no other voltage rails?

Simplicity. Also, having only a single voltage rail allows 1:1 adapters between PMOD and FMOD.

A common IO voltage is almost always required, whereas which other voltage rails exists/is required would be fairly application specific and would make for a complex compatibility matrix.

Why only eight signals?

Because eight is a good granularity when you're dividing the available FPGA IOs between multiple modules. If you're making a module that needs e.g. only five signals, you're only wasting three. If you're making a module that needs more than eight signals, you just run multiple FMOD interfaces in parallel.

Why so many grounds?

Surrounding every signal with grounds makes for good signal integrity and 20-pin FFC-connectors and cables is also a common size with good availability. There would be no significant saving from shaving off the number of grounds and switching to a lower pin count.

Projects with FMOD interfaces

If you're using FMOD in your project and would like to see it listed here, please open an issue or a pull request.

fmod's People

Contributors

zyp avatar

Stargazers

King Wong avatar Rachel Mant avatar Mike Walters avatar hx avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.