TS-NVRAM2
Note: | This product manual is written with the intent to support the TS-NVRAM2 on Technologic Systems' products using Intel and AMD x86 architectures, and the ARM-based Cirrus Logic processor. For other Technologic Systems products, there may be supplementary compatibility information contained in the computing product's manual that should be used in conjunction with and supersede the information found in this manual. |
Product Page | |
Documents | |
---|---|
Schematic |
Introduction
The TS-NVRAM2 is a PC/104 expansion card that adds up to 2 MB of nonvolatile high- speed battery-backed RAM. It can be arranged as 8 bit or 16 bit wide memory and can be configured as paged memory or linear memory (SEE NOTE). The TS-NVRAM2 eliminates any wear-out failure and write cycle latency inherent in all Flash devices This product uses a multi-layer PCB with power and ground planes to minimize noise and EMI issues. The TS-NVRAM2 only requires a single 5V power supply.
Note: | The TS-7350 and TS-7370 must be configured to use paged memory, there is an incompatibility with linear addressing mode due to limited addressing space. |
Getting Started
X86 Architecture
Install only jumpers 3 and 4 on the TS-NVRAM2, this will put the board in 8-bit mode and set the base address for all registers in the I/O space at 0x140. After a system reset, only the eight I/O registers will appear on the PC/104 bus (no memory range will be decoded) -- this will avoid any conflicts with any other devices. Next write out 0x46 to I/O location 0x145 (Mode Register). This will configure the TS-NVRAM2 to use paged memory and will make it appear in memory space at 0xD0000 to 0xD7FFF (a 32 KB window). This memory range is suggested, since this range is typically free in most x86 platforms, but any 32KB range from 0xA0000 thru 0xDFFFF can be selected (see Mode register details). Now the NVRAM memory can be accessed at the memory addresses 0xD0000 to 0xD7FFF. Any one of the 64 pages can be selected by writing to the page register at I/O location 0x144. Since each page is 32 KB and there are 64 pages this allows access to all 2MB of NVRAM. Up to four TS-NVRAM boards can be installed to get up to 8MB of non-volatile memory.
ARM Architecture
Ensure no jumpers are installed on the TS-NVRAM2 board. This will put the board in 16- bit mode and will set the base address for all registers accesses in the I/O space to 0x11E0_0140. After system reset, only the eight I/O registers will appear on the PC/104 bus (no memory range will be decoded) -- this will avoid any conflicts with any other devices. Next write out 0x80 to 0x11E0_0145 (Mode Register). This will configure the TS_NVRAM2 to use linear memory and will make it appear in the memory space at 0x2A80_0000 to 0x2A9F_FFFF (a 2MB range). Two TS-NVRAM2 boards could be used in a system to get 4MB of linear non-volatile memory.
PC/104 Bus Interface
The TS-NVRAM2 features a single 64-pin PC/104 connector that allows standard 8-bit data bus access. This is used to support the standard 8-bit mode for any PC/104 system. It is possible to access the TS-NVRAM2 board in full 16-bit mode if using a TS- 72xx product. These Technologic System ARM-based SBC products can do full 16-bit data accesses using only the 64-pin connector.
A Xilinx Programmable Logic Device (PLD) is used for all address decode and other logic required to interface the PC/104 bus to the Maxim DS1321controller as well as the 2 Megabytes of RAM. This allows for a great amount of flexibility for adding any special options that may be required in the future.
Maxim DS1321 Controller
The TS-NVRAM2 uses a Maxim DS1321 controller, which performs the function of controlling whether the PC/104 5V power is used to power the SRAM chips, or whether a 3V lithium battery is used. When input power falls below 4.25 volts, the DS1321 will switch the SRAM chips over to using the lithium battery so that the memory chips always see uninterrupted power. While input power is below 4.25 volts, all accesses to the SRAM chips are inhibited. This prevents any data corruption during power failures.
In addition to battery-backup support, the DS1321 performs the important function of monitoring the remaining capacity of the lithium battery and providing a warning before the battery reaches end-of-life. Because the open-circuit voltage of a lithium backup battery remains relatively constant over the majority of its life, accurate battery monitoring requires loaded-battery voltage measurement. The DS1321 performs such measurement by periodically comparing the voltage of the battery to an internal precision reference with the battery loaded. The battery is loaded by switching on an internal resistive load for a very short time interval during which the measurement is made. If the battery voltage falls below the reference voltage under such conditions, the battery will soon reach end-of-life. When the DS1321 sets its battery-warning pin, the PLD will turn on the red LED. (Note: the red LED is powered by the main 5V power and has no effect on battery life). The LED register will also indicate that the battery needs replacing.
In most applications, the battery will never need replacing since the standby current for a 2MB SRAM bank is typically in the 2-4 microampere range. Using the 600 mA-hour lithium battery (CR2450 coin cell), this results in a typical 15-30 year life span. But if the unit is operated at high temperatures for its entire life, this will lower the battery life. For example, if the TS-NVRAM2 board is operated at 70 degrees Celsius continuously, the lithium battery is likely to fail after 3-4 years.
Registers
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Address: Base + 0 (Read Only) Definition: This register allows one to determine the board ID. Bit Description: ID_1: Identification byte is hard coded to 0x77.
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Address: Base + 1 (Read Only) Definition: This register allows one to determine the board ID. Bit Description: ID_2: Identification byte is hard coded to 0xD9.
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Address: Base + 2 (Read Only) Definition: This register allows one to determine the revision of the PLD. Bit Description: REV: The revision number of the PLD. 0x01 = Initial Revision
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RSVD | GREEN | RED |
Address: Base + 3 (Read Only) Definition: This register allows one to determine the state of the LEDs. Bit Description: GREEN: When this bit is set it indicates the green led is on, when this bit is clear it indicates the green LED is off. The green LED is on when the PC/104 power is greater than 4.5V. RED: When this bit is set it indicates the red led is on, when this bit is clear it indicates the red LED is off. If the red LED is on, the battery is near failure. RSVD: Reserved.
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RSVD | RSVD | PAGE_SELECT |
Address: Base + 4 (Read/Write) Definition: This register allows one to select the current page when in paged mode. At reset PAGE_SELECT is set to 0x00. Bit Description: PAGE_SELECT: When in paged mode this register allows one to select one of 64 pages for NVRAM access (each page is 32 KB). This allows up to 2 MB of NVRAM. RSVD: Reserved.
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
LINEAR | PAGED | TEST_MODE | RSVD | DECODE | MEM_SELECT |
Address: Base + 5 (Read/Write) Definition: This register provides various system configuration options. This register defaults to zero indicating NVRAM doesn't appear anywhere in memory space after power up or a system reset. Note: When the LINEAR bit is set PAGED and MEM_SELECT bits 1 through 3 are ignored. Bit Description: LINEAR: When this bit is set NVRAM appears as linear memory. This mode is not compatible with x86- based systems. PAGED: When this bit is set NVRAM appears in a 32 KB window. One can use the PAGE_SELECT register to select the current page. This bit must be set on x86- based systems. TEST_MODE: This bit is used for factory testing to change between 8 and 16 bit mode. DECODE: When this bit is clear only address lines 15 through 19 are used for decoding (recommended for x86 platforms). When this bit is set address lines 15 though 21 are used for decoding (recommended for TS-ARM based platforms). MEM_SELECT: When in paged mode this register can be used to select the base address. If the DECODE bit is set, base addresses are as follows.
MEM_SELECT | Base Address |
---|---|
000 | 0x1180_0000 |
001 | 0x1181_0000 |
010 | 0x1182_0000 |
011 | 0x1183_0000 |
100 | 0x11B0_0000 |
101 | 0x11B1_0000 |
110 | 0x11B2_0000 |
111 | 0x11B3_0000 |
If the DECODE bit is clear, base addresses are as follows.
MEM_SELECT | Base Address |
---|---|
000 | 0xA0000 |
001 | 0xA8000 |
010 | 0xB0000 |
011 | 0xB8000 |
100 | 0xC0000 |
101 | 0xC8000 |
110 | 0xD0000 |
111 | 0xD8000 |
When in linear mode MEM_SELECT bit 0 determines the base address.
Bit0, MEM_SEL |
Memory Width |
Base Address |
---|---|---|
0 | 16 | 0x2180_0000 |
1 | 16 | 0x21A0_0000 |
RSVD: Reserved.
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RSVD | JP5 | JP4 | RSVD | JP2 | JP1 | RSVD |
Address: Base + 6 (Read Only) Definition: This register allows one to determine the state of the jumpers. Bit Description: JP5: This bit indicates the state of JP5, set indicates the jumper is on. JP4: This bit indicates the state of JP4; set indicates the jumper is on. JP2: This bit indicates the state of JP2; set indicates the jumper is on. This bit indicates the state of JP1; set indicates the jumper is JP1: on. RSVD: Reserved.
Jumpers
JP1 and JP2 determine the base address, base address configurations are shown below.
Base Addr. | 0x140 | 0x148 | 0x160 | 0x168 |
---|---|---|---|---|
JP1 | Off | On | Off | On |
JP2 | Off | Off | On | On |
JP3 and JP4 determine data width, data width configurations are shown below (JP3 and JP4 must both be on or must both be off).
Data Width | 8-Bit | 16-Bit | Invalid | Invalid |
---|---|---|---|---|
JP3 | On | Off | Off | On |
JP4 | On | Off | On | Off |
Current Drain
The TS-NVRAM2 uses approximately 50 mA of current from the PC/104 bus 5V supply. When the PC/104 5V is not present, the RAM chips are powered by the lithium battery (CR2450). Approximately 2-4 uA of backup current is required to power the RAM chips in this mode. This can be measured with a DVM by measuring the voltage at the test point labeled .Drain Test. with respect to ground. Every microamp of drain current from the battery causes a negative 100 microvolts of voltage.
Usage with 3rd party devices
Please note that while efforts are made to follow the PC/104 specification this peripheral is not tested with third party SBCs or connected peripherals. This card is not guaranteed to operate as intended when third party PC104 peripherals or SBCs are connected.