TS-8160-4500
Released Mar. 2011 | |
Product Page | |
Documentation | |
---|---|
Schematic | |
Mechanical Drawing |
Overview
The TS-8160 is a TS-SOCKET baseboard that provides an upgrade path for embeddedTS TS-7260 and TS-7800 products. This board accepts any TS-4xxx System-on-Module (SoM). It interfaces to the SoM via two TS-SOCKET standard 100-pin connectors and brings out the various ports to industry standard connectors. The TS-8160 is compatible with the TS-ENC720 enclosure.
TS-4500
See the TS-4500 page for functionality regarding the CPU, FPGA, and OS.
Cavium CNS2132 250MHz ARM9 |
Getting Started
Before attempting to apply power to the baseboard, perform the following steps while taking proper static discharge precautions
- Place the TS-8160 base board on a firm non-conductive surface.
- Place the COM1 "Console Enable" jumper in the console position so the debug port is brought out to the DB9 and COM1 headers.
- Carefully, insert the System-on-Module by aligning and pressing evenly and firmly onto the pair of mating connectors
- Connect the console serial terminal cable
- Connect the Ethernet cable is applicable.
- Apply power
- Monitor the TS-SOCKET SBC using a terminal emulator connected to the serial console port to verify that the board is operating properly
See the TS-4500 page for more details on dealing with the functionality of the System-on-Module (SoM).
Features
USB Host
The USB is available on two ports as a USB 2.0 host.
|
DIO header
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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
WARNING: | DIO are not 5V tolerant. Only SPI_MOSI on this header is 5V tolerant. |
LCD Header
The LCD header is designed around compatibility with our low cost LCD-LED: Alphanumeric 2x24 LCD. These I/O are manipulated through tsctl, or through manipulation of the TS-81xx registers directly. Connector CN8 is a 14 pin (2x7) 0.1" spacing header.
Pinout | Header | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
WARNING: | LCD_D0 thru LCD_D7 are 5V tolerant. LCD_WR#, LCD_RS, and LCD_EN are not. |
Power to the LCD header can be toggled by manipulating LCD Enable in the #Register Map. The LCD_5V pin can provide up to 1400mA, but this is a shared 5V rail and will depend on your power supply and what other devices are using that rail.
ADC Header
The Analog to Digital Converter consists of a 4-channel 16 bit sigma-delta converter and two, 2-channel analog switches. These are configured to allow input and conversion on two differential channels and 4 single ended channels. The 6-channel Analog to Digital signals are contained on connector HD5 which is a 16 pin (2x8) 0.1" spacing header. The connector layout and the signals carried by each pin are defined below. The input range for the differential input channels is 0- 2 VDC, and the input range on the single-ended channel is nominally 0-10 VDC.
Pinout | Header | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
CAN
CAN_H is on DB9 pin 4 and COM1 header pin 4
CAN_L is on DB9 pin 9 and COM1 header pin 9
You can find usage of the CAN port here.
Sleep mode
The TS-8160 features a AVR that has the ability to cut power to the System-on-Module (SoM) for a specified amount of time. You can also use the jumper labelled 'WAKE', or the press the button on SW1 to restore power to the SoM.
The ts8160ctl is available here.
Sleeping the board is essentially a shutdown. It is recommended that you have all of your filesystems in a read only state before running this command to avoid disk corruption. This example will simply shut down the SoM for 20 seconds.
ts8160ctl --sleep 20
Power consumption during sleep mode is approximately 100uA.
Note: | Sleep times will be rounded up to the granularity of sleep, which is 8 seconds for sleeps under ~3 days and 2048 seconds for longer sleeps. Actual sleep time will be +/- 10% the requested time due to low-power oscillator variation. |
COM ports
Port | Type | RX (or 485 +) | TX (or 485 -) | Notes |
---|---|---|---|---|
ttyS0 | RS232 | DB9 pin 2, COM1 header pin 2 | DB9 pin 3, COM1 header pin 3 | Only with console enable jumper on |
ttyS1 (XUART 0) | RS485 | DB9 pin 1, COM1 header pin 1 | DB9 pin 6, COM1 header pin 6 | Optional RS422 RX COM2 header pins 4(+) and 9(-) |
ttyS2 | RS232 | DB9 pin 2, COM1 header pin 2 | DB9 pin 3, COM1 header pin 3 | Only with console enable jumper off |
ttyS3 | RS232 | DB9 pin 8, COM1 header pin 8 | DB9 pin 7, COM1 header pin 7 | |
ttyS4 | RS232 | COM2 header pin 2 | COM2 header pin 3 | |
ttyS5 | RS485 | COM2 header pin 1 | COM2 header pin 6 | |
ttyS6 | RS232 | COM3 header pin 2 | COM3 header pin 3 | CTS available on pin 8 |
The COM headers follow a legacy pin configuration different from other pin header numberings. The COM headers are numbered thus:
1 | 6 |
2 | 7 |
3 | 8 |
4 | 9 |
5 | 10 |
Pin 1 corresponds to the pin next to the "dot" on the silk screen.
PC104 Header
See the TS-4500#PC104 section for more details on working with the PC104 bus.
The PC/104 connector consists of two rows of pins labeled A and B, the numbering of of which is shown below. The signals for the PC/104 are generated by the MAX240 PLD located on the baseboard. It converts the MUXBUS signals from the dual 100-pin System-on-Module (SoM) interface bus. Pin A1 is nearest to the SoM mounting hole.
Any of the IO on this board labelled DIO_ can be controlled through tsctl as PC104_A/B<pin>, or through manipulation of the registers directly.
# Start tsctl server if it is not already running.
# This only needs to be done once
tsctl --server &
# Lookup the logical DIO mapping of the PC104 header pin A16
eval `tsctl 127.0.0.1 System MapLookup PC104_A16`
# If you run this outside of the eval it will return:
# PC104_A16=138
# Toggle the DIO high and low:
tsctl 127.0.0.1 DIO Set $PC104_A16 high
tsctl 127.0.0.1 DIO Set $PC104_A16 low
You can also drive these DIO to manually manipulate the PC/104 address to make peripherals usable that require a higher range of address than provided by the default address space of the MUXBUS.
WARNING: | Most of the pins on the PC/104 bus are only 3.3 V tolerant. Refer to the schematic for more details. |
Register Map
All of these registers are intended for 16 bit access. On the TS-4500 this is accessed through a memory window that is not included in the default bitstream. See this page for more details. The SBUS examples include functions for accessing this general purpose memory window.
First set the MUXBUS configuration register so you can communicate with offboard devices.
ts7500ctl --address 0x20000 --poke16 0x181
After that you can use a simple C application to talk to these addresses:
#include <stdio.h>
#include "sbus.h"
int main()
{
short boardid;
sbuslock();
boardid = winpeek16(0x0);
sbusunlock();
printf("Board ID: %04X\n", boardid);
return 0;
}
Offset | Bits | Access | Description |
---|---|---|---|
0x0 | 15:0 | Read Only | Board ID (0x8100) |
0x2 | 3:0 | Read Only | PLD revision |
7:4 | Read/Write | Value to control PWM for LCD contrast | |
8 | Read/Write | TS-8100 USB Reset | |
9 | Read/Write | Controls ISA_RESET on the PC104 bus | |
10 | Read/Write | Enables a 14.3MHZ clock on the PC104 bus (B30) and the PLD (default 1) | |
11 | Read/Write | Enables the RS232 transceiver (default 1) | |
12 | Read/Write | Toggles 5V to the LCD header pin 1 (LCD_5V) | |
13 | Read/Write | Enable CAN1 standby | |
14 | Read/Write | Enable CAN2 standby | |
15 | Read/Write | Enables the PWM output for the contrast value | |
0x4 | 7:0 | Read/Write | DIO output data (header odd pins, bit 0 is pin 1) |
13:8 | Read/Write | PC104 header A21:A16 output data | |
15:14 | Read/Write | PC104 header B12:B11 output data | |
0x6 | 7:0 | Read/Write | LCD pins 14:7 output data |
8 | Read/Write | LCD Header pin 6 output data | |
9 | Read/Write | LCD Header pin 3 output data | |
10 | Read/Write | LCD Header pin 5 output data | |
11 | Read/Write | AVR MOSI | |
12 | Read/Write | AVR SCLK | |
13 | Read/Write | AVR RESET | |
14:15 | N/A | Reserved | |
0x8 | 7:0 | Read/Write | DIO Header odd pins 15:1 data direction |
13:8 | Read/Write | PC104 A21:A16 data direction | |
15:14 | Read/Write | PC104 B12:B11 data direction | |
0xa | 7:0 | Read/Write | LCD pins 14:7 data direction |
8 | Read/Write | LCD Header pin 6 data direction | |
9 | Read/Write | LCD Header pin 3 data direction | |
10 | Read/Write | LCD Header pin 5 data direction | |
15:11 | N/A | Reserved | |
0xc | 7:0 | Read Only | DIO Header dd pins 15:1 input data |
13:8 | Read Only | PC104 A21:A16 input data | |
15:14 | Read Only | PC104 B12:B11 input data | |
0xe | 7:0 | Read Only | LCD header pins 14-7 input data |
8 | Read Only | LCD Write/Read (pin 6) input data | |
9 | Read Only | LCD Register Select (pin 3) input data | |
10 | Read Only | LCD Enable (pin 5) input data | |
11 | Read/Write | AVR MISO | |
15:12 | N/A | Reserved |
Errata
TS-8160 AVR will not wake from sleep with button
Synopsis | Rev 2 of the AVR software does not correctly use the WAKE button/pins |
Severity | Minor |
Class | Software bug |
Affected | TS-8160 AVR Rev 2 |
Status | Workarounds available, fixed in Rev 3, shipping on June 12th 2012 |
Description:
Revision 2 of the AVR software did not correctly enable the interrupt for the IO port that the WAKE button/pins are on. Because of this sleep could not be interrupted without cutting power to the TS-8160. The only way to fix this is by updating to Rev 3. There are two ways to do this, see below for more information.
Workaround: The TS-8160 AVR software revision can be checked with:
ts8160ctl --info
If the Revision field shows "2" then this device cannot wake up from a sleep. The fix is as follows:
1) The System-on-Module (SoM) NEEDS to be a TS-4200. Currently none of our other SoMs can reprogram the AVR. If this is the case, an RMA can be submitted and we will reflash the AVR here. Submit an RMA request here.
2) Download this tarball, unzip it in the fastboot shell on the TS-4200 while booted with the TS-8160. Follow the instructions contained in the README file. Once this is completed, reboot, and the new AVR software will be running.
Due to space limitations, it is best to download and unpack in the /tmp folder of the fastboot shell
Product Notes
FCC Advisory
This equipment generates, uses, and can radiate radio frequency energy and if not installed and used properly (that is, in strict accordance with the manufacturer's instructions), may cause interference to radio and television reception. It has been type tested and found to comply with the limits for a Class A digital device in accordance with the specifications in Part 15 of FCC Rules, which are designed to provide reasonable protection against such interference when operated in a commercial environment. Operation of this equipment in a residential area is likely to cause interference, in which case the owner will be required to correct the interference at his own expense.
If this equipment does cause interference, which can be determined by turning the unit on and off, the user is encouraged to try the following measures to correct the interference:
Reorient the receiving antenna. Relocate the unit with respect to the receiver. Plug the unit into a different outlet so that the unit and receiver are on different branch circuits. Ensure that mounting screws and connector attachment screws are tightly secured. Ensure that good quality, shielded, and grounded cables are used for all data communications. If necessary, the user should consult the dealer or an experienced radio/television technician for additional suggestions. The following booklets prepared by the Federal Communications Commission (FCC) may also prove helpful:
How to Identify and Resolve Radio-TV Interference Problems (Stock No. 004-000-000345-4) Interface Handbook (Stock No. 004-000-004505-7) These booklets may be purchased from the Superintendent of Documents, U.S. Government Printing Office, Washington, DC 20402.
Limited Warranty
See our Terms and Conditions for more details.