VIRTUAL PERIPHERALS DESCRIPTION SOURCE FILE
Download File
sx demo (6vps) This demo includes a 19.2k baud UART, two PWM outputs, a 16-bit independent timer, and two 8-bit A/D converters, all implemented as Virtual Peripherals, in software. This is compatible with the SX Demo Board from Parallax, and is the same code is shipped with the Parallax tools.

sxdemo.src

Power V.P. Demo (16 VPs) This demo includes six 19.2k baud UARTS, four PWM outputs, four 16-bit independent timers, and two 8-bit A/D converters, all implemented as Virtual Peripherals, in software. This is not compatible with the SX Demo Board from Parallax, but is a very impressive demonstration of the type of power that software can provide on the right kind of silicon.

powervp.src

DTMF I/O This application combines DTMF input and output. Designed to be compliant with the Scenix SX Modem evaluation board.

Source code currently available only by request.

Bell-202 1200Baud FSK Modem This application combines Bell-202 1200Baud FSK I/O, DTMF output and 1200bps UART. Also includes AT command interface. Designed to be compliant with the Bell-202 specification and Scenix SX Modem evaluation board

Source
PDF

Running 8 Different Virtual Peripherals This example is a super set of the complex solution. It includes one 19.2k baud, UART, two 8-bit A/D converters, two PWM outputs, one I2C serial link, and two 16-bit independent timers. In addition following 3 Virtual Peripherals running concurrent: Time clock (keeps count in msec), a software execution path switcher and push button detection and debounce.

8vp.src

2400-230.4K UART This is a simplified software module that communicates over an RS-232 port to a PC and will echo back what is received. This is compatible with the SX Demo Board. uart_vp.src
PDF
Eight UART (19.2k Baud) This software configures the Port B pins as inputs and Port C pins as outputs for the respective UARTs (i.e., UART0=RB.0+RC.0, UART1=RB.1+RC.1, ...). This code is not compatible with the SX Demo Board provided by Parallax, but offers an impressive example of the power of virtual peripherals. uarts.src
8-Bit PWM This is a software module that creates an 8-bit PWM signal on one output port pin. This is compatible with the SX Demo Board. pwm_vp.src
PDF
Multiple PWM
Outputs
This example code provides 8 PWM outputs on the PORT B pins. Each PWM is individually adjustable (through code modifications), for different duty cycles. This should be used to toggle LED's or drive small speakers directly off the PORT B pins, although frequencies of up to 1MHz are available. pwms.src
8-Bit ADC
The traditional 8-Bit A/D Converter relies on comparison with a known reference, through an amplifier, to adjust for the difference in the unknown signal. With some software tricks, we can implement a simple 8-bit A/D converter on any CMOS input to the SX device. This is compatible with the SX Demo Board. adc_vp.src
PDF
16-Bit Timer
A simple virtual peripheral to create a 16-bit independent timer. Each timer only consumes 11 instruction cycles. This is compatible with the SX Demo Board. timer_vp.src
PDF
I2C Master
Interface
This software works with the SX Demo Board provided by Parallax to write to, read from or erase the serial EEPROM memory device. i2cm_vp.src
PDF
I2C Slave
Interface
This software works with the SX Demo Board provided by Parallax to write to, read from or erase the serial EEPROM memory device. i2cs_vp.src
PDF

SX to SX SPI Interface

This application note provides an example of data transfer between two SX microcontrollers through the SPI data bus. This demo consists of two programs - DEMO3M.SRC and DEMO3S.SRC, which correspond to the SPI Master and SPI Slave sides accordingly. The schematic file, spischdemo3.pdf is also provided. demo3m.src
demo3s.src
sxschdemo3.pdf
SPI/uWire
Low-speed Master
Interface
These Virtual Peripherals add SPI communication capability to the SX. This suite of routines cover all possible variations of SPI with high and low-speed versions of both master and slave mode operation. spi_ml.src
SPI/uWire
High-speed Master
Interface
These Virtual Peripherals add SPI communication capability to the SX. This suite of routines cover all possible variations of SPI with high and low-speed versions of both master and slave mode operation. spim.src
SPI/uWire
High-speed Slave
Interface
These Virtual Peripherals add SPI communication capability to the SX. This suite of routines cover all possible variations of SPI with high and low-speed versions of both master and slave mode operation. spis.src
Stepper Motor Control
This Virtual Peripheral adds the ability to control a stepper motor. This routine excites the stepper motor using half-step sequence but the excitation method can be changed to any sequence you choose simply by modifying the startstep lookup-table with the appropriate sequence of excite output. stepper.src
PDF
4x4 Keyboard Scan This application note presents programming techniques for scanning a 4x4 keyboard usually found in both consumer and industrial applications for simple numeric data entry. keyscan.src
PDF

Push Buttons & Path Switcher

This application note presents programming techniques for implementing and debouncing from 1-4 push buttons. This implementation also demonstrates the use of a path switcher (combined with a simple real-time clock ) to reduce the execution time of each interrupt.

buttons_vp.src
PDF

FSK Generation Frequency Shift Keying Virtual Peripheral for Telephony applications. This routine provides a 1200 Baud, Phase-coherent FSK generation with minimal external circuitry. fsk.src
PDF
DTMF Generation Dual Tone Multiple Frequency generation Virtual Peripheral created using PWM signals. dtmf.src
PDF
Digital Frequency Synthesizer Richard Ottosen has developed an improved version of the Digital Frequency Synthesizer described in Tom Napier's article "Digital Frequency Synthesis" in issue 99 (October 1998) of Circuit Cellar INK.

sxncoex.zip

Real-Time Clock This VP implements a real time clock that keeps a 16-bit milliseconds count, and has the option for full time clock capabilities, including seconds, minutes, hours, and days. clock_vp.src
PDF

Comparitive resistance meter with LCD Driver

This software uses two software A/D converters, on pins RB.5 and RB.6, to read in a known resistance value, and compare it to an unknown, and then outputs the results on an 8-segment LCD. The RA pins drive the commons, and the RC pins drive the characters

lcd.src

8-Bit LCD Interface Interfacing an SX uC to a Hitachi HD44780-Driven LCD display, using an 8-bit parallel data bus without interrupts. lcd8xmpl.src
PDF
4-Bit LCD Interface Interfacing an SX uC to a Hitachi HD44780-Driven LCD display, using a 4-bit parallel data bus without interrupts. lcd4xmpl.src
PDF

USB Scanner Interface

USB application notes for SX used with netchip USB interface hardware. the VP is for the scanner interface, not the USB port.

netchip.com/USB_literature.htm

Binary to 7 segment LED Converters Binary to 7 segment LED Converters seven_seg.src
seven_seg.pdf
Bar Graph Display This application will create a bar graph display, similar to a signal strength meter on a stereo. By modulating the signal to the LED's, it is possible to create an analog effect on a discete, digital display. bargraph.src
PDF

Telephony related Virtual Peripherals

Virtual Peripherals Description Source File
Download File
DTMF detection Detects DTMF (touch-tone) digits of 48ms tone duration with 3x oversampling and error detection or 14ms tone duration without error detection. Uses only minimal external hardware and 2 I/O pins. Source code is currently available only by request.
DTMF generation (PWM) Algorithmic DTMF (touch-tone) generation via 1-pin PWM D/A. Uses only minimal external hardware and 1 I/O pin. Source
PDF

(02/12/99)
DTMF generation (R2R) Algorithmic DTMF (touch-tone) generation via 8-pin R2R-ladder D/A. Uses only minimal external hardware and 8 I/O pins. Available soon
Bell-202 1200bps FSK output (PWM) This VP provides a simple FSK modulation scheme. The analog voltage is generated by a 1-pin PWM D/A. This routine provides a 1200 Baud, Phase-coherent FSK generation with minimal external circuitry. Designed to be compliant with the Bell-202 specification. Source
PDF

(02/12/99)
Bell-202 1200bps FSK output (R2R) This VP provides a simple FSK modulation scheme. The analog voltage is generated by a 8-pin R2R-ladder D/A. This routine provides a 1200 Baud, Phase-coherent FSK generation with minimal external circuitry. Designed to be compliant with the Bell-202 specification. Available soon
Bell-202 1200bps FSK input This VP provides simple FSK demodulation of a 1200Baud FSK signal. Designed to use minimal external circuitry and 1 I/O pin. Source
PDF

(02/12/99)
CallerID detection This VP provides Type I CallerID demodulation. Uses FSK demodulation VP and additional subroutines to parse the CallerID data. Designed to use minimal external circuitry and 1 I/O pin. Source


(02/12/99)
Ring detection This VP provides detection of ring signal from telephone line. Designed to use minimal external circuitry and 1 I/O pin. Source
PDF

(02/12/99)
Hook detection This VP provides detection of off-hook from telephone line. Designed to use minimal external circuitry and 1 I/O pin. Available soon
Call-Progress detection A modification of DTMF detection algorithm, provides detection of multiple-tone Call-Progress signals. Uses only minimal external hardware and 2 I/O pins. Source code is currently available only by request.
Call-Progress generation A modification of DTMF generation algorithm, provides dual-tone Call-Progress generation via 1 PWM output. Uses only minimal external hardware and 1 I/O pin. Available soon
Pulse-dial input Provides Pulse-dial detection. Uses only minimal external hardware and 1 I/O pin. Available soon
Pulse-dial output Provides Pulse-dial generation. Uses only minimal external hardware and 1 I/O pin. Available soon

Additional Virtual Peripherals useful for modem applications

Virtual Peripherals Description Source File
Download File
Artificial Sine Wave Generator Sine Wave Generation utilizing one PWM output and an algorithmic approach to sine generation Source
PDF
2400-230.4K UART This is a simplified software module that communicates over an RS-232 port to a PC and will echo back what is received. This is compatible with the SX Demo Board. uart_vp.src
PDF
16-Bit Timer
A simple virtual peripheral to create a 16-bit independent timer. Each timer only consumes 11 instruction cycles. This is compatible with the SX Demo Board. timer_vp.src
PDF
4x4 Keyboard Scan This application note presents programming techniques for scanning a 4x4 keyboard usually found in both consumer and industrial applications for simple numeric data entry. keyscan.src
PDF
8-Bit LCD Interface Interfacing an SX uC to a Hitachi HD44780-Driven LCD display, using an 8-bit parallel data bus without interrupts. lcd8xmpl.src
PDF
4-Bit LCD Interface Interfacing an SX uC to a Hitachi HD44780-Driven LCD display, using a 4-bit parallel data bus without interrupts. lcd4xmpl.src
PDF
1