Persistor® CF2

The field-proven Persistor CF2 packs sophisticated control and data logging capabilities into a compact and very low-power module to help you turn your portable or remote instrumentation ideas into deployable hardware. It reduces both development time and success risks with a mature development environment, industrial grade build quality, plus a rich set of peripheral and I/O features - at a cost that makes the CF2 an undeniable value.

Reliability…
The CF2 was introduced in 2002 as a form compatible successor to the Persistor CF1. Thousands of CF2s have been employed in applications where low power, small size and high reliability are necessary to successfully collect, manage, and record data while simultaneously controlling related instrumentation hardware. Examples include a variety of scientific buoys, drifters, sea-gliders, ocean bottom seismic monitors, polar ice observatories, robotic aircraft, guided parachute drop systems, multi-channel synchronized event recorders, artillery and missile flight recorders, animal tags and monitors, and the first deployable weather station to be placed in the path of a tornado. The CF2 operating system and API have been field tested by hundreds of users with diverse applications and are considered mature and reliable. All components are industrial temperature rated, procurement and production are tightly managed using reliable US companies, and each unit is carefully inspected and tested by Persistor employees. CF2 customers require reliable operation, consistent quality, present and future stock availability, and Persistor Instruments strives to meet those needs.

Hardware Overview…
The CF2 features a Freescale (Motorola) 68332 as the main controller. Resources include a hardware UART, an SPI bus (simplified by Persistor's exclusive Queued PicBUS API), a Periodic Interval Timer (PIT), settable system clock (up to 16MHz), low power stop modes, and a 15 channel Time Processing Unit (TPU) for input capture, transition counting, period or pulse width measurement, pulse width modulation, configurable UARTs or simple I/O.

A Texas Instruments MSP430 coprocessor manages a very low power (>10uA) suspend mode where all hardware except itself and SRAM is shut down. The MSP430 provides a real time clock so the suspend mode can be timed for a period or until a time. The MSP430 also monitors the main power and switches to a backup battery input (if provided) and forces a suspend condition if the main battery fails.

A standard CompactFlash header is built onto the CF2. The memory card is not required for operation, but is intended for data storage. The memory card is fully integrated with the operating system and appears as the C:\> drive of the CF2. Directories and files are supported by a FAT32 compatible operating system, permitting up to 137GB memory cards, as and when they become available.

Applications are normally stored in on-board non-volatile flash, but they may also be loaded into SRAM serially or from the CompactFlash card, and run manually or at startup from an optional autoexec.bat file.

The CF2 OS manages an 8KB virtual EEPROM in the on-board flash for persistent storage of configuration data as named variables. Each entry is stored with a 16bit CRC and the VEE is verified whenever the CF2 boots or when a variable is fetched. Examples of VEE variables are the default baud rate, or sensor calibration data.

Complete OS Ready To Run, Ready To Adopt, Ready To Help…
The CF2 offers a relatively sophisticated operating system which can be entirely or partially adopted by the programmer. When a brand new CF2 is powered up, a minimal Persistent Boot Monitor (the PBM) looks to see if a CompactFlash card is installed, determines if the CF2 is set to boot a user application, a batch file on the memory card, or the factory installed PicoDOS operating system, and then launches the appropriate program. If PicoDOS is launched, then the CF2 will be operating in an interactive mode with DOS like commands for operations such as setting the clock, getting a directory list of memory card contents, formatting the memory card, setting the baud rate, checking the software version and X modem and Y modem file transfers. PicoDOS can load and launch user applications and manages all preparation and placement into the correct location in memory.

Programmers can write stand-alone applications, or use ToPICO programming stationary to select their choice of built-in PicoDOS commands plus their own new commands for new applications. For instance, the programmer might disable all the PicoDOS commands except for setting time and then add a command to calibrate a sensor and a command to launch a data logging program. ToPICO contains the command processor parsing routines so an application can be written to be launched with a complex command line containing function specific parameters and switches for truly customized operation. An example program, called PicoDAQ comes free with the CF2 development kit that demonstrates a program written with ToPICO stationary.

There are numerous ways to run user applications on the CF2. Persistor's Motocross terminal emulation program supports 115,200 baud downloads to SRAM for rapid interactive development, to flash for deploying bootable applications, or to the CompactFlash card where applications are saved as .PXE executables that can be launched from PicoDOS, user applications, or AUTOEXEC.BAT files. For maintenance and field update purposes, a CF2 can always be forced back into PBM mode as long as the RESET and IRQ5 signals are accessible.

An additional feature available for customer production control is the BACKROM command that permits a user to make a complete load file from one CF2 that can be loaded into other CF2(s) that will contain an exact duplicate of the original CF2's software versions, user application, and persistent variables.

Programming…
Programming for the CF2 is done in C with CodeWarrior Development Studio for Palm OS. This necessary software is now available for free with your first starter kit and works properly in modern Windows PCs. CodeWarrior is a complete Integrated Development Environment (IDE) providing an editor, compiler, complete ANSII C library, project management, multi targeting, and stationary support. Persistor provides a companion application, called Motocross, which acts as a terminal emulation program and loader for transferring compiled programs to the CF2.

Programmers receive a rich PicoDEV library of hardware drivers and useful functions specific to the CF2 and benefit from years of field testing, refinement and bug elimination.

Type Summary of PicoDEV drivers, functions and macros
QPB (Queued PicoBUS) functions treat SPI devices as if they are installed in virtual slots
PIT (Periodic Interrupt Timer) allow the programmer to manage timed events called PITchores
SCI, EIA (Serial Controller Interface) main UART config, flow control, get & put, and turning level drivers off
QR Query Reply functions for interacting with the user over the console
CMD for validating and parsing command lines
VEE (Virtual EEPROM) for fetching and storing persistent variables
Pin, PIO in line macros and standard C functions for simple I/O
TPU TPU initialization and interrupt handling
TU for handling TPU ports configured as software UARTs
LP, QS, PWR Low Power mode functions - LPStop, module powering and suspend mode
DIR DOS directory functions
IEV Interrupt and exception vector wrapper functions
RTC Real Time Clock
PB for setting up and managing a Ping Pong Buffer
PZ PicoZOOM optimizes CompactFlash card operations for improved speed
CheckSum, CRC Checksum and CRC functions
CS Chip Select Drivers for memory mapped devices
CIO, ATA, CF, misc Low level drivers for console I/O, ATA, CompactFlashCard, and utility functions
LED drivers for two on-board red/green LEDs

Persistor does not provide programming assistance, but there are dozens of published programming examples available, and if you need more help we can direct you to experienced third-party programmers who offer their services for hire. The following table lists some of the more useful examples available.

Name Supported Advanced Programs
CommLogger This program turns the CF2 into an RS232 data logger. Whatever data is received on the main UART is appended to a single data file on the CompactFlash card. The CF2 waits in LPStop, consuming about 1mA, when no data is being received.
PicoDAQ Stores ADC to a CompactFlash data file as ASCII or Binary, with choice of start and stop options, number of channels, and variable sampling rate. Several versions of this program are available, from a simple command line launch to a ToPICO version with QR launch option. The construction of this PIT managed data logging program limits it to less than 1000 samples per second. This program can be compiled to run on the 12 bit ADC on our R212 base board or the 16bit ADC on our R216AU base board (both are 8 channels).
SPIIIDAQ SPIIIDAQ is a high speed foreground function for sampling an ADS8344 16bit ADC at up to 64,000 samples per second. Demonstration program is ready to compile and run with a test start and stop wrapper, but you will want to write your own program to activate and deactivate this complete routine as needed for your application.
SyncSPDQ This example demonstrates running SPIIIDAQ on multiple slave CF2s with synchronized timing pulses from a single master CF2. Data can be recorded with temporal error of just a few microseconds between the master and all the slaves.
Selected Supported Examples from PicoDEV CD
A/D Examples These examples demonstrate getting data from an SPI ADC device, working from simple to fast sampling, low power sampling, and writing to a data file on CompactFlash.
RS232 Examples Simple examples of moving data from the main SCI UART into a data file on the compact flash card.
TPU UARTS A suite of examples showing how to configure up to 14 TPU lines as individual UARTs with independent direction and BAUD rates, move the console to a TPU UART, daisy chain TPU UARTS together to send and receive data to confirm the code.
VEE Example This example demonstrates storing and retrieving variables saved in the virtual EEPROM.
Watchdog Although the watchdog is not necessarily appropriate for every application, there is an example for those who require it.
Selected Examples posted online
SerRec_lp A starting point for users who wish to write their own data logger for the main SCI UART. Data is buffered using ping pong buffers and written to the CompactFlash.
TASKMAN Demonstrates various techniques to put the CF2 into several low power modes until a task needs to be completed.
NMEA examples Several examples of receiving NMEA data, processing it, and sending it on both the main UART and the TPU UART.
PTA An example of using the TPU Programmable Time Accumulator to measure the high period of an event.
FQM An example of using the TPU to measure a signal frequency.
NITC An example of using the TPU New Input Transition Counter, and also an example of writing a TPU wrapper function.
Simple PPB and PZ An example of using a ping pong buffer and picoZOOM to optimize write speed to a CompactFlash data file.
I/O expansion Schematic and code to expand the available ports using a MAX7301
16 ch of 5V ADC The CF2 is a 3.3 volt machine, but this schematic example shows how to connect a pair of ADS8344 powered at 5 volts for 0-5 volt inputs.

Hardware Expansion…
The CF2 is designed to be seated into an application specific platform board. The 90 connections are made on durable, gold-plated, 0.025" square pins on 0.1" center spacing. The CF2 can select attached devices so that several functional boards can be stacked under the CF2 if desired. Several platform boards are offered by Persistor Instruments (PII) while others are manufactured and offered by an independent company; Oceanographic Embedded Systems (OES).

Name
Type
From Size (in) Description
R212
base
PII
3 x 5
- 8 channel, 12 bit, 0-2.5V ADC
- Connections for power, ADC and communications
- Small prototyping area and function buttons
- Backup battery
R216AU
base
PII
3 x 5
- 8 channel, 16 bit, 0-2.5V ADC
- RS232 driver and jacks for two auxiliary TPU UARTS
- Connections for power, ADC and communications
- Small prototyping area and function buttons
- Backup battery
MRCP
base or stack
PII
1.4 x 6
- 8 channel, 16 bit, 0-2.5V ADC
- jack for one auxiliary TPU UART using spare CF2 RS232 driver
- Connections for ADC and communications
- Small prototyping area and function buttons
- Backup battery
- Intended for deploying the CF2 in a tube
U4S
stack
OES
2 x 3
- Adds 4 receive and 4 transmit RS232 channels
- Optional RS485 transceiver (one set)
USB2
stack
OES
1.5 x 2.6
- USB mini-B for off loading files directly to PC
- Transfer rate approximately 200Kbytes/sec
AD16S2
stack
OES
2 x 3
- 4 channel, 16 bit ADC
- +/- 10 volt input range
- up to 40K SPS
AD24
base
OES
3 x 5
- 24-bit delta-sigma ADC with 1 to 64 programmable gain amplifier
- 8 channels with fully differential +/-VREF or 0V to VREF inputs
- Backup battery and communication jack

Getting Started…
The CF2 is attractively priced for OEM production as well as for single prototype projects. For between $580 and $835 you can purchase everything needed to build an application for the CF2. Starter kits include the CF2, a CompactFlash memory card, a base board and cables*. The first starter kit purchased includes the complete CodeWarrior IDE and Persistor PicoDEV CD containing the additional CF2 libraries and Motocross terminal application**. The Getting Started guide will get you from installation to compiling your first project to loading and running it in less than an hour.
* without a serial port, a USB to serial adapter will be required.
**Additional copies of CodeWarrior and PicoDEV are not necessary but may be purchased for a minimal cost.

Summary…
2.5MIPS performance with 16MHz clock rate
3.3 Volt operating voltage
Built in power regulator accepts 3.6 to 20 volt input
Low Current Capability:
<10uA Suspend
<250uA LPStop (No CompactFlash Card)
5mA to 50mA Run
Built in CompactFlash header
1MB Flash, 1MB SRAM, 8KB virtual EEPROM
Real Time Clock with battery backup
RS232: 1 SCI UART and up to 15 TPU UARTs
15 TPU I/O pins offer DIO, FQM, NITC, OC, PTA, PWM, SIOP, UART
Code adjustable system clock for current drain optimization
-40C to +85C Full Industrial Temperature Range
$395 @ qty 1, $349 @ qty 100, complete starter kits from $580

More Information…
CF2 Getting Started Guide (PDF)
CF2 Programmers Guide (PDF)
CF2 API Reference (PDF)
CF2 programming examples

(Part Number PERCF21M)