You are on page 1of 4

AN32

S i3 21 X , S i 3 2 3 0 , A N D S i3 2 3 3 F R E Q U E N C Y S H I FT K E Y I N G ( F S K ) M O D U L A T I O N

Introduction
The ProSLIC tone-generator Oscillator 1 may be used The screen-capture below shows a paired trace and two
to create frequency shift keying (FSK) frequency singular scope traces during FSK between 2200 and
modulation for caller ID. The ProSLIC has two 1200 Hz. The paired trace is the mirror of the Tip and
independently programmable voice-band oscillators Ring ac voltages. The first singular trace is the
(see ProSLIC specification for details). While both difference between these voltages. The second singular
oscillators are necessary for the generation of call trace is the interrupt bit of the ProSLIC chip. This
progress and signaling tones such as busy tone, dial interrupt, generated by the Oscillator 1 timers, signals
tone, or DTMF, only Oscillator 1 is necessary for phase the software that the bit data has been loaded, and that
continuous FSK. Oscillator 1 will preserve phase the registers are free to update new data. The traces
continuity during frequency shifts; Oscillator 2 will not. below represent a 1, 0, 1, 0, 1 pattern.
Oscillator 1 has some special built-in features to greatly
simplify the FSK switching between two frequencies.

Rev. 0.2 2/07 Copyright © 2007 by Silicon Laboratories AN32


AN32
The FSK mode is selected in the Oscillator Control Generation of FSK signals consists of four steps:
register (direct Register 32). This enables the oscillator 1. Initialize the registers for transmission.
timers to be used as the indicator for FSK bit duration.
2. Enable Oscillator 1 in FSK mode, and engage the
Oscillator 1 is automatically loaded with the last register
timers for Oscillator 1 with their interrupts.
setting upon the expiration of Oscillator 1’s active timer.
Oscillator 1’s inactive timer is only used for the 3. Write subsequent data bit to direct Register 52, one
expiration of the first bit. Otherwise, Oscillator 1’s bit every interrupt.
inactive timer is disabled automatically by the FSK 4. Disable the timers and Oscillator 1.
mode bit. The interrupts caused by Oscillator 1 timers The FSK indirect registers are listed in Table 1 and
informs the user of a window of time to update the FSK Table 2.
register (direct Register 52) for the next FSK bit.

Table 1. FSK Indirect Registers (Si3210, Si3211, Si3230)


Indirect Register Number Purpose Example Value
99 Amplitude Parameter for Space(0) 0x01B4
100 Frequency Parameter for Space(0) 0x6B60
101 Amplitude Parameter for Mark(1) 0x00E9
102 Frequency Parameter for Mark(1) 0x79C0
103 Transition Parameter from 0 to 1 0x1110
104 Transition Parameter from 1 to 0 0x3C00

Table 2. FSK Indirect Registers (Si3215, Si3216, Si3233)


Indirect Register Number Purpose Example Value
99 Amplitude Parameter for Space(0) 0x02A8
100 Frequency Parameter for Space(0) 0x5320
101 Amplitude Parameter for Mark(1) 0x0162
102 Frequency Parameter for Mark(1) 0x7210
103 Transition Parameter from 0 to 1 0x10B0
104 Transition Parameter from 1 to 0 0x3D60

Table 3. FSK Direct Registers


Direct Register Number Purpose Example Value
32 OSC1 Control Register 0x56
36 Low Byte Active Timer 0x13 for 1200 baud
37 High Byte Active Timer 0x00
52 FSK Data 1/0 Data Value
108.6 Enhancement Register 1

2 Rev. 0.2
AN32
1. Initialize the Registers 3. Send the Caller ID Frame
To take advantage of the advanced FSK mechanism A frame of caller ID most likely consists of a group of
(direct Register 108—Enhancement Enable register), bytes (octets) with start and stop bits. If the start bit is a
bit 6 should be set to 1. Set the Oscillator 1 Active 0 (Space), this must be written to direct Register 52.
Timer—Low Byte register (direct Register 36), to the This causes an active timer interrupt. Next, load the first
duration of a bit in 1/24000 of a second minus one. This bit into direct Register 52. Wait for an interrupt, then
would be decimal 19 for 1200 baud. Decimal 19 write the next bit. Wait for the active timer interrupt and
represents twenty increments. Each increment is so on. Once the end of the byte has been reached, write
1/24000 of a second, so 20/24000 is 1/1200. The a stop bit. Continue to write bytes till the end of the
Oscillator 1 Active Timer—High Byte register (direct frame. A group of Marks between a group of alternating
Register 37) is 0 because the most significant bits of the 1s and 0s will probably have to be included depending
active timer are 0. on the caller ID specification. Starting the frame with “U”
The FSK Data register (direct Register 52) should be 0x55 and not sending characters for as many bits as the
written to a logical 1 twice. (This sets up the double spacing specification requires will achieve this.
buffer.)
The next registers to initialize are the amplitude,
4. Disable the Oscillator
coefficient, and phase registers on Oscillator 1 for both Disable the oscillator by writing a 0x50 to direct
their Mark (logical 1) and Space (logical 0) values. For Register 37. This will leave the line quiet.
the North American values of 1200 Hz (Mark) and
2200 Hz (Space) at .20 VRMS or –13.5 dBm at 900 Ω, 5. Helpful Hints
the register values are shown in Table 1 and Table 2.
There are two things to remember when coding the FSK
2. Enable the Oscillator modulation. One, most caller ID boxes will not work
without ringing. Two, a valid checksum and byte count
To enable the interrupt for the Oscillator 1 active timer, will need to be generated for the caller ID frame to be
the LSB is enabled on direct Register 21. The registered as valid.
Oscillator 1 Control register (direct Register 32) is
Silicon Labs has example source code that will
programmed to hex 56 (0x56). This bit engages the
demonstrate caller ID using a fast PC on the
active timer and relative bit for Oscillator 1. The REL
Si3210-EVB.
(reload) bit is the FSK mode bit.

Rev. 0.2 3
AN32
CONTACT INFORMATION
Silicon Laboratories Inc.
400 West Cesar Chavez
Austin, TX 78701
Tel: 1+(512) 416-8500
Fax: 1+(512) 416-9669
Toll Free: 1+(877) 444-3032
Email: ProSLICinfo@silabs.com
Internet: www.silabs.com

The information in this document is believed to be accurate in all respects at the time of publication but is subject to change without notice.
Silicon Laboratories assumes no responsibility for errors and omissions, and disclaims responsibility for any consequences resulting from
the use of information included herein. Additionally, Silicon Laboratories assumes no responsibility for the functioning of undescribed features
or parameters. Silicon Laboratories reserves the right to make changes without further notice. Silicon Laboratories makes no warranty, rep-
resentation or guarantee regarding the suitability of its products for any particular purpose, nor does Silicon Laboratories assume any liability
arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation conse-
quential or incidental damages. Silicon Laboratories products are not designed, intended, or authorized for use in applications intended to
support or sustain life, or for any other application in which the failure of the Silicon Laboratories product could create a situation where per-
sonal injury or death may occur. Should Buyer purchase or use Silicon Laboratories products for any such unintended or unauthorized ap-
plication, Buyer shall indemnify and hold Silicon Laboratories harmless against all claims and damages.

Silicon Laboratories, Silicon Labs, and ProSLIC are trademarks of Silicon Laboratories Inc.
Other products or brandnames mentioned herein are trademarks or registered trademarks of their respective holders.

4 Rev. 0.2

You might also like