Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
pmod:specification [2022/09/08 15:48] – changed forum.digilentinc.com to forum.digilent.com Jeffrey | pmod:specification [2022/09/09 17:24] (current) – ↷ Links adapted because of a move operation Arthur Brown | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | <WRAP center round important 60%> | ||
+ | As Digilent has refined the reference materials for it's products, this page has become obsolete for general users. \\ Customers looking for the current Pmod Standard are encouraged to look for the latest standard that is available for download on the [[pmod: | ||
+ | </ | ||
+ | |||
+ | //" | ||
+ | |||
+ | ====== Pmod Standard ====== | ||
+ | ===== Table Of Contents ===== | ||
+ | * [[pmod: | ||
+ | * [[pmod: | ||
+ | * [[pmod: | ||
+ | * [[pmod: | ||
+ | * [[pmod: | ||
+ | * [[pmod: | ||
+ | * [[pmod: | ||
+ | * [[pmod: | ||
+ | * [[pmod: | ||
+ | * [[pmod: | ||
+ | * [[pmod: | ||
+ | * [[pmod: | ||
+ | * [[pmod: | ||
+ | |||
+ | |||
+ | ===== Introduction ===== | ||
+ | |||
+ | The Pmod Standard is a guideline developed by Digilent Inc. to establish and create peripheral modules that earn the Pmod™ status. In short, this document will cover how the peripheral module will adhere to a communication protocol, the form factor that Pmods need to have, and the supporting documentation that needs to be present for each Pmod. | ||
+ | |||
+ | |||
+ | ===== Communication ===== | ||
+ | Like other peripheral devices, Pmods need to be able to successfully communicate with the host board or other devices in order effectively operate in the overall electronic system. It is not the best plan (especially in electronics) to just plug something in to a random spot and hope the device works correctly. The vast majority of the peripheral modules in the Pmod line collect or receive data (or both) and need to communicate this data with the host board. A GPS module that doesn' | ||
+ | ==== Communication Protocols ==== | ||
+ | Digilent Pmods adhere to one or more of the major [[pmod: | ||
+ | |||
+ | As a reference, the required pins (in order) for each of the communication protocols are as follows: | ||
+ | |||
+ | |||
+ | ^ Pin # ^ SPI ^ I²C ^ UART ^ %%GPIO%% | ||
+ | | 1 | Chip Select (CS) | Serial Data (SDA) | CTS< | ||
+ | | 2 | Master-Out-Slave-In (MOSI) | ||
+ | | 3 | Master-In-Slave-Out (MISO) | ||
+ | | 4 | Serial Clock (SCK) | N/ | ||
+ | | 5 | Ground | ||
+ | | 6 | V< | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | |||
+ | For more information, | ||
+ | ==== Pins ==== | ||
+ | With the various communication protocols that Digilent uses, there are three different sets of pin configurations that will be used: 6-pin, 12-pin, and 4-pin configurations. | ||
+ | |||
+ | The 6-pin configuration consists of four pins, pins 1, 2, 3, and 4, that are to be available for the communication protocol. The remaining two pins, pins 5 and 6, are to act as the ground and power pins. The 6-pin configuration is commonly used in protocols such as SPI or UART which only require 4 communication pins to operate. | ||
+ | |||
+ | Some Pmods offer a style of the 6-pin configuration which is actually two sets of the 6-pin configuration that are side-by-side. The way to know that this style is two 6-pin configurations and not a 12-pin configuration is to observe what would happen if only one set of the 6-pin configurations was used. If the Pmod is able to retain functionality true to its original design purpose with both sets of the 6-pin configuration operated individually, | ||
+ | |||
+ | A true 12-pin configuration also has the same physical configuration as two 6-pin configurations side-by-side, | ||
+ | |||
+ | The 4-pin configuration is solely used for the I²C communication protocol. The pin configuration consists of the data and clock pin (SDA and SCL, respectively) along with the ground and power pins. Most Pmods that support I²C as a communication protocol have two sets of these 4 pins in order to adhere with the bus system that I²C uses. | ||
+ | |||
+ | Note that if communication between the Pmod and the host board is only intended to occur in one direction and it would offer no benefit to the functionality of the Pmod (i.e. the chip on the Pmod only supports receiving information from the host board and is not designed to send information to the host board), it is permissible to use less than the total number of pins available for communication. | ||
+ | |||
+ | ===== Form Factor ===== | ||
+ | |||
+ | Pmod connections are made using standard 100mil spaced, 25mil square, pin-header style connectors. | ||
+ | |||
+ | The peripheral module board will have a male connector. This will typically be a right angle connector, at the board edge, for direct connection to a host board, This can be a straight male connector inboard from the board edge if only cable connections will be used. | ||
+ | |||
+ | The host board will typically have a right angle female connector at the board edge for direct connection of peripheral module boards. This connector can be a straight male connector inboard from the board edge if only cable connections will be used. | ||
+ | |||
+ | When multiple connectors are placed side-by-side along a board edge (either host or peripheral), | ||
+ | |||
+ | Peripheral modules with a single connector that are intended for direct connection to a host, or that are intended to fit into the Pmod mounting clip, should be 0.8” wide. There should also be >25mil of clearance from the board edge to any components to allow clearance for the Pmod clip to latch the board edge. The connector should be centered along the 0.8” side of the module. | ||
+ | |||
+ | Peripheral modules that are more than 0.8” wide can be directly connected to a host in some cases but may interfere with adjacent connectors on the host. | ||
+ | |||
+ | The following diagrams show physical connector placement and pin numbering conventions for the host (system board) and peripheral module sides of the connection. Note that the pin numbering conventions for the 2x6 connectors are non-standard and are mirrored between the host connector and the peripheral board connector. | ||
+ | |||
+ | |||
+ | ===== Electrical Specifications ===== | ||
+ | |||
+ | The digital signal characteristics for Pmods are not specified due to the fact that the on-board ICs will inevitably have different requirements. However, the general expectation is that a 3.3V logic power supply will be used and the signals will conform to LVCMOS 3.3V or LVTTL 3.3V logic conventions. | ||
+ | |||
+ | Similarly, the driver current source/sink capability isn’t specified and depends on the capabilities of the specific system board or module. The I/O pins on the system board are generally directly driven by the FPGA | ||
+ | or microcontroller. The I/O pins on Xilinx FPGAs generally have symmetrical 24mA source/sink | ||
+ | capability. The drive capability of microcontrollers is generally less and some of them are not | ||
+ | symmetrical. The drive strength for microcontroller pins is generally in the range +/-5mA to +/-10mA, although the Digilent chipKIT™ microcontroller line can handle +/- 15mA. | ||
+ | |||
+ | The I/O pins on system board Pmod connectors generally have ESD protection diodes and 200ohm series resistors. The resistors are to limit short circuit currents if pins are inadvertently shorted, or to protect against driver conflicts if outputs are inadvertently connected together. | ||
+ | |||
+ | Peripheral modules may be connected to the host board via cables of up to 18” in length. The drivers on the host or peripheral module should have sufficient drive strength to drive this length of cable at whatever the operating speed of the interface on the Pmod is expected to be. In general, this means that the driver should be able to source or sink at least 5mA of current. | ||
+ | |||
+ | Peripheral modules may not assume that pull-up or pull-down resistors are present on the host and | ||
+ | must provide for proper termination of inputs, if necessary, and may not use open drain or open | ||
+ | collector outputs, unless the pull-up is provided on the peripheral module itself. | ||
+ | |||
+ | An exception to the no open collector (open drain for CMOS) output rule is the I²C bus, which is an open collector bus as specified by the I²C protocol. Because of the mix of system boards on the market, including Digilent system boards, that either have or do not have pull-up resistors installed on their own I²C headers, Pmods tend to not have any pull-up resistors for their own I²C connectors as it is not recommended to have multiple sets of pull-up resistors on the same I²C bus line due to the increased capacitance. However, a few of the Pmods, such as the PmodCDC1, provide their own pull-up resistors for the SDA and SCL lines. Please check the reference manual of your respective Pmod and system board to see if there are pull-up resistors already present or if they have to be provided externally. A list of Pmods with their pull-up resistor status is provided on the [[pmod: | ||
+ | |||
+ | Microcontroller system boards are generally provided with dedicated I2C connectors and usually provide pull-up | ||
+ | resistors that are jumper selectable to be in or out of circuit. FPGA based system boards generally | ||
+ | do not provide dedicated I2C connectors, and depend on the internal pull-up resistors in the FPGA I/O | ||
+ | blocks to provide the pull-ups. | ||
+ | ===== Power Requirements ===== | ||
+ | |||
+ | The power and ground pins for each physical pin configuration allow the host board to provide power to the peripheral module. Many Pmods only need the 3.3V that Digilent system boards operate at in order to perform correctly. However, if a Pmod needs to operate at a higher voltage than 3.3V, but does not require more current, a booster circuit should be incorporated into the Pmod. Pmods that need both more current and a higher voltage, such as the PmodCON3 when driving multiple servo motors simultaneously, | ||
+ | |||
+ | Physical pin configurations that are two rows deep, such as the 12-pin configuration or a pair of 4-pin configurations for I²C, should have their two ground pins and two power pins shorted together, respectively, | ||
+ | ===== Supporting Documentation ===== | ||
+ | There are a number of documents that are needed before a Pmod is able to "go live". These include the obvious documents such as a schematic and a reference manual (which some Pmods are missing anyway), but also include documentation such as, but not limited to, user guides, sell sheets, and example code. | ||
+ | |||
+ | Details that should be provided in each of these documents are listed in their respective section below. | ||
+ | ==== Schematic ==== | ||
+ | |||
+ | Have one. | ||
+ | |||
+ | ==== Datasheet ==== | ||
+ | This is an internal document that lets people here at Digilent know all of the things that a particular Pmod is supposed to do and what specifications that this particular Pmod conforms to. This could be IEEE standards for internet access, connection speeds, communication protocols that are able to run up to a specific rate, input/ | ||
+ | |||
+ | ==== Reference Manual ==== | ||
+ | |||
+ | * Photo | ||
+ | * Current product revision | ||
+ | * What is this Pmod | ||
+ | * Features | ||
+ | * The notable features for people who would know what it implies | ||
+ | * The " | ||
+ | * How to connect the Pmod | ||
+ | * Power | ||
+ | * Communication | ||
+ | * Protocol and where to generically connect to on a host board, i.e. 4-pin protocol, 6-pin protocol, pin 1 is here on the Pmod and here on the appropriate header | ||
+ | * Pin diagram and description for ALL pins and jumpers with an accompanying photo | ||
+ | * Physical dimensions | ||
+ | * Where to find example code and additional documentation (schematics, | ||
+ | * Redirect to the [[http:// | ||
+ | * Redirect to the wiki for the latest documentation | ||
+ | |||
+ | ==== Short User Guide ==== | ||
+ | Example of such a guide is available for the [[pmod: | ||
+ | * Photo | ||
+ | * What is this Pmod | ||
+ | * Features | ||
+ | * The notable features for people who would know what it implies | ||
+ | * The " | ||
+ | * Connections | ||
+ | * How and where to? (pin 1 is here on the Pmod and pin 1 on the board is...) | ||
+ | * Things users should know | ||
+ | * The communication protocol that the Pmod uses | ||
+ | * Reiterate what the Pmod does | ||
+ | * Pin diagram and description for ALL pins and jumpers with an accompanying photo | ||
+ | * Physical dimensions | ||
+ | * Where to find example code and additional documentation (schematics, | ||
+ | * Redirect to the [[http:// | ||
+ | * Redirect to the wiki for the latest documentation | ||
+ | |||
+ | ==== Comprehensive User Guide ==== | ||
+ | * See [[basys3: | ||
+ | * Photo | ||
+ | * Current product revision | ||
+ | * What is this Pmod | ||
+ | * Features | ||
+ | * The notable features for people who would know what it implies | ||
+ | * The " | ||
+ | * "Walk around the board" | ||
+ | * Physical dimensions | ||
+ | * Fritzing files | ||
+ | * How to connect the Pmod | ||
+ | * Power requirements | ||
+ | * Communication | ||
+ | * Protocol and where to generically connect to on a host board, i.e. 4-pin protocol, 6-pin protocol, pin 1 is here on the Pmod and here on the appropriate header on the host board | ||
+ | * Pin diagram and description for ALL pins and jumpers with an accompanying photo | ||
+ | * Communication in detail | ||
+ | * Start-up requirements | ||
+ | * How to turn on the Pmod (if appropriate) | ||
+ | * Necessary time delays | ||
+ | * Initial communication sequences | ||
+ | * Link to other document for explanation of its particular protocol for people who may not know what it is (SPI and its variations, I²C and its variations, UART and its variations, %%GPIO%%, USB, and any other mainstream standards) | ||
+ | * Communication protocol things specific to this Pmod | ||
+ | * I²C addresses | ||
+ | * Other addressing or command signals | ||
+ | * SPI or UART is limited to certain communication directions | ||
+ | * Speed requirements and/or restrictions | ||
+ | * How information should be transmitted (for example, 4 ignored bits, 4 command bits, 12 information bits, and 12 more ignored bits for a total of 32 bits for the Pmod DA4) | ||
+ | * Accepted or variable input/ | ||
+ | * Appropriate schematic diagram | ||
+ | * Where to find example code and other documentation that is not already in here (since this is a comprehensive user guide) such as a link to the datasheet for the particular Pmods IC | ||
+ | * Any FAQ that isn't really a topic that merits having its own section in the user guide | ||
+ | * Redirect to the wiki for the latest documentation (just in case somebody had chosen to print out the comprehensive user manual) | ||
+ | * If they did not find what they were looking for, redirect them to the [[http:// | ||
+ | |||
+ | [[start|Go to the Top]] |