![](/html/d0/d075/d075288b11a63e3a89e5f7feec445cc2b3567a8549c79640342906890570b260/bg1.png)
Serial Protocol for the STn00 and SRn00 devices
Issue 2
Date 5/6/00
1 Introduction
This document describes the serial protocol for re-programming the STn00
and SRn00 range of transmitter and receiver modules.
There is an important difference between the VHF and the UHF products
which concerns the Intermediate Frequency (IF) used.
To differentiate between the ST and SR each has a unique product code.
For the SRn00 this is 0F6 hex and for STn00 it is 0F5 hex.
1
2 Data Format
Two baud rates are used for differing functions. Throughout this document,
which one is being used is given. The two baud rates are:
Baud rate 19,200, 8 data bits, 1 start bit, 1 stop bit, no parity
Baud rate 1,200, 8 data bits, 1 start bit, 1 stop bit, no parity
The internal PIC is running an RC clock which can vary considerable with
component tolerance and temperature. To overcome this, a serial protocol is
used which looks a the input waveform from the PC as a pulse, the duration
of which determines whether the input data is a binary 1 or 0. If the baud rate
is 19,200, the data byte to be transmitted to the radio is as follows:
0 (decimal) = binary 0
255 (decimal) = binary 1
During readback the data can vary and so must be interpreted as follows:
Value < 241 (dec) = binary 0
Value $ 241 (dec) = binary 1
For the one data byte, 8 bytes must be sent representing each bit.
If the baud rate is 1,200, then the data sent is a normal 8 bit byte.
Note: throughout the document the value of the data is given assuming an
RS232 interface. If TTL or similar logic levels are used then the data
must be inverted.
![](/html/d0/d075/d075288b11a63e3a89e5f7feec445cc2b3567a8549c79640342906890570b260/bg2.png)
3 Definitions
The following give details of the terms used thoughout this document.
3.1 Fosc
This is the value of the Reference Oscillator in the radio. This is NOT
programmable and the value is not stored in EEPROM. Currently there are
two types used by the ST/SRn00 units:
12.8 and 14.85 MHz.
3.2 Fc
Fc is the Comparison Frequency used by the synthesizer in the radio. This is
a programmable parameter, but care should be taken if it is changed,
because the synthesiser hardware is optimized for certain values of Fc. The
Fc in use with the ST/SRn00 family vary for the different applications, but is
one of these discrete values:
2
Fc is not directly stored as a number in the radio’s EEPROM. It is rather
indirectly stored as the “Rvalue” (see below).
3.3 Rvalue
This number is the result of the division:
Since the ST/SRn00 family can have one of two Fosc: 12.8 or 14.85 MHz, the
possible Rvalues for the radio are:
If Fosc= 12.8MHz:
5, 6.25, 10, 12.5 ,20 or 25 KHz
(refer to Wood & Douglas for the actual values allowed).
Rvalue = Fosc / Fc
RR1(5) = 2560 (dec), A00 (hex)
RR1(6.25) = 2048 (dec), 800 (hex)
RR1(10) = 1280 (dec), 500 (hex)
RR1(12.5) = 1024 (dec), 400 (hex)
RR1(20) = 640 (dec), 280 (hex)
RR1(25) = 512 (dec), 200 (hex)
![](/html/d0/d075/d075288b11a63e3a89e5f7feec445cc2b3567a8549c79640342906890570b260/bg3.png)
If Fosc= 14.85MHz:
From above it is clear that we have 11 possible values for the combination of
2 Fosc and 6 Fc’s. When the Rvalue is read from the unit the current Fc and
Fosc. can be determined from these values.
Note: Rvalue is stored as 2 bytes in EEPROM locations 61, 62
3.4 IF
IF is the Intermediate Frequency of the receiver. Its value for the STn00
family is always zero, but for the SRn00 family is as follows:
3
RR2(5) = 2970 (dec), B9A (hex)
RR2(6.25) = 2376 (dec), 948 (hex)
RR2(10) = 1485 (dec), 5CD (hex)
RR2(12.5) = 1188 (dec), 4A4 (hex)
RR2(20) = NOT possible (result is not integer no.)
RR2(25) = 594 (dec), 252 (hex)
SRn00 with frequency range < 200 MHz:, “High Side” (+45 MHz)
SRn00 with frequency range > 200 MHz, “Low Side” (- 45 MHz).
STn00, any frequency IF = 0
Note: The IF value is not stored in the unit’s EEPROM. The type of ST or
SRn00 must be known before programming can be carried out.
4 Channel Information and Storage
For both the ST and SRn00 family, 16 random and 112 sequential channels
can be stored in the non-volatile EEPROM memory area of the internal PIC
processor. Channels 0 - 15 are stored individually in the EEPROM and
channels 16 - 127 are calculated from the start frequency and the table step
increment.
In principle frequency is stored in a two byte format plus the high byte offset.
The data stored is not the frequency itself, but the frequency divided by the
Fc. In other words if the desired frequency for the random channel N is
Freq(N), then the value stored is F(N) where F(N) is calculated as:
F(N) = [Freq(N) + IF] / Fc
The result is stored as:
EEPROM(60) = int [F(N)/65536] *256 high byte offset
EEPROM(N) = int [F(N)/256] - EEPROM(60) msb
EEPROM(N + 16) = F(N)- [EEPROM(60) + EEPROM(N)] *256 lsb