|
4 | 4 |
|
5 | 5 | A [digital signal](https://en.wikipedia.org/wiki/Digital_signal) is a signal that can be in one of several discrete states. In the vast majority of cases, the signal is the voltage in a wire, and there are only two states for a digital signal - high, or low (also denoted 1 and 0, or true and false, respectively). |
6 | 6 |
|
7 | | -The roboRIO's built-in digital input-output ports (or "DIO") ports function on 5V, so "high" corresponds to a signal of 5V, and "low" to a signal of 0V [1]_ [2]_. |
| 7 | +The Systemcore's built-in Smart Input/Output ports (or "Smart I/O") ports function on 3.3V, so "high" corresponds to a signal of 3.3V, and "low" to a signal of 0V [1]_. |
8 | 8 |
|
9 | | -## Connecting to the roboRIO DIO ports |
10 | | - |
11 | | -.. note:: Additional DIO ports are available through the "MXP" expansion port. To use these, a breakout board of some sort that connects to the MXP is needed. |
| 9 | +## Connecting to the Systemcore Smart I/O ports |
12 | 10 |
|
13 | 11 | .. warning:: Always consult the technical specifications of the sensor you are using *before* wiring the sensor, to ensure that the correct wire is being connected to each pin. Failure to do so can result in damage to the device. |
14 | 12 |
|
15 | | -.. warning:: **Never** directly connect the power pin to the ground pin on any port on the roboRIO! This will trigger protection features on the roboRIO and may result in unexpected behavior. |
| 13 | +.. warning:: **Never** directly connect the power pin to the ground pin on any port on the Systemcore! This will trigger protection features on the Systemcore and may result in unexpected behavior. |
| 14 | + |
| 15 | +.. image:: images/systemcore/systemcore-smartio.png |
| 16 | + :alt: The Systemcore, with the location of the Smart I/O ports highlighted. |
16 | 17 |
|
17 | | -.. image:: images/roborio/roborio-dio.svg |
18 | | - :alt: roboRIO showing the DIO pins on the left side. |
| 18 | +The Systemcore has 6 Smart I/O ports (numbered 0-5), as seen in the image above. Each port has three pins - signal, power ("3.3V"), and ground ("gnd"). The "power" and "ground" pins are used to power the peripheral sensors that connect to the analog input ports - there is a constant 3.3V potential difference between the "power" and the "ground" pins [2]_. The signal pin is the pin on which the signal is actually measured. |
19 | 19 |
|
20 | | -The roboRIO has 10 built-in DIO ports (numbered 0-9), as seen in the image above. Each port has three pins - signal ("S"), power ("V"), and ground ("|ground|"). The "power" and "ground" pins are used to power the peripheral sensors that connect to the DIO ports - there is a constant 5V potential difference between the "power" and the "ground" pins [3]_ - the "power" pin corresponds to the "high" state (5V), and the "ground" to "low" (0V). The signal pin is the pin on which the signal is actually measured (or, when used as an output, the pin that sends the signal). |
| 20 | +All Smart I/O ports have built-in "pull-down" resistors between the power pins and the signal pins - these ensure that when the signal pin is "floating" (i.e. is not connected to any circuit), they consistently remain in a "low" state. |
21 | 21 |
|
22 | | -All DIO ports have built-in "pull-up" resistors between the power pins and the signal pins - these ensure that when the signal pin is "floating" (i.e. is not connected to any circuit), they consistently remain in a "high" state. |
| 22 | +.. warning:: The roboRIO had pull-up resistors instead of pull-down resistors, so the behavior of the Smart I/O ports is different from that of the roboRIO's digital input ports. This means that sensors designed for the roboRIO's digital input ports may have different wiring for the Smart I/O ports. |
23 | 23 |
|
24 | 24 | ### Connecting a simple switch to a DIO port |
25 | 25 |
|
26 | | -The simplest device that can be connected to a DIO port is a switch (such as a :ref:`limit switch <docs/hardware/sensors/proximity-switches:Mechanical proximity switches ("limit switches")>`). When a switch is connected correctly to a DIO port, the port will read "high" when the circuit is open, and "low" when the circuit is closed. |
| 26 | +The simplest device that can be connected to a DIO port is a switch (such as a :ref:`limit switch <docs/hardware/sensors/proximity-switches:Mechanical proximity switches ("limit switches")>`). When a switch is connected correctly to a DIO port, the port will read "low" when the circuit is open, and "high" when the circuit is closed. |
27 | 27 |
|
28 | | -A simple switch does not need to be powered, and thus only has two wires. Switches should be wired between the *signal* and the *ground* pins of the DIO port. When the switch circuit is open, the signal pin will float, and the pull-up resistor will ensure that it reads "high." When the switch circuit is closed, it will connect directly to the ground rail, and thus read "low." |
| 28 | +A simple switch does not need to be powered, and thus only has two wires. Switches should be wired between the *signal* and the *power* pins of the DIO port. When the switch circuit is open, the signal pin will float, and the pull-down resistor will ensure that it reads "low." When the switch circuit is closed, it will connect directly to the power rail, and thus read "high". |
29 | 29 |
|
30 | 30 | .. image:: images/digital-inputs-hardware/limit-switch-to-roborio.svg |
31 | 31 | :alt: Connecting a normally open limit switch to a DIO channel of the roboRIO. |
32 | 32 |
|
| 33 | +.. todo:: Update above image to use the Systemcore Smart I/O ports and wiring for pull-down resistors. |
| 34 | + |
33 | 35 | ### Connecting a powered sensor to a DIO port |
34 | 36 |
|
35 | 37 | Many digital sensors (such as most no-contact proximity switches) require power in order to work. A powered sensor will generally have three wires - signal, power, and ground. These should be connected to the corresponding pins of the DIO port. |
36 | 38 |
|
37 | 39 | .. image:: images/digital-inputs-hardware/hall-effect-sensor-to-roborio.svg |
38 | 40 | :alt: Connecting a Hall Effect sensor to a roboRIO DIO channel. |
39 | 41 |
|
| 42 | +.. todo:: Update above image to use the Systemcore Smart I/O ports. |
| 43 | + |
| 44 | +.. warning:: The roboRIO provided 5V power to the "power" pin of its DIO ports, whereas the Systemcore provides 3.3V. Sensors designed for the roboRIO's DIO ports may not work correctly when connected to the Systemcore's Smart I/O ports. Please consult with the sensor datasheet to ensure it can run from 3.3V. |
| 45 | + |
40 | 46 | ### Connecting a sensor that uses multiple DIO ports |
41 | 47 |
|
42 | 48 | Some sensors (such as :doc:`quadrature encoders <encoders-hardware>`) may need to connect to multiple DIO ports in order to function. In general, these sensors will only ever require a single power and a single ground pin - only the signal pin of the additional port(s) will be needed. |
43 | 49 |
|
44 | 50 | .. image:: images/digital-inputs-hardware/e4t-oem-miniature-optical-encoder-to-roborio.svg |
45 | 51 | :alt: Connecting a E4T Optical Encoder to two different DIO ports of the roboRIO. |
46 | 52 |
|
47 | | -.. |ground| unicode:: 0x23DA |
| 53 | +.. todo:: Update above image to use the Systemcore Smart I/O ports. |
48 | 54 |
|
49 | 55 | ## Footnotes |
50 | 56 |
|
51 | 57 | .. [1] More precisely, the signal reads "high" when it rises above 2.0V, and reads "low" when it falls back below 0.8V - behavior between these two thresholds is not guaranteed to be consistent. |
52 | | -.. [2] The roboRIO also offers 3.3V logic via the "MXP" expansion port; however, the use of this is far less common than the 5V. |
53 | | -.. [3] All power pins are actually connected to a single rail, as are all ground pins - there is no need to use the power/ground pins corresponding to a given signal pin. |
| 58 | +.. [2] All power pins are actually connected to a single rail, as are all ground pins - there is no need to use the power/ground pins corresponding to a given signal pin. |
0 commit comments