8160-dioheader: Difference between revisions

From embeddedTS Manuals
(Created page with "The DIO is manipulated through tsctl, or through manipulation of the registers directly. Using tsctl will be the easiest way to communicate with the IO....")
 
No edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 4: Line 4:


<source lang=bash>
<source lang=bash>
# Start tsctl server if it is not already running.
# The easiest approach is to invoke tsctl directly.
# This only needs to be done once
# Do not do this if the tsctl server is already running.
tsctl --server &
# Toggle the DIO high and low directly as follows:
tsctl DIO SetAsync 8160_DIO_1 high
tsctl DIO SetAsync 8160_DIO_1 low
 
# If you want to share the tsctl functionality
# among multiple processes or access it via TCP/IP,
# you will need to run the tsctl server and access it as a client:
tsctl --server
 
# Once the server is started it will daemonize and you can access it over TCP/IP.
# Toggle the DIO high and low via the tsctl client:
tsctl @127.0.0.1 DIO SetAsync 8160_DIO_1 high
tsctl @127.0.0.1 DIO SetAsync 8160_DIO_1 low
 
# Note that the '@' is optional if the host name is an IP address of form X.X.X.X
# For consistency we recommend always including the '@'
 
# Note in the above example, the values 8160_DIO_1, high and low are automatically
# looked up to produce integer values. You can also do this manually, as show below:


# Lookup the logical DIO mapping of the dio header pin 1
# Lookup the logical DIO mapping of the dio header pin 1
eval `tsctl 127.0.0.1 System MapLookup DIO_1`
eval `tsctl 127.0.0.1 System MapLookup 8160_DIO_1`
# If you run this outside of the eval it will return:
# If you run this outside of the eval it will return:
# DIO_1=130
# System_MapLookup_0=XXX
# where XXX is the actual logical DIO number.
# If you look up "high" it will return 1, while "low" will return 0
# note that lookups are case-insensitive


# Toggle the DIO high and low:
# Toggle the DIO high and low:
tsctl 127.0.0.1 DIO Set $DIO_1 high
tsctl @127.0.0.1 DIO SetAsync $System_MapLookup_0 high
tsctl 127.0.0.1 DIO Set $DIO_1 low
tsctl @127.0.0.1 DIO SetAsync $System_MapLookup_0 low
 
</source>
</source>


Line 31: Line 53:
|-
|-
| 1
| 1
| DIO_1
| 8160_DIO_1
| Pulled high by R124
| Pulled high by R124
|-
|-
Line 39: Line 61:
|-
|-
| 3
| 3
| DIO_3
| 8160_DIO_3
| Pulled high by R123
| Pulled high by R123
|-
|-
| 4
| 4
| I2C_CLK
| I2C_CLK
| See [[TS-4200#I2C]] for more details.
|  
|-
|-
| 5
| 5
| DIO_5
| 8160_DIO_5
| Pulled high by R122
| Pulled high by R122
|-
|-
| 6
| 6
| SPI_CS#
| SPI_CS#
| See [[TS-4200#SPI]] for more details.
|  
|-
|-
| 7
| 7
| DIO_7
| 8160_DIO_7
| pulled high by R121
| pulled high by R121
|-
|-
| 8
| 8
| I2C_DAT
| I2C_DAT
| See [[TS-4200#I2C]] for more details.
|  
|-
|-
| 9
| 9
| DIO_9
| 8160_DIO_9
| Pulled high by R120
| Pulled high by R120
|-
|-
| 10
| 10
| SPI_MISO
| SPI_MISO
| See [[TS-4200#SPI]] for more details.
|  
|-
|-
| 11
| 11
| DIO_11
| 8160_DIO_11
| Pulled high by R119
| Pulled high by R119
|-
|-
| 12
| 12
| SPI_MOSI
| SPI_MOSI
| See [[TS-4200#SPI]] for more details.
|  
|-
|-
| 13
| 13
| DIO_13
| 8160_DIO_13
| Pulled high by R118
| Pulled high by R118
|-
|-
| 14
| 14
| SPI_CLK
| SPI_CLK
| See [[TS-4200#SPI]] for more details.
|  
|-
|-
| 15
| 15
| DIO_15
| 8160_DIO_15
| Pulled high by R117
| Pulled high by R117
|-
|-

Latest revision as of 11:17, 9 August 2013

The DIO is manipulated through tsctl, or through manipulation of the registers directly.

Using tsctl will be the easiest way to communicate with the IO. This example will show the simplest way to toggle the IO, but see the tsctl page for more advanced usage.

# The easiest approach is to invoke tsctl directly.
# Do not do this if the tsctl server is already running.
# Toggle the DIO high and low directly as follows:
tsctl DIO SetAsync 8160_DIO_1 high
tsctl DIO SetAsync 8160_DIO_1 low

# If you want to share the tsctl functionality
# among multiple processes or access it via TCP/IP,
# you will need to run the tsctl server and access it as a client:
tsctl --server

# Once the server is started it will daemonize and you can access it over TCP/IP.
# Toggle the DIO high and low via the tsctl client:
tsctl @127.0.0.1 DIO SetAsync 8160_DIO_1 high
tsctl @127.0.0.1 DIO SetAsync 8160_DIO_1 low

# Note that the '@' is optional if the host name is an IP address of form X.X.X.X
# For consistency we recommend always including the '@'

# Note in the above example, the values 8160_DIO_1, high and low are automatically 
# looked up to produce integer values. You can also do this manually, as show below:

# Lookup the logical DIO mapping of the dio header pin 1
eval `tsctl 127.0.0.1 System MapLookup 8160_DIO_1`
# If you run this outside of the eval it will return:
# System_MapLookup_0=XXX
# where XXX is the actual logical DIO number. 
# If you look up "high" it will return 1, while "low" will return 0
# note that lookups are case-insensitive

# Toggle the DIO high and low:
tsctl @127.0.0.1 DIO SetAsync $System_MapLookup_0 high
tsctl @127.0.0.1 DIO SetAsync $System_MapLookup_0 low
Pinout Header
Pin Name Notes
1 8160_DIO_1 Pulled high by R124
2 Ground
3 8160_DIO_3 Pulled high by R123
4 I2C_CLK
5 8160_DIO_5 Pulled high by R122
6 SPI_CS#
7 8160_DIO_7 pulled high by R121
8 I2C_DAT
9 8160_DIO_9 Pulled high by R120
10 SPI_MISO
11 8160_DIO_11 Pulled high by R119
12 SPI_MOSI
13 8160_DIO_13 Pulled high by R118
14 SPI_CLK
15 8160_DIO_15 Pulled high by R117
16 CPU_3.3V Do not draw more than 12mA
16 15
14 13
12 11
10 9
8 7
6 5
4 3
2 1
WARNING: DIO are not 5V tolerant. Only SPI_MOSI on this header is 5V tolerant.