1993_TI_TSP50C1x_Family_Speech_Synthesizer_Design_Manual 1993 TI TSP50C1x Family Speech Synthesizer Design Manual

User Manual: 1993_TI_TSP50C1x_Family_Speech_Synthesizer_Design_Manual

Open the PDF directly: View PDF PDF.
Page Count: 270

Download1993_TI_TSP50C1x_Family_Speech_Synthesizer_Design_Manual 1993 TI TSP50C1x Family Speech Synthesizer Design Manual
Open PDF In BrowserView PDF
•

TEXAS

INSTRUMENTS

TSP50C1x Family
Speech Synthesizer

1993

Linear Products

TSP50C1x Family

Speech Synthesizer
Design Manual

~TEXAS

INSTRUMENTS

IMPORTANT NOTICE
Texas Instruments Incorporated (Til reserves the right to make changes to its
products or to discontinue any semiconductor product or service without notice,
and advises its customers to obtain the latest version of relevant information to
verify, before placing orders, that the information being relied on is current.
TI warrants performance of its semiconductor products and related software to
current specifications in accordance with TI's standard warranty. Testing and
other quality control techniques are utilized to the extent TI deems necessary to
support this warranty. Specific testing of all parameters of each device is not
necessarily performed, except those mandated by government requirements.

Please be aware that TI products are not intended for use in life-support
appliances, devices, or systems. Use of TI product in such applications requires
the written approval of the appropriate TI officer. Certain applications using
semiconductor devices may involve potential risks of personal injury, property
damage, or loss of life. In order to minimize these risks, adequate design and
operating safeguards should be provided by the customer to minimize inherent
or procedural hazards. Inclusion of TI products in such applications is understood
to be fully at the risk of the customer using TI devices or systems.
TI assumes no liability for applications assistance, customer product design,
software performance, or infringement of patents or services described herein.
Nor does TI warrant or represent that any license, either express or implied, is
granted under any patent right, copyright, mask work right, or other intellectual
property right of TI covering or relating to any combination, machine, or process
in which such semiconductor products or services might be or are used.

Copyright © 1993, Texas Instruments Incorporated
Printed in the U.S.A.

Contents
Section

Title

Page

1

Introduction to the TSP50Clx Family of Devices .................................. 1-1
1.1 Applications........................................................... 1-1
1.2 Description............................................................ 1-1
1.3 TSP50C1x Family Features ............................................... 1-3
1.4 TSP50C12 Features ..................................................... 1-3
1.5 TSP50C14 Features ..................................................... 1-4
1.6 D/A Options ........................................................... 1-4
1.6.1 Two-Pin Push Pull (Option 1) - Accurate to 10 Bits (:t 1/2 LSB) ............ 1-4
1.6.2 Single-Pin Single Ended (Option 2) - Accurate to Only 9 Bits (± 1 LSB) ..... 1-6
1.6.3 Single-Pin Double Ended (Option 3) - Accurate to 10 Bits (± 1/2 LSB) ...... 1-7
1.7 TSP50C10/11 Pin Assignments and Descriptions .............................. 1-8
1.8 TSP50C12 Pin Assignments and Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1-11
1.9 TSP50C14 Pin Assignments and Descriptions ................................ 1-12
1.10 Introduction to LPC (Linear Predictive Coding) .............................. 1-13
1.10.1 The Vocal Tract .................................................. 1-13
1.10.2 The LPC Model ................................................. 1-14
1.10.3 LPC Data Compression ........................................... 1-14

2

TSP50Clx Family Architecture ................................................ 2-1
2.1 Read-Only Memory (ROM) ............................................. " 2-3
2.2 Program Counter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2-3
2.3 Program Counter Stack ................................................. " 2-3
2.4 TSP50ClO/11 Random-Access Memory (RAM) ............................... 2-4
2.5 TSP50C12 Random-Access Memory (RAM) ................................. 2-5
2.6 TSP50C14 Random-Access Memory (RAM) ................................. 2-6
2.7 Arithmetic Logic Unit (ALU) .............................................. 2-6
2.8 A Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2-6
2.9 X Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2-6
2.10 B Register ............................................................. 2-6
2.11 Status Flag ............................................................ 2-7
2.12 Integer Mode Flag ....................................................... 2-7
2.13 Timer Register ......................................................... 2-7
2.14 Timer Prescale Register .................................................. 2-7
2.15 Pitch Register .......................................................... 2-8
2.16 Speech Address Register ................................................. 2-9
2.17 Parallel-to-Serial Register ................................................. 2-9
2.18 Input/Output Ports ...................................................... 2-9
2.19 Mode Register ......................................................... 2-10
2.20 Speech Synthesizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2-11
2.20.1 SynthesizerModeO-OFF ......................................... 2-11
2.20.2 Synthesizer Mode 1 - LPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2-11
iii

Contents (Continued)
Section

2.21
2.22

2.23
2.24

Title
2.20.3 Synthesizer Mode 2 - PCM ........................................
2.20.4 Synthesizer Mode 3 - PCM and LPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
2.20.5 Use of RAM by the Synthesizer .....................................
2.20.6 Frame-Length Control ............................................
2.20.7 Digital-to-Analog Converter ........................................
Interrupts.............................................................
TSP50C12 LCD Functional Description ....................................
2.22.1 TSP50C12 LCD Driver ...........................................
2.22.2 TSP50C12 LCD Drive Type A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
2.22.3 TSP50C12 LCD Drive Type B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
TSP50C12 LCD Reference Voltage and Contrast Adjustment ...................
TSP50C12 Clock Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..

Page
2-12
2-12
2-12
2-13
2-13
2-13
2-14
2-14
2-15
2-17
2-18
2-18

3

TSP50Clx Electrical Specifications ............................................. 3-1
3.1 Absolute Maximum Ratings Over Operating Free-Air Temperature Range .......... 3-1
3.2 TSP50C1x Recommended Operating Conditions .............................. 3-1
3.3 TSP50C1x D/A Options Timing Requirements ................................ 3-1
3.4 TSP50C1x Initialization Timing Requirement ................................. 3-2
3.5 TSP50C1x Write Timing Requirements (Slave Mode) .......................... 3-2
3.6 TSP50C1x Read Timing Requirements (Slave Mode) ........................... 3-3
3.7 TSP50C10/11 Electrical Characteristics Over Recommended Ranges of Supply Voltage
and Operating Free-Air Temperature (unless otherwise noted) .......... . . . . . . . . .. 3-4
3.8 TSP50C12 Electrical Characteristics Over Recommended Ranges of Supply Voltage and
Operating Free-Air Temperature (unless otherwise noted) ....................... 3-5
3.9 TSP50C14 Electrical Characteristics Over Recommended Ranges of Supply Voltage and
Operating Free-Air Temperature (unless otherwise noted) ....................... 3-6

4

TSP50Clx Assembler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
4.1 Description of Notation Used ..............................................
4.2 Invoking the Assembler ..................................................
4.2.1 Command-Line Options ............................................
4.2.1.1
BYTE Unlist Option ......................................
4.2.1.2 DATA Unlist Option ......................................
4.2.1.3 XREF Unlist Option ......................................
4.2.1.4 TEXT Unlist Option ......................................
4.2.1.5 WARNING Unlist Option ..................................
4.2.1.6 Complete XREF Switch ....................................
4.2.1.7 Object Module Switch .....................................
4.2.1.8 Listing File Switch ........................................
4.2.1.9 Page Eject Disable Switch ..................................
4.2.1.10 Error to Screen Switch .....................................
4.2.1.11 Instruction Count Switch ...................................
4.2.1.12 Binary Code File Disable Switch .............................
4.2.2 Assembler Input and Output Files ....................................
4.2.2.1 Assembly Source File .....................................

iv

4-1
4-1
4-1
4-1
4-2
4-2
4-2
4-2
4-2
4-2
4-3
4-3
4-3
4-3
4-3
4-3
4-3
4-3

Contents (Continued)
Section

4.3

4.4

Title
Page
4.2.2.2 Assembly Binary Object File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 4-3
4.2.2.3 Assembly Tagged Object File ............................... 4-4
4.2.2.4 Assembly Listing File ..................................... 4-4
Source-Statement Format ................................................. 4-4
4.3.1 Label Field ...................................................... 4-4
4.3.2 Command Field .................................................. 4-5
4.3.3 Operand Field .................................................... 4-5
4.3.4 Comment Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 4-5
4.3.5 Constants ........................................................ 4-5
4.3.5.1
Decimal Integer Constants .................................. 4-5
4.3.5.2 Binary Integer Constants ................................... 4-5
4.3.5.3 Hexadecimal Integer Constants .............................. 4-6
4.3.5.4 Character Constants ....................................... 4-6
4.3.5.5 Assembly-Time Constants ............ , .. " ................. 4-6
4.3.6 Symbols ........................................................ 4-6
4.3.7 Character String .................................................. 4-7
4.3.8 Expressions .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 4-7
4.3.8.1
Arithmetic Operators in Expressions .......................... 4-7
4.3.8.2 Parentheses In Expressions ................................. 4-8
Assembler Directives .................................................... 4-8
4.4.1 AORG Directive ............................................... " 4-10
4.4.2 BYTE Directive ................................................. 4-10
4.4.3 COPY Directive ................................................. 4-10
4.4.4 DATA Directive ................................................. 4-10
4.4.5 EQU Directive .................................................. 4-11
4.4.6 END Directive .................................................. 4-11
4.4.7 IDT Directive ................................................... 4-11
4.4.8 LIST Directive .................................................. 4-11
4.4.9 NARROW Directive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12
4.4.10 OPTION Directive ............................................... 4-12
4.4.10.1 BUNLST - Byte Unlist Option ........................... " 4-12
4.4.10.2 DUNLST-DataUnlistOption ............................. 4-12
4.4.10.3 FUNLST - Byte, Data, and Text Unlist Option ................. 4-13
4.4.10.4 I COUNT - Instruction Count List Option .................... 4-13
4.4.10.5 LSTUNL - Listing Unlist Option ........................... 4-13
4.4.10.6 OBJUNL- Object File Unlist Option ........................ 4-13
4.4.10.7 PAGEOF - Page Break Inhibit Option ....................... 4-13
4.4.10.8 RXREF - Reduced XREF Option . . . . . . . . . . . . . . . . . . . . . . . . . .. 4-13
4.4.10.9 SCRNOF - Screen Error Message Unlist Option ............... 4-13
4.4.10.10 TUNLST - Text Unlist Option ............................. 4-13
4.4.10.11 WARNOFF - Warning Message Unlist Option ................. 4-13
4.4.10.12 XREF - Cross-Reference Listing Enable ..................... 4-13
v

Contents (Continued)
Section
4.4.11
4.4.12
4.4.13
4.4.14
4.4.15
4.4.16
4.4.17
4.4.18

5

vi

Page
Title
4.4.10.13 990- Tagged Object Output Switch ........................ . 4-13
PAGE Directive ................................................ . 4-14
RBYTE Directive ............................................... . 4-14
RDATA Directive ................................................ 4-14
RTEXT Directive ................................................ 4-14
TEXT Directive ................................................. 4-15
TITL Directive .................................................. 4-15
UNL Directive .................................................. 4-15
WIDE Directive ................................................. 4-16

Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5-1
5.1 Instruction Format ...................................................... 5-4
5.2 ABAAC - Add B to A ................................................... 5-5
5.3 ACAAC - Add Constant to A Register ...................................... 5-6
5.4 AGEC - A Register Greater Than or Equal To Constant ......................... 5-7
5.5 AMAAC - Add Memory to A Register ...................................... 5-8
5.6 ANDCM - Logical AND a Constant With Memory ............................ 5-9
5.7 ANEC - A Not Equal to Constant ......................................... 5-10
5.8 AXCA - A Times Constant .............................................. 5-11
5.9 AXMA - A Times Memory .......................... . . . . . . . . . . . . . . . . . . . . 5-12
5.10 AXTM - A Times Timer ................................................ 5-13
5.11 BR - Branch If Status Set ................................................ 5-14
5.12 BRA - Branch Always to Address in A Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15
5.13 CALL- Call Subroutine If Status Set ...................................... 5-16
5.14 CLA - Clear A Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17
5.15 CLB - Clear B Register ................................................. 5-18
5.16 CLX - Clear X Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 -19
5.17 DECMN - Decrement Memory ........................................... 5-20
5.18 DECXN - Decrement X Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5-21
5.19 EXTSG - Extended-Sign Mode .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5-22
5.20 GET - Get Data From ROM/RAM ........................................ 5-23
5.21 lAC - Increment A Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5-25
5.22 IBC - Increment B Register .............................................. 5-26
5.23 INCMC - Increment Memory ............................................ 5-27
5.24 INTGR - Integer Mode ................................................. 5-28
5.25 IXC - Increment X Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5-29
5.26 LUAA - Look-up With A Register ........................................ 5-30
5.27 LUAB - Look-up With B Register ......................................... 5-31
5.28 LUAPS - Indirect Look-up With A Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-32
5.29 ORCM - OR Constant With Memory ...................................... 5-33
5.30 RETI - Return From Interrupt ............................................ 5-34
5.31 RETN - Return From Subroutine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5-35
5.32 SALA - Shift A Register Left ............................................ 5-36
5.33 SALA4 - Shift A Register Left Four Bits ................................... 5-37
5.34 SARA - Shift A Register Right One Bit .................................... 5-38

Contents (Continued)
Section
5.35
5.36
5.37
5.38
5.39
5.40
5.41
5.42
5.43
5.44
5.45
5.46
5.47
5.48
5.49
5.50
5.51
5.52
5.53
5.54
5.55
5.56
5.57
5.58
5.59
5.60
5.61
5.62

6

Title
Page
SBAAN - Subtract B Register From A Register .............................. 5-39
SBR - Short Branch If Status Set .......................................... 5-40
SETOFF-Set Processor to Off Mode ...................................... 5-41
SMAAN - Subtract Memory From A Register ............................... 5-42
TAB - Transfer A Register to B Register .................................... 5-43
TAM - Transfer A Register to Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5-44
TAMD - Transfer A Register to Memory Direct .............................. 5-45
TAMIX - Transfer A Register to Memory and Increment X Register .............. 5-46
TAMODE - Transfer A Register to Mode Register ............................ 5-47
TAPSC - Transfer A Register to Prescale Register ............................ 5-48
TASYN - Transfer A Register to Synthesizer Register ......................... 5-49
TATM - Transfer A Register to Timer Register ............................... 5-50
TAX - Transfer A Register to X Register ................................... 5-51
TBM - Transfer B Register to Memory ..................................... 5-52
TCA - Transfer Constant to A Register ..................................... 5-53
TCX - Transfer Constant to X Register ..................................... 5-54
TMA - Transfer Memory to A Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-55
TMAD - Transfer Memory to A Register Direct .............................. 5-56
TMAIX - Transfer Memory to A Register and Increment X Register ............. 5-57
TMXD - Transfer Memory Direct to X Register .............................. 5-58
TRNDA - Transfer Random Number into A Register .......................... 5-59
TSTCA - Test Constant With A Register .................................... 5-60
TSTCM - Test Constant With Memory ..................................... 5-61
TTMA - Transfer Timer Register to A Register .............................. 5-62
TXA - Transfer X Register to A Register ................................... 5-63
XBA - Exchange Contents of B Register and A Register ....................... 5-64
XBX - Exchange Contents of B Register and X Register ....................... 5-65
XGEC- X Register Greater Than or Equal to Constant ........................ 5-66

Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6-1
6.1

6.2
6.3
6.4
6.5

Synthesizer Control ..................................................... 6-1
6.1.1 Speech Coding and Decoding ........................................ 6-1
6.1.2 RAM Usage ..................................................... 6-3
6.1.3 ROM Usage ..................................................... 6-5
6.1.4 Program Overview ................................................ 6-5
6.1.4.1
Initialization ............................................. 6-5
6.1.4.2 Phrase Selection .......................................... 6-6
6.1.4.3 Speech Initialization ....................................... 6-6
6.1.4.4 Level-I-Interrupt Service Routine ............................ 6-6
6.1.4.5 Frame-Update Routine ..................................... 6-6
6.1.5 Synthesis Program Walk-Through .................................... 6-6
Arithmetic Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6-28
Operation of the Multiply Instruction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6-30
Standby Mode ......................................................... 6-30
Slave Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6-30
vii

Contents (Continued)
Section

6.6

6.7

6.8
6.9

Title
6.5.1 Slave-Mode Write Operation .......................................
6.5.2 Slave-Mode Read Operation ........................................
TSP60C18 Interface ....................................................
6.6.1 External ROM Mode .............................................
6.6.2 TSP60C18 I/O Signals ............................................
6.6.3 TSP60C18 Addressing ....... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
6.6.4 TSP60C18 Addressing Modes ......................................
6.6.4.1
TSP60C18 Direct-Addressing Mode .........................
6.6.4.2 TSP60C18 Indirect-Addressing Mode ........................
6.6.5 TSP60C18 Control .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
6.6.5.1
Initialization of the TSP60C18 .............................
6.6.5.2
Direct-Address Initialization of the TSP60C18 .................
6.6.5.3
8-Bit Indirect-Address Initialization of the TSP60C18 ...........
6.6.5.4 16-Bit Indirect-Address Initialization of the TSP60C18 ..........
6.6.6 Placing the TSP60C18 in a Low-Power Standby Condition ...............
Use of the GET Instruction ...............................................
6.7.1 GET From Internal ROM ..........................................
6.7.2 GET From External ROM .........................................
6.7.3 GET From Internal RAM ..........................................
External ROM Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
Generating Tones Using PCM ............................................
6.9.1 Operation of the TASYN Instruction in PCM Mode .....................
6.9.2 Timing Considerations in PCM Mode ................................
6.9.3 DTMF Program Walk-Through .....................................

Page
6-31
6-32
6-33
6-33
6-33
6-34
6-34
6-35
6-35
6-36
6-36
6-37
6-37
6-38
6-39
6-39
6-41
6-41
6-42
6-43
6-43
6-43
6-44
6-44

7

Customer Information ........................................................ 7-1
7.1 Development Cycle ..................................................... 7-1
7.2 Summary of Speech Development/Production Sequence ........................ 7-2
7.3 N016 300-Mil Plastic Dual-In-Line Package .................................. 7-3
7.4 FN068 68-Lead Plastic Leaded Chip Carrier (PLCC) Package .................... 7-5
7.5 Ordering Information .................................................... 7-7
7.6 New Product Release Form (TSP50Clx) ..................................... 7-7
7.6.1 New Product Release Form for TSP50CI0A and TSP50CllA .............. 7-8
7.6.2 New Product Release Form for TSP50C12 ............................ 7-10
7.6.3 New Product Release Form for TSP50C14 ............................ 7-12

A

Script Preparation and Speech Development Tools ................................
Al Script Generation .......................................................
Al.l Speaker Selection .................................................
Al.2 Speech Collection .................................................
A.I.3 LPC Editing .....................................................
A.I.4 Pitfalls ..........................................................
A2 Speech Development Tools ...............................................

B

TSPSOC1x Sample Synthesis Program ........................................... B·1

C

External ROM Initialization ................................................... C·1

viii

A·l
A-I
A-I
A-I
A-2
A-2
A-2

Contents (Continued)
Section

Title

Page

D

DTMF Program ............................................................. D-I

E

TSPSOCIO/ll Sample Music Program ..•........................................ E-I

ix

List of Illustrations
TItle

Figure

Page

1-1

TSP5OCI0/11 Functional Block Diagram ....................................... 1-2

1-2

TSP5OC12 Functional Block Diagram ......................................... 1-2

1-3

TSP5OC14 Functional Block Diagram ......................................... 1-3

1-4

D/A Output Waveform for Two-Pin Push Pull (Option 1) .......................... 1-5

1-5

Four-Transistor Amplifier Circuit ........................................... " 1-5

1-6

Operational Amplifier Interface Circuit ........................................ 1-6

1-7

Power Amplifier Interface Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1-6

1-8

D/A Output Waveform for Single Ended (Option 2) .............................. 1-7

1-9

One-Transistor Amplifier Circuit ............................................. 1-7

1-10 D/A Output Waveform - Single-Pin Double Ended (Option 3) ...................... 1-8
1-11 Operational Amplifier Interface Circuit ........................................ 1-8
1-12 TSP5OClO/11 Pin Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1-9
1-13 Power-Up Initialization Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1-10
1-14 Oscillator Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... " 1-10
1-15 TSP5OC12 Pin Assignments

1-11

1-16 TSP5OC14 Pin Assignments

1-12

1-17 LPC-12 Vocal Tract Model ................................................. 1-14
2-1

TSP50Clx System Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2-2

2-2

TSP5OClO/11 RAM Map ................................................... 2-4

2-3

TSP5OC12 RAM Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2-5

2-4

RAM Map During Speech Generation ........................................ 2-12

2-5

TSP5OC12 LCD Driver Type A Timing Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2-16

2--6

TSP5OC12 LCD Driver Type B Timing Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2-17

2-7 TSP5OC12 Voltage Doubler ................................................ 2-18

x

3-1

Initialization Timing Diagram ................................................ 3-2

3-2

Write Timing Diagram (Slave Mode) .......................................... 3-2

3-3

Read Timing Diagram (Slave Mode) .......................................... 3-3

6-1

D6 Frame Decoding ....................................................... 6-2

6-2

Speech Parameter Unpacking and Decoding .................................... 6-3

6-3

ACAAC in Extended-Sign Mode ............................................ 6-29

List of Illustrations (Continued)
Figure
6-4

Title

Page

ACAAC in Integer Mode .................................................. 6-30

6-5 Slave-Mode Write Operation ................................................ 6-32
6-6 Slave-Mode Read-Then-Write Operation ...................................... 6-32
6-7 TSP60CI8-to-TSP50Clx Hookup ........................................... 6-36
6-8 Register Connections for GET Instruction ..................................... 6-40
6-9 Parallel-to-Serial Operation for GET 5 Instruction ............................... 6-41
6-10 Operation of TASYN in PCM Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6-44
6-11 Format of Data in A Register Before TASYN .................................. 6-44
7-1

Speech Development Cycle .................................................. 7-1

7-2

TSP50CI0/11/14 16-Pin N Package ........................................... 7-3

7-3

TSP50C12 68-Lead PLCC Package ........................................... 7-5

A-I

SDS5000 ................................................................ A-2

A-2 EVM50CIX .............................................................. A-3
A-3 SEB50CIX .............................................................. A-3
A-4 SEB60CXX .............................................................. A-3
A-5 ADP50C12 .............................................................. A-4

xi

List of Tables
Table

Title

Page

1-1

TSP5OClO/11 Terminal Functions ............................................ 1-9

1-2

TSP5OClO/ll I/O Configurations ............................................ 1-10

1-3

TSP5OC12 Terminal Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1-12

1-4

TSP5OC14 Terminal Functions .............................................. 1-13

2-1

Reserved ROM Locations .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2-3

2-2

I/O Registers ............................................................ 2-10

2-3

Mode Register ......................................................... " 2-11

2-4

Interrupt-1 Vectors ........................................................ 2-13

2-5

Interrupt-2 Vectors ........................................................ 2-14

2""'{)

TSP5OC12 Display RAM Map ........................ . . . . . . . . . . . . . . . . . . . . .. 2-15

4-1

Switches and Options ...................................................... 4-2

4-2

Summary of Assembler Directives ............................................ 4-9

5-1

TSP50C1x Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5-1

5-2

TSP50C1x Instruction Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5-3

6-1

D6 Parameter Size ......................................................... 6-2

6-2 Hardware-Fixed RAM Locations ............................................. 6-4
6-3

Other RAM Locations Used in Sample Program ................................. 6-4

6-4

FLAGS Bit Descriptions for Sample Program ................................... 6-5

6-5

ROM Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6-5

6-6

TXA Operation .......................................................... 6-29

6-7 TSP60C18 Pin Functional Descriptions ....................................... 6-34
6-8 TSP6OC18 Pinout ........................................................ 6-34
6-9 TSP6OC18 Addressing Modes .............................................. 6-35
6-10 Indirect Address Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6-35
6-11 Mode Register Control of GET Data Source ................................... 6-40
6-12 Relative Weights of DAC Magnitude Bits ..................................... 6-44
6-13 Sample Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-45

xii

1

Introduction to the TSP50C1x Family of Devices

The TSP50C 1x uses a revol utionary architecture to com bi ne an 8-bit microprocessor, a speech synthesizer,
ROM, RAM, and I/O in a low-cost single-chip system. The architecture uses the same ALU (Arithmetic Logic
Unit) for the synthesizer and the microprocessor, thus reducing chip area and cost and enabling the
microprocessor to do a multiply operation in 1.6 [is. Linear Predictive Coding (LPC) is used to synthesize
high-quality speech at a low data rate.

1.1

Applications

The TSP50C1 x is highly flexible and programmable, making it suitable for a wide variety of applications. Its
low system cost opens up new applications for solid-state speech. They include:
Talking Clocks
Toys
Telephone Answering Machines
Home Monitors
Navigation Aids
Laboratory Instruments
Personal Computers
Inspection Controls
Inventory Controls
Machine Controls
Warehouse Systems
Warning Systems
Appliances
Mailboxes
Equipment for the Handicapped
Learning Aids
Computer-Aided Instruction
Magazine and Direct-Mail Advertisements
Point-of-Sale Displays

1.2

Description

The TSP50C1 x can be divided into several functional blocks (Figure 1-1, 1-2, 1-3). The ALU and RAM are
shared by the speech synthesizer and the microcomputer.
The TSP50C1x implements an LPC-12 speech synthesis algorithm using a 12-pole lattice filter. The internal
microprocessor fetches speech data from the internal or external ROM (TSP60C18), decodes the speech
data, and sends the decoded data to the synthesizer. The microprocessor also interpolates (smooths) the
speech data between fetches. The output of the synthesizer can be used to drive transistor or
integrated-circuit amplifiers. Some digital low-pass filtering is provided inside the TSP50C1x.
The general-purpose microprocessor in the TSP50C1 x is also capable of a variety of logical, arithmetic, and
control functions and can often be used for the nonsynthesis tasks of the customer's application as well.
1-1

Microcomputer
PortA
Port S

~

I

I
I

I/O

I

I

Microprocessorl

I

ROM

I

ALU

Speech
Synthesizer

RAM

~

~

Timing

I

Oscillator

t t

OSC1

I

Analog
Output

I
I

J

DA2
DA1

~

OSC2

Figure 1-1. TSP50C10/11 Functional Block Diagram
SCommon
LCD Outputs

24-Segment
LCD Outputs

Microcomputer
PortA ....-+-.......
PortS ....-+-.......

I/O

Speech
Synthesizer

Microprocessor
RAM
Analog
Output
ROM

Timing
Oscillator

OSC1

OSC2

Figure 1-2. TSP50C12 Functional Block Diagram

1-2

1---+- DA2
1---1-- DA1

Microcomputer
PortA
Port 8

....

I
I

I/O

I

Microprocessor

I

ROM

I
I

I

Speech
Synthesizer

ALU

....

....

.
..
r

.......

RAM

Timing

I

Oscillator

I

...

I

Analog
Output

I

I

DA2
DA1

Figure 1-3. TSP50C14 Functional Block Diagram

1.3

TSP50C1x Family Features
Programmable LPC-12 Speech Synthesizer
8-Bit Microprocessor With 61 Instructions
16 Twelve-Bit Words and 112 Bytes of RAM
4-V to 6-V CMOS Technology for Low Power Dissipation
3 D/A Configurations - Mask Selectable
1a-kHz or 8-kHz Speech Sample Rate
8K-Byte ROM (TSP50C10) or 16K-Byte ROM (TSP50C11/12/14)
10 Software Controllable I/O Lines (9 I/O Lines With Two-Pin D/A Output)
Internal Timer
External Interrupt
Single-Cycle Multiply Instruction
Executes Up to 600,000 Instructions Per Second
Built-in Interface to TSP60C18 Speech ROM
Built-In Slave Mode to Act as Microprocessor Peripheral

1.4

TSP50C12 Features
Direct LCD Drive Capability for an 8 x 24 (192-Segment) Display
1/8 Duty Cycle and 1/4 Bias Drive With On-Chip Voltage Reference
Internal Contrast Adjustment
24 Bytes of Display RAM
Two D/A Configurations - Mask Selectable
Limited Direct Speaker Drive Capability
RC Oscillator Option
1-3

TSPSOC14 Features

1.S

Direct Speaker Drive Capability
Internal Clock Generator That Requires No External Components
Two-Pin D/A Output and 10 Pins of I/O Simultaneously Possible
•

Two D/A Configurations - Mask Selectable
Optional Doubling of the D/A Output
16 Twelve-Bit Words and 48 Bytes of RAM

1.6

D/A Options

The TSP50C1 x offers three D/A (digital-to-analog) output options to match different applications. The DAC
(digital-to-analog converter) is a pulse-width-modulated type with 9 bits or 10 bits of resolution and a 16-kHz
or 20-kHz sampling rate. Each option has a range of 480 to -480 segments per sample period, with two
options having a resolution of ± 1/2 LSB and the third having a resolution of ± 1 LSB.
The DAC produces samples at twice the rate that data is received from the LPC filter. For example, if the
LPC filter is running at approximately 10kHz, then the DAC is running at approximately 20 kHz.
The TSP50C12 and TSP50C14 can be used with a normal-sized pulse width or with the PW2 option. The
PW2 option causes the processor to produce a double-sized pulse width. This results in a higher volume
output, which includes some risk of clipping the output.

1.6.1

Two-Pin Push Pull (Option 1) - Accurate to 10 Bits (±1/2 LSB)

Option 1 works well with a very efficient and inexpensive four-transistor amplifier. It requires two pins, so
the I/O pin B1 is used for the second pin, meaning that only 9 bits of I/O are available. When the DAC is idle,
orthe output value is 0, both pins are high. When the output value is positive, DA1 goes low with a duty cycle
proportional to the output value, while DA2 stays high. When the output value is negative, DA2 goes low
with a duty cycle proportional to the output value, while DA 1 stays high. This option offers a resolution of
10 bits.
Figure 1-4 shows examples of D/A output waveforms with different output values. Each pulse of the DAC
is divided into 480 segments per sample period. For a positive output value x = 0 to 480, DA 1 will go low
for x segments while DA2 stays high. When the DAC is idle or the output value is 0, both DA 1 and DA2 are
high. For a negative value x = 0 to -480, DA2 will go low for Ixl segments while DA 1 stays high.

1-4

480-x

High
DA1

Low
DA2

240

rLJL
x

240

I I

479

High
Low

o

2

0

Output Value = x
where x = 0 to 480
(as shown x = 360)

Output Value = 240

Output Value = 479

1

Output Value

2
= 480

High
DA1

Low
480 + x

High
DA2

Low

lJlJ
Ixl

0

2

Output Value = x
where x = Oto-480
(as shown x = -120)

240

~
240

2

0

Output Value = -240

Output Value = 0

Output Value = -480

Figure 1-4. D/A Output Waveform for Two-Pin Push Pull (Option 1)
Figures 1-5,1--6, and 1-7 show examples of circuits that can be used with this option.
5V

DA1

DA2

Figure 1-5. Four-Transistor Amplifier Circuit
1-5

10kQ

v
1 J.tF
47 kQ
OA1 ----11 f-----f\,/'V'v-_____- i

>----- .. 2.5 V pop
OA2 ----1If-----f\,/'V'v--e-i
10 kQ
V/2

Figure 1-6. Operational Amplifier Interface Circuit

VOO

R1

OA1~-~AA~-----~--__~2
R1

0A2~-~AA~~--e~-~--+-~3
R2

8-Q
Speaker

C1

TSP50C10

2kQ

OUTPUT~-----~~~~~

VSS~------------

NOTES: R1 .. 56 kQ 10%
R2 =2 kQ 10%
C1 =0.022 J.tF 20%
R2 and C1 set low-pass cutoff frequency: fc = 1/(2ltR2 x C1)
For values given above, fc = 3.6 kHz
Gain control can beadded by connecting a 1O-J.tF capacitor in series with a 1O-kQ pot. This series combination
is connected between pins 1 and 8. When this is done, R1 should be increased to approximately 250 kQ.

Figure 1-7. Power Amplifier Interface Circuit

1.6.2

Single-Pin Single Ended (Option 2) - Accurate to Only 9 Bits (± 1 LSB)

Option 2 is designed for use with a single-transistor amplifier, offering the lowest-cost solution and still
retaining all 10 I/O pins. It has only 9 bits of resolution, and the amplifier power consumption is higher than
the four-transistor amplifier mentioned above. It is available on the TSP50C10, TSP50C11, and the
TSP50C14. The duty cycle of the output is proportional to the output value. If the output value is 0, the duty
cycle is 50%. As the output value increases from to the maximum, the duty cycle goes from being high
50% of the time up to 100% high. As the value goes from 0 to the most negative value, the duty cycle
decreases from 50% high to 0%.

°

Each pulse of the DAC is divided into 480 segments per sample period. As shown in Figure 1-8, when the
output value is x = -480 to 480, DA 1 will go low for 1x/2-2401 segments. When the output value is 0, DA 1
goes low for 240 segments.
1-6

NOTE: Using Option 2 causes a click at the beginning and end of speech and (under certain conditions)
during synthesis. Software is available to minimize these clicks.
1x12 + 2401

DA1

High

JlJ

Low

1><12-2401

o

1

2

Output Value = x
where x = 480 to- 480
(as shown x = 240)

DA1

o

1

2

Output Value = 120

o

o

2

Output Val ue = 480

1

2

Output Value = 0

n
~ ~ ~ ~

~: t-

t- Jlf' t- rT- t-

o

2

Output Value = - 480

o

2

Output Value = 2

o

Output Value

2

=478

o

1

Output Value

2

=-240

Figure 1-8. D/A Output Waveform for Single Ended (Option 2)
Figure 1-9 shows an example of a circuit that can be used with option 2.
VDD-------.~------~----~

+

+

O.1-IAF
Disc

SOOO

DA1----~~--_+~

vss-------e------~~--~

Figure 1-9. One-Transistor Amplifier Circuit

1.6.3

Single-Pin Double Ended (Option 3) - Accurate to 10 Bits (±1/2 LSB)

Option 3 is provided for use with operational and power amplifiers. It offers both 10 bits of resolution and
10 I/O pins and is available on the TSP50C1 0, TSP50C11, and the TSP50C12. When the output value is
zero, the D/A output is biased at approximately 1/2 Voo. When the output value is positive, the D/A output
pulses to about 1/2 Voo -1 V. The duty cycle is proportional to the output value. When the output value is
negative, the D/A output pulses to 1/2 Voo+1 V with a duty cycle proportional to the output value.
Figure 1-10 shows examples of D/A output waveforms with different output values. Each pulse of the DAC
is divided into 480 segments per sample period. For a positive output value x = 0 to 480, DA 1 will go low
to 1/2 Voo -1 V for x segments. When the DAC is idle, or the output value is 0, DA1 will go to 1/2 Voo. For
a negative value x = 0 to -480, DA1 will go high to 1/2 VOO + 1 V for Ixl segments.

1-7

1/2VOO+1 V

-rr n.rr
480-x

OA1

1/2VOO
1/2VOO-1 V

x

0

2

0

1/2VOO

_m

--------

479

0

2

2

OU1put Value = 479

OU1put Value = 240

0

2

Output Value = 480

240

Ixl

OA1

1

240

Output Value = x
where x = 0 to 480
(as shown x = 360)

1/2VOO+1 V

T-T---

240

_lliL

480+x

--------

240

1/2VOO-1 V

o

o

2

Output Value = x
where x = 0 to-480
(as shown x = -360)

o

2

1

2

Output Value = 0

Output Value = -240

o

2

Output Value =-480

Figure 1-10. D/A Output Waveform - Single-Pin Double Ended (Option 3)
Figure 1-11 shows an example of a circuit that can be used with option 3.
100 kQ
V
11l-F

47 kQ

OA1 ----lII-----'VV'v-_____---I

>-......-~2Vp·p

10 kQ
VOO/2

Figure 1-11. Operational Amplifier Interface Circuit

1.7

TSP50C10/11 Pin Assignments and Descriptions

Figure 1-12 shows the pin assignments for the TSP50C10/11. Table 1-1 provides terminal functional
descriptions. Table 1-2 shows the possible TSP50C1 0/11 I/O configurations. Figure 1-13 illustrates the
recommended power-up initialization circuit. Note thatthe pull up resistor is required to be lower than 50 kQ.
Figure 1-14 illustrates the recommended clock circuit. Refer to Section 6 for more information on I/O
configuration.

1-8

N PACKAGE
(TOP VIEW)

PA3
PA2
PA1

PA4
PA5
PA6

PAO

PA7

VSS

VDD

INIT
OSC1
OSC2

DA1
PB1/DA2

PBO

Figure 1-12. TSP50C10/11 Pin Assignments
Table 1-1. TSP50C10/11 Terminal Functions
PIN
NAME

NO.

DA1

11

DA2

10t

DESCRIPTION

I/O

a
a

D/A output. Three mask options are available.
D/A output. Three mask options are available.

INIT

6

I

Initialize input. When INIT goes low, the clock stops, the TSP50C10/11 goes
into low-power mode, the program counter is set to zero, and the contents of
the RAM are retained. An INIT pulse of 1 I-ls is sufficient to reset the
processor.

OSC1

7

I

Clock input. Crystal or ceramic resonator between OSC1 and OSC2, or
signal into OSC1. 9.6 MHz for 10-kHz sampling rate or 7.68 MHz for 8-kHz
sampling rate.

OSC2

8

-

PAD-PA7

1-4,13-16

I/O

PBO-PB1

9-10t

I/O

VDD

12

-

5-V supply voltage

VSS

5

-

Ground terminal

Clock return
8-bit bidirectional I/O port
2-bit bidirectional I/O port

t The operation of this pin depends on the D/A option selected.

1-9

Table 1-2. TSP50C10/11 I/O Configurations

MASTER

PIN
4
3
2
1
16
15
14
13
9

10

1·PIN D/A
PAO
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PBO
PB1

1·PIN D/Af
PAO
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PBO
IRQ

2·PIN D/A
PAO
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PBO
OA2

SLAVE
1·PIN D/A

MASTER
1·PIN D/A
6OC18

DO
01
02
03
04
05
06
BUSY/07
CE

CO
C1
C2
C3
PA4
PA5
PA6
SRCK
STR

RIW

RIW

t With external interrupt
VDD

P
1

47 kQ

INIT

Optional
Reset
Switch

O.1I-tF

Figure 1-13. Power-Up Initialization Circuit

TSP5OC1x

eLK
1

OSC1

MQ
OSC2

9.S-MHz or 7.68-MHz
Crystal or Ceramic Resonator

Figure 1-14. Oscillator Circuit

1-10

T

30pF

1.8

TSP50C12 Pin Assignments and Descriptions

Figure 1-15 shows the pin assignments for the TSP50C12. Table 1-3 provides terminal functional
descriptions. The I/O configurations in Table 1-2 also applies to the TSP50C12, but the pin numbers given
are different. Figure 1-13 illustrates the recommended power-up initialization circuit, and Figure 1-14
illustrates the recommended clock circuit. The TSP50C12 is available as a 68-pin PLCC or as a die. Refer
to Section 6 for more information on I/O configuration.
PLCC PACKAGE
(TOP VIEW)
C\J~

~ &5 &5 ~ It:: ~ ~ C\i ~ () () () () () ()

U ()
~OO~~wwwwzzzzzzzz

PB1/DA2

10

VDD

11
12

DA1
VSS

C8
C7
C6
C5
C4
C3
C2
C1
SO
S1
S2
S3
S4

9

8 7

6

5

4 3

2

1 68 67 66 65 64 63 62 61

19

51

NC
NC
NC
NC
NC
S19
S18
S17
S16
S15

20

50

VC1

21

49

VLCD

22

48

VC2

23

47

VX2

24

46

25

45

S14
S13
S12

60
59
58

13
14

57

15

55

16

54

17

53

18

52

56

26
44
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

NC - No internal connection

Figure 1-15. TSPSOC12 Pin Assignments

1-11

Table 1-3. TSP50C12 Terminal Functions
PIN

I/O

DESCRIPTION

NAME

NO.

DA2

10t
12

0
0

D/A output. D/A options 1 and 3 are available.

DA1
PB1

10t

I/O

Bidirectional I/O pin

PBO

9

I/O

D/A output. D/A options 1 and 3 are available.
Bidirectional I/O pin

INIT

5

I

Initialize input. When INIT goes low, the clock stops, the
TSP50C12 goes into low-power mode, the program counter is set
to zero, and the contents of the RAM are retained. An INIT pulse
of 1 [!S is sufficient to reset the processor.

OSC1:j:

7

I

Clock input. Crystal or ceramic resonator between OSC1 and
OSC2, or signal into OSC1. 9.6 MHz for 1O-kHz sampling rate or
7.68 MHz for 8-kHz sampling rate.

OSC2:j:

8

-

PAO-PA7

31-38

I/O

8-bit bidirectional I/O port

C1-C8

14-21

0

LCD common lines (rows)

SEG1-SEG24

1-4,22-26,
28-30,39-41,
43-46, 51 -55

0

LCD segment lines (columns)

VC1

50

-

VC2

48

-

Voltage doubler capacitor connection

VX2

47

5-V supply voltage
Ground terminals

VLCD

49

VDD

11,27

-

VSS

6,13,42

-

Clock return

LCD supply voltage

t The operation of this pin depends on the D/A option selected.
:j: Ceramic resonator requires two pins. RC oscillator requires one pin for timing and one buffered clock output for trim
monitoring.

1.9

TSP50C14 Pin Assignments and Descriptions

Figure 1-16 shows the pin assignments for the TSP50C14. Table 1-4 provides terminal functional
descriptions. The I/O configurations in Table 1-2 apply to the TSP50C14 with the exception of the pin
numbering and the DA2 pin assignment. Figure 1-13 illustrates the recommended power-up initialization
circuit for the TSP50C14. For most configurations, OSC1 should be tied to either Vss or VDD. Refer to
Section 6 for more information on I/O configurations.
N PACKAGE
(TOP VIEW)

PA3
PA2
PA1
PAO
Vss

INIT
OSC1
PBO

PA4
PA5
PAS
PA7
DA1
DA2
VDD

PB1

Figure 1-16. TSP50C14 Pin ASSignments
1-12

Table 1-4. TSP50C14 Terminal Functions
PIN
NAME

NO.

DA1

11

DA2

12

INIT

6

OSC1

DESCRIPTION

I/O

0
0

D/A output. D/A options 1 and 2 are available.t
D/A output. D/A options 1 and 2 are available.t

I

Initialize input. When INIT goes low, the clock stops, the TSP50C14 goes
into low-power mode, the program counter is set to zero, and the contents
of the RAM are retained. An INIT pulse of 1 [.IS is sufficient to reset the processor.
Clock input. When not in use, OSC1 should be tied to VSS or VDD.

7

I

PAD-PA7

1-4,13-16

I/O

8-bit bidirectional I/O port

PBO-PB1

8-9

I/O

2-bit bidirectional I/O port

VDD

10

VSS

5

-

5-V supply voltage
Ground terminal

t Both DA1 and DA2 are driven with the same levels, if option 2 is selected.

1.10

Introduction to LPC (Linear Predictive Coding)

The LPC-12 system uses a mathematical model of the human vocal tract to enable efficient digital storage
and recreation of realistic speech. To understand LPC, it is essential to understand how the vocal tract
works. This introduction, therefore, begins with a short description of the vocal tract, after which the LPC
model and data compression techniques are addressed. A short discussion of the techniques and pitfalls
of collecting, analyzing, and editing speech for LPC synthesis is included in Appendix A. For more
information, contact your TI Field Sales Representative or Regional Technology Center.

1.10.1

The Vocal Tract

Speech is the result ofthe interaction among three elements in the vocal tract-air from the lungs, a restriction
that converts the air flow to sound, and the vocal cavities that are positioned to resonate properly.
Air from the lungs is expelled through the vocal tract when the muscles of the chest and diaphragm are
compressed. Pressure is used as a volume control with higher pressure for louder speech.
As air flows through the vocal tract, it makes little sound if there is no restriction. The vocal cords are one
type of restriction. They can be tightened across the vocal tract to stop the flow of air. Pressure builds up
behind them and forces them open. This happens over and over, generating a series of pulses. The tension
on the vocal cords can be varied to change the frequency of the pulses. Many speech sounds, such as the
A sound, are produced by this type of restriction, which is called voiced speech.
A different type of restriction in the mouth causes a hissing sound called white noise. The S sound is a good
example. White noise occurs when the tongue and some part of the mouth are in close contact or when the
lips are pursed. This restriction causes high flow velocities that cause turbulence that produces white noise,
which is called unvoiced speech.
The pulses from the vocal cords and the noise from the turbulence have fairly broad, flat spectral
characteristics. In other words, they are noise, not speech. The shape of the oral cavity changes noise into
recognizable speech. The positions of the tongue, the lips, and the jaws change the resonance of the vocal
tract, shaping the raw noise of restricted airflow into understandable sounds.

1-13

1.10.2

The LPC Model

The LPC model incorporates elements analogous to each of the elements of the vocal tract previously
described. It has an excitation function generator that models both types of restriction, a gain multiplication
stage to model the possible levels of pressure from the lungs, and a digital filter to model the resonance in
the oral and nasal cavities.
Figure 1-17 shows the LPC model in schematic form. The excitation function generator accepts coded pitch
information as an input and can generate a series of pulses similar to vocal cord pulses. It can also generate
white noise. The waveform is then multiplied by an energy factor that corresponds to the pressure from the
lungs. Finally, the signal is passed through a digital filter that models the shape of the oral cavity. In the
TSP50C1 x, this filter has twelve poles, so the synthesis is referred to as LPC-12.
Pitch

Periodic

...IlIlIL/L

LPC-12
Digital
Filter

i

White Noise

~

Energy

DAC

r

K1-K12
Filter
Coefficients

Figure 1-17. LPC-12 Vocal Tract Model

1.10.3

LPC Data Compression

The data compression for LPC-12 takes advantage of other characteristics of speech. Speech changes
fairly slowly, and the oral and nasal cavities tend to fall into certain areas of resonance more than others.
The speech is analyzed in frames generally from 10 ms to 25 ms long. The inputs to the model are calculated
as an average for the entire frame. The synthesizer smooths or interpolates the data during the frame so
that there is not an abrupt transition at the end of each frame. Often speech changes even more slowly than
the frame.
The Texas Instruments LPC model allows for a repeat frame in which the only values changed are the pitch
and the energy. The filter coefficients are kept constant from the previous frame. To take advantage of the
recurrent nature of resonance in the oral cavity, all the coefficients are encoded with anywhere from seven
to three bits for each coefficient. The coding table is designed so that more coverage is given to the
coefficient values that occur frequently.

1-14

2

TSP50C1x Family Architecture

As shown in the block diagram in Figure 2-1, the major components of the TSP50C1x are a speech
synthesizer, an 8-bit microprocessor, an internal 8K-byte (TSP50C10) or 16K-byte (TSP50C11/12/14)
ROM, and input/output ports.
When synthesis is disabled, instructions are fetched by the microprocessor from the ROM 600,000 (1 O-kHz
speech sample rate) or 480,000 (8-kHz speech sample rate) times per second. These instructions control
the actions of the TSP50C1 x. By placing different instruction patterns in the ROM, the TSP50C 1x can be
programmed to accomplish a wide variety of tasks. To generate speech, the processor accesses speech
data from either the internal ROM or an external source such as a TSP60C18 speech ROM, an EPROM,
or a host processor. Once the data has been read, the processor must unpack and decode the individual
speech parameters and store the results in a dedicated section of the RAM.
The synthesizer shares access to the RAM and addresses the individual parameter locations as needed
when generating speech. The instruction execution rate slows to 280,000 or 224,000 instruction cycles per
second during synthesis because the synthesizer also shares the ALU (Arithmetic Logic Unit) and ROM
data paths with the microprocessor. The microprocessor must perform interpolation during each frame as
well as fetch the data for the next frame.
The I/O consists of one 8-bit bidirectional port (Port A) and one 2-bit bidirectional port (Port B). Each bit can
be software configured for input or output and for push pull or open drain (no pullup driver). There are two
specialized I/O modes for specific functions. Slave mode configures the TSP50C1x to act as a peripheral
to a host microprocessor. External ROM mode allows the TSP50C1 x to interface with a TSP60C18 speech
ROM.

2-1

D/A Output

Figure 2-1. TSP50C1x System Block Diagram
2-2

2.1

Read-Only Memory (ROM)

The TSP50C1 0 has an 8K-byte ROM. The TSP50C11 /12/14 each have a 16K-byte ROM. It can be used
for program instructions and speech data as required by the application. Certain locations in the ROM,
described in Table 2-1, are reserved for specific purposes.

Table 2-1. Reserved ROM Locations
FUNCTION

ADDRESS

0000

Execution start location after INIT rising edge

0010-001F

Interrupt start locations (see Section 2.21)

1FEO-1FFF

Texas Instruments test code for TSP50C1 0

3FEO-3FFF

Texas Instruments test code for TSP50C11/12/14

The ROM may be accessed in the following four ways:

2.2

1.

The program counter is used to address processor instructions.

2.

The GET instruction can be used to transfer 1 to 8 bits from the ROM to the A register. The GET
counter is initialized by the LUAPS instruction. The SAR (speech address register) points to the
ROM location to be used.

3.

The LUAA instruction can be used to transfer a byte from the ROM into the A register. The value in
the A register when LUAA is executed points to the ROM address to be used.

4.

The LUAB instruction can be used to transfer a byte from the ROM into the B register. The value in
the A register when LUAB is executed points to the ROM address to be used

Program Counter

The TSP50C1 x has a 14-bit program counter that points to the next instruction to be executed. After the
instruction is executed, the program counter is normally incremented to point to the next instruction.
The following instructions modify the program counter:
BR
BRA
SBR
CALL
RETN
RETI

2.3

-

branch
branch to address in A register
short branch
call subroutine
return from subroutine
return from interrupt

Program Counter Stack

The program counter stack has three levels. When a subroutine is called or an interrupt occurs, the contents
of the program counter are pushed onto the stack. When an RETN (return from subroutine) or an RETI
(return from interrupt) is executed, the contents of the top stack location are popped into the program
counter.

2-3

2.4

TSP50C10/11 Random-Access Memory (RAM)

The TSP50C10/11 RAM has 128 locations (Figure 2-2). The first 16 RAM locations are used by the
synthesizer and are 12 bits long. The remaining 112 locations are 8 bits long. When not synthesizing speech,
the entire RAM may be used for algorithm data storage. The I/O control registers are also mapped into the
RAM address space from 80 to 87. For more information, see Section 2.18.
11

10

9

8

7

6

5

4

3

2

Address

0

IIIIIIIIIIIII

00 (Synthesis RAM)
01

OE
OF
10 (General-Purpose RAM)
11

7E
7F
80 (I/O)

81

86

I

IIIIIII

I

87

Figure 2-2. TSP50C10/11 RAM Map

2-4

2.5

TSP50C12 Random-Access Memory (RAM)

The TSP50C12 RAM has 1612-bit synthesizer RAM locations and 112 8-bit general purpose RAM locations
(Figure 2-3). The RAM also has 24 8-bit display RAM locations and one 4-bit contrast adjustment register.
The I/O ports are mapped into RAM address space from FO-F7.
11

10

9

8

7

6

5

4

3

2

1

0

Address

I I I I I I I I I I I I I :~y~esISRAM)
OE
OF
10 (General-Purpose RAM)
11

7E
7F
80 (Display)

81

96
97

111111111

98 (Contrast)

FO (I/O)

II I I I I I I I I

F1

I
F6

II I I I I I I I

F7

Figure 2-3. TSP50C12 RAM Map

2-5

2.6

TSP50C14 Random-Access Memory (RAM)

The TSP50C14 RAM has the same RAM layout as the TSP50C1 0/11 (see Figure 2-2) with one exception.
The general-purpose RAM location range is from 10 to 3F.

2.7

Arithmetic Logic Unit (ALU)

The ALU performs arithmetic and logic functions for the microprocessor and the synthesizer. The ALU is
14 bits in length, providing the resolution needed for speech synthesis. When 8-bit data are transferred to
the ALU, they are right justified. The input to the upper 6 bits may be either zeros (integer mode) or equal
to the MSB of the 8-bit data (extended-sign mode) depending on the arithmetic mode selected using the
EXTSG and INTGR instructions. See the description of each instruction for specific information. All bit and
comparison operations are performed on the lower 8 bits. The ALU is capable of doing an 8-bit by 14-bit
multiply with a 14-bit scaled result in a single instruction cycle.

2.8

A Register

The A register or accumulator is the primary 14-bit register and is used for arithmetic and logical operations.
Its contents can be transferred to or from ROM, RAM, and most of the other registers. The contents are
saved in a dedicated storage register during level-1 interrupts and restored by the RETI instruction.
A Register
13 12 11

10

8

9

I I I I I I
2.9

765

4

2

3

o

I I I

X Register

The X register is an 8-bit register used as a RAM index register. All RAM access instructions except for the
direct-addressing instructions TAMD, TMAD, and TMXD use the X register to point to a specific RAM
location. The X register can also be used as a general-purpose counter. The contents of the X register are
saved during level-1 interrupts and restored by the RETI instruction. If a RAM location with an illegal address
is loaded via the X register, the EVM board with the TSE chip will accept it, but a problem will appear on the
TSP chip.

765

I
2.10

X Register
432

I

0

I

I

B Register

The 14-bit B register is used for temporary storage. It is helpful for storing a RAM address because it can
be exchanged with the X register using the XBX instruction. The B register can be added to, subtracted from,
or exchanged with the A register, making it useful for data storage after calculations. The contents of the
B register are saved during level-1 interrupts and restored by the RETI instruction.
B Register
13 12 11

10

9

8

765

I I I I I I I I I

2-6

4

3

2

o

2.11

Status Flag

The status flag is set or cleared by various instructions depending on the result of the instruction. Refer to
the individual description of instructions in Section 5 to determine the effect an instruction has on the value
of the status flag. The BR, SBR, and CALL instructions are conditional, modifying the program counter only
when the status flag is set. The value of the status flag is unknown at power up. Therefore, if the first
instruction after power up is one of these conditional instructions, the execution of the instruction cannot be
predicted. The value of the status flag is saved during interrupts and restored by the RETI instruction.
Status Flag

o

D
2.12

Integer Mode Flag

The integer mode flag is set by the INTGR instruction and cleared by the EXTSG instruction. When the
integer mode flag is set (integer mode), the upper bits of data less then 14 bits in length will be zero filled
when being transferred to, added to, or subtracted from the A and B registers. When the integer mode flag
is cleared (extended-sign mode), the upper bits of data less than 14 bits in length will be sign extended when
being transferred to, added to, or subtracted from the A and B registers. The value of the integer mode flag
is saved during interrupts and restored by the RETI instruction.
Integer Mode Flag

o

D
2.13

Timer Register

The a-bit timer register is used for generating interrupts and for counting events. It decrements once each
time the timer prescale register goes from 00 to FF. It can be loaded using the TATM instruction and
examined with the TIMA instruction. When it decrements from 00 to FF, a level-2 interrupt request is
generated. If interrupts are enabled and no interrupt is being processed already, an immediate interrupt
occurs; if not, the interrupt request remains pending until interrupts are enabled. The timer continues to
count whether or not it is reloaded. The timer will not decrement before it is initialized. However, on the EVM,
the timer will decrement after a STOP/RUN.
Timer Register

765

432

I I
2.14

0

I I I

I

Timer Prescale Register

The a-bit timer prescale register is a programmable divider between the processor clock and the timer
register. When it decrements from 00 to FF, the timer register is also decremented. The timer prescale
register is then reloaded with the value in its preset latch, and the counting starts again.
The timer prescale register clock comes from an internal clock. The internal clock runs at 1/16 the clock
frequency of the chip; thus, the timer prescale register decrements once every instruction cycle when not
in LPC mode. The TAPSC instruction loads the timer prescale register's preset latch. If the timer has not
yet been initialized with the TATM instruction, the TAPSC instruction also loads the timer prescale register.
Timer Prescale Register

765

I I

4

321

I

0

I
2-7

2.15

Pitch Register

Although the 14-bit pitch register and pitch period counter are part of the synthesizer, they affect the
microprocessor in many ways. The pitch period counter controls the timing of the periodic impulse
(excitation function) that simulates the vocal cords. On the TSP50C1 x, the pitch period counter is also used
to control the interpolation of all speech parameters during each frame. This pitch-synchronous interpolation
helps to minimize the inevitable noise from interpolation by making it occur at the lowest energy part ofthe
speech and by making it a harmonic of the speech fundamental frequency.
The pitch register is used when LPC speech is being synthesized. The following discussion presumes that
the LPC mode is active. The pitch register is loaded with the TASYN instruction. When speech starts, the
pitch period counter is cleared. The pitch period counter is decremented by 2016 for each speech sample,
with speech samples occurring at an 8-kHz or 1O-kHz rate. When the pitch period counter decrements past
zero, the pitch register is added to it. When the pitch period counter goes below 20016 or when a pitch register
is added to it with a result less than 20016, a level-1 interrupt occurs. This interrupt can be used for
interpolation. The excitation function is put out when the pitch period counter is between 14016 and 00. For
further information, see Section 6.
13 12 11

10

9

Pitch Register
8
7
6
5

I I I I I

4

3

2

o

I I

I I I

For voiced or unvoiced frames, the LSB and the MSB ofthe A register must be zero when data is transferred
from the A register to the pitch register with the TASYN instruction (see the following illustration). If this is
not done, problems with the TSP50C1 x chip may occur. Also, these problems may not be apparent when
using the TSE50C1x chip.
A Register

13 12 11

10

9

8

7

6

5

4

3

2

o

4

3

2

o

I I I I I I I I I I
0

Pitch Register

13 12 11

10

9

8

7

6

5

I I I I I I I I I
0

For voiced frames, the pitch register must be loaded with a value no higher than 1FFE 16 . In addition, there
are three recommendations for the minimum pitch register value for voiced frames. First, it is required that
the pitch register value be 4216 or higher. If this is not done, problems with the TSP chip may occur which
are not apparent with the TSE Chip. Second, it is strongly recommended that the pitch register be loaded
with a value of 14216 or higher. This permits the complete excitation pulse to be used in the LPC synthesis.
Third, for best results with the recommended software algorithms, a pitch register value of 20216 or higher
is recommended. The requirement that the pitch register value be less than or equal to 1FFE16 and the
recommendation of a value greater than or equal to 14216 result in a pitch range of 39 Hz to 994 Hz when
operating with a 1O-kHz sample rate.
For unvoiced frames, the pitch register is required to be loaded with a value between 4216 and 3FE16. If this
is not done, problems with the TSP chip may occur which are not apparent with the TSE chip.

2-8

2.16

Speech Address Register

The speech address register (SAR) is a 14-bit register that is used to point to data in internal ROM. The
LUAPS instruction transfers the value in A to the speech address register and loads the parallel-to-serial
register (see Section 2.17) with the internal ROM value pointed to by the SAR. The GET instruction can then
be used to bring 1 to 8 bits at a time from the parallel-to-serial register into the accumulator. Whenever the
parallel-to-serial register becomes empty, it is loaded with the internal ROM value pointed to by the SAR,
and the SAR is incremented.
Speech Address Register
13 12 11

10

9

8

I I I I I I I
2.17

7

6

5

4

2

3

o

I I

Parallel-to-Serial Register

The 8-bit parallel-to-serial register is used primarily to unpack speech data. It can be loaded with 8 bits of
data from internal ROM pointed to by the speech address register, internal RAM pointed to by the X register,
or external TSP60C18 speech ROM pointed to by the SAR in the TSP60C 18. The LUAPS instruction is used
to initialize the parallel-to-serial register and zero its bit counter. GET instructions can then be used to
transfer one to eight bits from the parallel-to-serial register to the accumulator. When the parallel-to-serial
register is empty, it is automatically reloaded. When the GET is from RAM, however, the X register is not
automatically incremented. The EXTROM and RAMROM bits in the mode register control the source for the
parallel-to-serial register. See the speech address register description in Section 2.16 for more information.
Parallel-to-Serial Register
765 4 321
0

I I
2.18

I

Input/Output Ports

Ten bidirectional lines - 8-bit Port A and 2-bit Port B - are available for interfacing with external devices. Each
bit is individually programmable as an input or an output under the control of the respective data direction
register. In addition, each output bit can be individually programmed using the pullup enable register for one
of two output modes - push pull or open drain (no pullup). Each input bit can be programmed by the same
register for resistive pull up or high impedance. The four registers associated with each of the two I/O ports
are memory mapped. Only two bits of Port B are available on the outside of the chip, and the states of the
upper six bits of its registers are undetermined. Transfers from any of the I/O port registers to the A register
leave the upper six bits (bits 13-9) of the A register undetermined. Details of the I/O registers are shown
in Table 2-2.

2-9

Table 2-2. I/O Registers
REGISTER
Data Input Register
Pullup Enable Register
Data Direction Register
Data Output Register

LOCATIONt
PORTB
84
85
86
87

TYPE
(DIR)
(PER)
(DDR)
(DOR)

PORTA
80
81
82
83

Read Only
Read/Write
Read/Write
Read/Write

t For the TSP50C12, the register locations are FO-F7.
DESIRED PIN FUNCTION
Input, High Impedance
Input, Internal Pullup
Output, Active Pullup
Output, Active Pullup
Output, Open Drain
Output, Open Drain

DOR
X
X
0
1
0
1

DDR
0
0
1
1
1
1

PER
0
1
0
0
1
1

PIN STATE
High Impedance
Passive Pullup
0
1
0
High Impedance

A read of the DDR, PER, and DOR registers indicates the last value written to them.
A read of the DIR always indicates the actual level on the I/O pin, which is true even when the DDR is set
for output. This allows true bidirectional data flow without having to switch the port between input and output.
To avoid high-current conditions, this should only be attempted on pins set for open drain with a 1 written
to the data register.
Leaving a high-impedance I/O pin unconnected could cause power consumption to rise while the processor
is in run mode. The power consumption will be between VDD and VSS, with no increase in current through
the input. This should cause no problem with device functionality.
When the part is in standby mode, unconnected high-impedance pins have no effect on either power
consumption or device functionality.
The I/O can also be put in slave mode, making the TSP50C1x usable as a peripheral to a host
microprocessor. Port A can be connected to an 8-bit data bus and controlled by R/W (Port B 1) and chip
enable (Port BO). A read (R/W high and chip enable low) puts the Port A output latch values out on Port A.
A write (R/W low and chip enable low) latches the value on the data bus into the Port A input latch. In addition,
bit 7 of the A output latch is cleared. This makes it possible to use A7 as a write handshake line. Any lines
that are to be used on the data bus in this mode should be configured as inputs.
In external ROM mode, the TSP50C1 x can be interfaced easily to a TSP60C18 speech ROM. Port BO is
used as a chip enable strobe output to the TSP60C18, and Port A7 is used as a clock. Port AO to A3 are
used for address and data transfer, and one other bit must be used for read/write control ofthe TSP60C18.
When the two-pin push-pull option is selected for the D/A output on the TSP50C1 0/11/12, Port B 1 is used
for the second D/A pin, making it unavailable for I/O. In this case, no attempt should be made to use the B1
interrupt.
If the PCM and LPC mode register bits are both cleared, a high-to-Iow transition on B1 causes a level-1
interrupt. This can be used to generate an interrupt with an external event.

2.19

Mode Register

The mode register (Table 2-3) is an 8-bit write-only register that controls the operating mode of the
TSP50C1x. When the INIT pin goes low, all mode register bits are cleared. The mode register is not saved
during a subroutine call or interrupt.
2-10

2.20

Speech Synthesizer

The task of generating synthetic speech is divided between the programmable microprocessor and the
dedicated speech synthesizer. The four speech synthesizer modes, which are set by the LPC and PCM bits
in the mode register, are discussed in the following paragraphs.
Table 2-3. Mode Register

654

7

UNV

MASTER

BIT NAME

I RAMROM I EXTROM I

3

2

1

ENA2

PCM

LPC

BIT LOW

o

1 ENA1

BIT HIGH

ENA1

Disables level-1 interrupt

Enables level-1 interrupt

LPG

Disables LPG processor - all instruction cycles
used by the microprocessor.

Enables LPG processor - 53% of instruction
cycles dedicated to LPG synthesis.

PGM

Disables PGM mode. Level-1 interrupt is either
PPG < 20016 in LPG mode or pin 81 otherwise.

Enables PGM mode. LPG high causes an interrupt
rate of fosc/960 and microprocessor control of
LPG excitation value. LPG low causes an interrupt
rate of fosc/480 and microprocessor control of
D/A register.

ENA2

Disables level-2 interrupt

Enables level-2 interrupt

EXTROM

Disables operation of external ROM hardware
interface.

Enables operation of external ROM hardware
interface.

RAMROM

Enables data source for GET instructions to be
either internal or external ROM.

Enables data source for GET instructions to be
internal RAM.

MASTER

Enables I/O master operation. All available I/O
pins are controlled by internal microprocessor.

Enables I/O slave operation. Pin 80 becomes
hardware chip enable strobe, and 81 becomes
R/W. Port A is controlled by 80 and 81.

UNV

Enables pitch-controlled excitation sequence
when in LPG mode (PGM low, voiced).

Enables random excitation sequence when in LPG
mode (PGM low, unvoiced).

2.20.1

SyntheSizer Mode 0 - OFF

When the PCM and LPC bits are both cleared, the synthesizer is disabled. All instruction cycles are devoted
to the microprocessor. The TASYN instruction transfers the A register to the pitch register, making it easy
to load the pitch register before starting the LPC synthesizer. In this mode, the level-1 interrupt is triggered
by a high-to-Iow transition on pin B1.

2.20.2

SyntheSizer Mode 1 - LPC

This is the normal speaking mode. The TASYN instruction loads the pitch register, and the level-1 interrupt
is triggered by the pitch register going below 20016. Fifty-three percent of the instruction cycles are used
by the synthesizer.
The microprocessor controls speech synthesis by unpacking and decoding parameters, by setting the
update interval (frame rate), and by interpolating the parameters during the frame. The speech synthesizer
acts as a 12-pole digital lattice filter, a pitch-controlled or white-noise excitation generator, a 2-pole digital
low-pass filter, and a digital-to-analog converter. Speech parameter input is received from dedicated space
in the microprocessor RAM, and speech samples are generated at 8 kHz or 10kHz. Communication
between the microprocessor and the speech synthesizer takes place via a shared memory space in the
microprocessor RAM. Refer to Section 6 for more information.

2-11

2.20.3

Synthesizer Mode 2 - PCM

This mode is used for tone and music generation or for very-high-bit-rate speech. The microprocessor uses
all the instruction cycles, and the TASYN instruction transfers the A register directly to the D/A register. The
level-1 interrupt occurs at a rate twice the speech sample rate (16 kHz or 20 kHz), giving access to the
unfiltered D/A output.

2.20.4

Synthesizer Mode 3 - PCM and LPC

When both the PCM and LPC bits are set, the LPC synthesizer runs normally with its excitation function
provided by software. The level-1 interrupt occurs at the speech sample rate, and the TASYN instruction
transfers the A register to the excitation function input of the synthesizer. This mode is included for use with
RELPS (Residual Encoded Linear Predictive Synthesis) and similar techniques. The synthesizer takes 50%
of the instruction cycles in this mode.

2.20.5

Use of RAM by the Synthesizer

The synthesizer uses locations 01 to OF in the RAM. When synthesis is taking place, the parameters for the
synthesizer come directly from these RAM locations. The addresses are shown in Figure 2-4.
Address 11

10

9

8

7

6

5

4

3

2

00

not used for synthesis

01

Energy

02

K12 (LPC-12 values)

03

K11

04

K10

05

K9

06

K8

07

K7

08

K6

09

K5

OA

K4

08

K3

OC

K2

00

K1

OE

C1 (low-pass filter)

OF

C2

Figure 2-4. RAM Map During Speech Generation

2-12

Comments

0

2.20.6

Frame-Length Control

The frame length is controlled by: a) The value put into the prescale register and b) The range over which
the timer is allowed to vary. Typical synthesis and interpolation routines let the timer decrement through a
range of fixed size, so the prescale value should be selected to give the proper frame duration based on
the timer's range.

2.20.7

Digital-to-Analog Converter

The TSP50C1x contains an internal digital-to-analog converter (DAC) connected to the output of the
synthesizer. The DAC is available in three pulse-width-modulated forms for the TSP50C10/11 and two
pulse-width modulated forms for the TSP50C12/14. See Section 1.6 for more information. The DAC outputs
samples at a rate given by fosc/480. For a 9.6-MHz oscillator, this results in an output sample rate of 20
kHz. For a 7.68-MHz oscillator, this results in an output sample rate of 16 kHz. The DAC output rate is twice
the speech sample rate, with a digital low-pass filter in all modes except PCM mode. When the synthesizer
is off (mode 0), the DAC goes to an off state. This state is the same as a zero state for the two-pin and
double-ended one-pin modes, but in the single-pin single-ended mode, the DAC goes to the maximum
negative value. This fact must be taken into account to minimize clicks during speech.

2.21

Interrupts

The TSP50C1x has two interrupts: interrupt-1 and interrupt-2. Both are enabled and disabled by bits in the
mode register. Interrupt-1 is a synthesis interrupt and has a higher priority. It also has more hardware
support. When an interrupt-1 occurs, the program counter is placed on the program counter stack, and the
status flag, integer mode flag, A register, B register, and X register are all saved in dedicated storage
registers. The mode register is not saved and restored during interrupts. Then the program counter is loaded
with the interrupt start location and execution of the interrupt routine begins. When the interrupt routine
returns, all these registers are restored, and the program counter is popped from the stack.
Interrupt-1 is caused by 1 of 4 conditions depending on the state ofthe two mode-register bits PCM and LPC.
These conditions, as well as the interrupt routine start address for each case, are shown in Table 2-4.

Table 2-4. Interrupt-1 Vectors
ADDRESS

PCM

LPC

INTERRUPT TRIGGER

0018 16
001A16

0

1

0

0

Pin 81 goes from high to low (see Section 2.18)

001C16

1

1

fosc/960 clock (see Section 2.20.4)

001E16

1

0

fosc/480 clock (see Section 2.20.3)

Pitch counter less than 20016 (see Section 2.15)

Interrupt-2 has a lower priority and cannot interrupt the interrupt-1 routine. It can be interrupted by
interrupt-1. During a level-2 interrupt, the program counter, status bit, and integer mode flag are the only
registers saved. The A register, X register, and B register must be saved by the program if they are used
by both it and the routine being interrupted. The mode register is not saved. Interrupt-2 is always caused
by a timer underflow - the timer going from 0 to FF - but it starts at different addresses depending on the
state of two mode-register bits. Table 2-5 shows the interrupt-2 vectors.

2-13

Table 2-5. Interrupt-2 Vectors
ADDRESS

PCM

LPC

0010 16
0012 16

0
0

1
0

001416

1

1

0016 16

1

0

INTERRUPT TRIGGER

Alilevel-2 interrupts caused by timer underflow

NOTE: All addresses in this manual are in hexadecimal format unless otherwise noted. All
other numbers are in decimal format unless otherwise noted.

The interrupting conditions for interrupt-1 and interrupt-2 set interrupt-pending latches. If an interrupt is
enabled (and in the interrupt-2 case, not overridden by an interrupt-1-pending condition), the interrupt is
taken immediately. If, however, the interrupt is not enabled, the pending-interrupt latch causes an interrupt
to occur as soon as the respective interrupt is enabled in the mode register.
Interrupts will not be taken in the middle of double-byte instructions, during branch or call instructions, or
during the subroutine or interrupt returns (RETN or RETI). A single instruction software loop (instruction of
BRANCH, BRA, CALL, or SBR to itself) should be avoided since an interrupt will never be taken.
Consecutively executed branches or calls delay interrupts until after the execution of the instruction at the
eventual destination of the string of branches (or calls).
If consecutive branches (or calls) are avoided, the worst-case interrupt delay in the main level will be four
instruction cycles. The worst-case delay occurs when the interrupt occurs during the first execution cycle
of a branch and the first instruction at the branch destination address is a double-cycle instruction.
When the interrupt occurs, execution begins at the interrupt address. The state ofthe status bit is not known
when the interrupt occurs, so a BR or CALL instruction should not be used for the first instruction. Two SBRs
may be used, since one of them is always taken, or it may be possible to use some other instruction that
sets the status bit, followed by an SBR.
The mode register is not saved and restored during interrupts. Any changes made to the mode register
during interrupts will remain in effect after the return, including the enabling and disabling of interrupts.

2.22

TSP50C12 LCD Functional Description

The LCD functionality of the TSP50C12 was included without adding instructions to the instruction set. An
additional 192 bits of RAM were added to serve as the display RAM. The display RAM is physically placed
at RAM addresses 80 - 97. As a result, Port A's registers are mapped from FO to F3 and Port B's registers
are mapped from F4 to F7. This RAM mapping is consistent with the SE50C1 0 emulator device used in the
extended RAM mode (pin controllable).
When data is stored into the display RAM locations, it may immediately affect the voltage levels on the LCD
segment outputs. Because the microprocessor access of RAM is time multiplexed with LCD access, there
will be no asynchronous ambiguities on segment outputs. If the display RAM update routines are slow, it
may be necessary to buffer the display data in another area of RAM and then transfer it to the display RAM
in a more time efficient block move.
An LCD voltage reference generator is also included on the TSP50C12. This circuit eliminates the need for
an external voltage reference generator.

2.22.1

TSP50C12 LCD Driver

The TSP50C12 can drive an 8 x 24 (192-segment) LCD display with 1/8 duty cycle. The driver function for
the LCD is controlled by internal timing hardware. Display data for the LCD is stored in a dedicated section
of RAM. This data is stored in pixel form with 24 consecutive 8-bit words. Table 2-6 shows the memory
locations for each pixel.
2-14

Table 2-6. TSP50C12 Display RAM Map
ADDRESS

Isb

S23c1

S22c1

S21c1

S20c1

S19c1

S18c1

s17c1

S16c1

81

S15c1

S14c1

S13c1

S12c1

S11c1

S10c1

S9c1

S8c1

82

S7c1

S6c1

S5c1

S4c1

S3c1

S2c1

S1c1

SOc1

83

S23c2

S22c2

S21c2

S20c2

S19c2

S18c2

s17c2

S16c2

84

S15c2

S14c2

S13c2

S12c2

S11c2

S10c2

S9c2

S8c2

85

S7c2

S6c2

S5c2

S4c2

S3c2

S2c2

S1c2

SOc2

86

S23c3

S22c3

S21c3

S20c3

S19c3

S18c3

s17c3

S16c3

87

S15c3

S14c3

S13c3

S12c3

S11c3

S10c3

S9c3

S8c3

88

S7c3

S6c3

S5c3

S4c3

S3c3

S2c3

S1c3

SOc3

89

S23c4

S22c4

S21c4

S20c4

S19c4

S18c4

s17c4

S16c4

8A

S15c4

S14c4

S13c4

S12c4

S11c4

S10c4

S9c4

S8c4

88

S7c4

S6c4

S5c4

S4c4

S3c4

S2c4

S1c4

SOc4

8e

S23c5

S22c5

S21c5

S20c5

S19c5

S18c5

s17c5

S16c5

S15c5

S14c5

S12c5

S11c5

S10c5

S9c5

S8c5

80

S13c5

8E

S7c5

S6c5

S5c5

S4c5

S3c5

S2c5

S1c5

SOc5

8F

S23c6

S22c6

S21c6

S20c6

S19c6

S18c6

s17c6

S16c6

90

S15c6

S14c6

S13c6

S12c6

S11c6

S10c6

S9c6

S8c6

91

S7c6

S6c6

S5c6

S4c6

S3c6

S2c6

S1c6

SOc6

92

S23c7

S22c7

S21c7

S20c7

S19c7

S18c7

s17c7

S16c7

93

S15c7

S14c7

S13c7

S12c7

S11c7

S10c7

S9c7

S8c7

94

S7c7

S6c7

S5c7

S4c7

S3c7

S2c7

S1c7

SOc7

95

S23c8

S22c8

S21c8

S20c8

S19c8

S18c8

s17c8

S16c8

96

S15c8

S14c8

S13c8

S12c8

S11c8

S10c8

S9c8

S8c8

97

S7c8

S6c8

S5c8

S4c8

S3c8

S2c8

S1c8

SOc8

NOTES:

2.22.2

msb

80

S-Segment or pixel on a given row (common time)
c:-Row (common time)
All addresses in this manual are in hexadecimal format unless otherwise noted. All other
numbers are in decimal format unless otherwise noted.

TSP50C12 LCD Drive Type A

The Type A drive method places limitations on the series resistance and pixel capacitance of the display.
This drive type requires a more complex LCD display. The Type A option must be selected by the customer
and given to TI before releasing the device for mask tooling.

2-15

c1

140--------- 1 Frame Period ----------+1

Vr
-Vr'
Vc'
Vr'
- -Vr

c2

Vr
-Vr'
Vc'
Vr'
-Vr

C8

Vr
-Vr'
Vc'
Vr'
-Vr

51
(C1/c3/C8 on)

Vr
-Vr'
Vc'
Vr'
-Vr

52
(c1/c2/c6 on)

Vr
-Vr'
Vc'
Vr'
-Vr
Vr
-Vr'
Vc'
Vr'
-Vr

53
(c1 -c8 on)

Differential Voltage Across Pixel 51c1 (Vcommon - Vsegment>

4tN

/',.v

O/',.V

51c1 "on"

-/',.V
- -4/',.V

2/',.V

/',.v

51c2 "off"

O/',.V
-/',.V

-UV
Figure 2-S. TSPSOC12 LCD Driver Type A Timing Diagram

2-16

2.22.3

TSP50C12 LCD Drive Type 8

The Type B drive method operates at a lower frequency, allowing the common signal to go high on the first
frame and to go low on the next frame. This option is preferred for applications that have large capacitance
pixel loads and high series trace resistances. This method also might be used if the microprocessor is
operated at higher frequencies. The Type B option must be selected by the customer and given to TI before
releasing the device for mask tooling.

c1

. Vr
-Vr'
- - - - - - - - - - - - - - - - - - -. Vc'
- - - - - - - - - - - - - - - - - - -. Vr'
- - - - - - - - - - - - - - - - - - - . -Vr

---------------------..,....----------1- -.
1 + - - - 1 Frame Period - - - + I

- - - - - - - - - - - - - - - - - - - - - . Vr
, . - - - - - - - - - \ - - . -Vr'
- - - - - - - - - - - - - - - -. Vc'
- - - - - - - - - - - - - . Vr'
- - - - - - - - - - - - - - - - . -Vr

c2

---------------------.

c8

~---------~-------------------

"'--------' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

S1
(c1/c3/c8 on)

S2
(c1/c2/c6 on)

S3
(c1 -c8 on)

Vr

1----------...,
----. -Vr'
- - - - - - - - - - - - - - - - - - - -. Vc'
. Vr'
- - . -Vr
- -. Vr
- - - . -Vr'
- - -. Vc'
- - -. Vr'
. -Vr

- - - - - - . Vr
- - - - - - . -Vr'
L..._-j_ -. Vc'
- - - - - - - - - - - - - - - - - - - - -. Vr'
- - - - - - - - - - - - - - - - - - - - - - - . -Vr

~----------~--.
W
- - - - - - - - - - - - - - - - - - - - - . -Vr'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - -.
- - - - - - - - - - - - - - - - - - - - -.

1------------+ ------------------- .

Vc'
Vr'
-Vr

Differential Voltage Across Pixel S1 c1 (Vcommon - V segment>

S1c1 "on"

---------

4tN
tN
OtN

---------I!.V
- - - - - - - - - - - - - - - - - - - . -41!.V

UV
6.V
S1c2 "off"

-----------------

OI!.V
-I!.V

- - - - - - - - - - - - - - - - . -UV

Figure 2-6. TSPSOC12 LCD Driver Type B Timing Diagram
2-17

2.23

TSP50C12 LCD Reference Voltage and Contrast Adjustment

The TSP50C12 contains an internal voltage reference generator to regulate and adjust the LCD reference
voltages. The voltage generator is comprised of a voltage doubler, a bandgap reference, a voltage regulator,
and a final trim DAC. VLCO provides an isolated voltage supply for the voltage doubler. VLCO can be
connected to VOO or, for example, can be connected to a 4.5-V tap of a 4-cell battery supply to improve the
power efficiency ofthe circuit. An external capacitor should be connected between V C1 and V C2. An external
capacitor should be connected between VX2 and VLCO. The bandgap provides a reference voltage for the
voltage regulator. The voltage regulator has a nominal output of 4.9 V (±200 mY). The reference voltage
can be trimmed by writing to the DAC (memory-mapped to the lower four bits at RAM location 98). The trim
control will range from -8 steps (0000) to +7 steps (1111) from nominal with each step being approximately
100 mY. The value of this RAM location will not be initialized and must be set by the initialization software
routine.

TSP5OC12
,..---- VC1

Cpump
0.01 llF

Cstore
0.047 llF

1

T. . .___ VC2

1'---

VX2

T

Figure 2-7. TSP50C12 Voltage Doubler

2.24

TSP50C12 Clock Options

The RC oscillator requires a single external resistor between VOO and OSC1 with OSC21eft unconnected
to set the operating frequency. The frequency shift, as VOO changes, is limited to 10% over the operating
range of 4 V to 6.5 V. The center frequency as a function of resistance will require trimming. For applications
requiring greater clock preCision, a ceramic resonator option is also available. The RC oscillator/ceramic
resonator selection must be made by the customer and given to TI before releasing the device for mask
tooling.

2-18

3
3.1

TSP50C1 x Electrical Specifications
Absolute Maximum Ratings Over Operating Free-Air Temperature Range
Supply voltage range, VDD (see Note 1) ........................... -0.3 V to 8 V
Input voltage range, VI (see Note 1) ....................... -0.3 V to VDD + 0.3 V
Output voltage range, Vo (see Note 1) ..................... -0.3 V to VDD + 0.3 V
Operating free-air temperature range, TA ............................ ooe to 70°C
Storage temperature range. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. -30°C to 125°C
NOTE 1: All voltages are with respect to ground.

3.2

TSP50C1x Recommended Operating Conditions
MIN

Voo
VIH

Vil

Supply voltage t
High-level input voltage

low-level input voltage

TA

Operating free-air
temperature

fosc

Clock frequency

fclock

ROM clock frequency

NOM

MAX

4

6.5

VOO =4 V

3

4

VOO = 5 V

3.8

5

VOO =6V

4.5

6

VOO =4 V

0

0.8

VOO=5V

0

1

VOO =6V
Device functionality

0

1.3

0

70

10

40

lCO reference spec (TSP50C12 only)
1O-kHz speech sample ratel

9.6

8-kHz speech sample ratel

7.68

External ROM mode interface to
TSP60C18 speech ROMs

UNIT
V
V

V

DC
MHz
MHz

fosc/ 4

t Unless otherwise noted, all voltages are with respect to VSS.
l Speech sample rate = fosc/960.

3.3

TSP50C1x CIA Options Timing Requirements
MIN

tr
tf

Rise time, PA, PS,
O/A options 1, 2
Fall time, PA, PS,
O/A options 1, 2

VOO = 4 V,

NOM

MAX

UNIT

22

ns

10

ns

Cl = 100 pF

3-1

3.4

TSPSOC1x Initialization Timing Requirement
MIN

MAX

INIT pulsed low while the TSP50C1x has power applied

Figure 3-1. Initialization Timing Diagram

3.S

TSPSOC1x Write Timing Requirements (Slave Mode)
MIN

tsu(81)

Setup time, 81 low before 80 goes low

tsu(d)

Setup time, data valid before 80 goes high

th(81)

MAX

UNIT

20

ns

100

ns

Hold time, 81 low after 80 goes high

20

ns

th(d)

Hold time, data valid after 80 goes high

30

ns

tw

Pulse duration, 80 low

tr

Rise time, 80

50

ns

tf

Fall time, 80

50

ns

ns

100

B1

tsu(B1)~

i~ th(B1)

--+I
14

BO

tw

~
t,-.I

~

.1 1
11~---------~

~tSU(d)~

---------~<

tr

1

--t>I 5 ' th(d)

1

PA

14-

D."V.II.

~-----

Figure 3-2. Write Timing Diagram (Slave Mode)

3-2

3.6

TSP50C1x Read Timing Requirements (Slave Mode)
MIN

MAX

UNIT

tsu(81)

Setup time, 81 before 80 goes low

20

th(81)

Hold time, 81 after 80 goes high

20

tdis

Output disable time, data valid after 80 goes high

tw

Pulse duration, 80 low

tr

Rise time, 80

50

ns

tf

Fall time, 80

50

ns

td

Delay time for 80 low to data valid

50

ns

B1

0

ns
30

100

//flT

'..

_ _- - ...;1

I'"

BO

tw

N1I;",.:_ _ _ _
tf

---.I j+td -J j.-

-~Y
\

"I

ns
ns

~\\
I

-+I

tsu(B1) j+- -+I

PA

ns

!+- th(B1)

,

ie--------

~Y!
~

:.-

tr

-+I lOIII- tdis
Data Valid

',---.r--

Figure 3-3. Read Timing Diagram (Slave Mode)

3-3

3.7

TSP50C10{11 Electrical Characteristics Over Recommended Ranges of
Supply Voltage and Operating Free-Air Temperature (unless otherwise
noted)
PARAMETER

TEST CONDITIONS

MIN

TYP

VT+
VT-

Negative-going
threshold voltage

VOO = 4.5 V

Hysteresis
(VT+-VT-)

VOO = 4.5 V

0.4

Vhys

VOO = 6V

0.5

Ilkg

Input leakage current

Istandby

Standby current (INIT low)

loot

Supply current

IOH

High-level output
current (PA, PB,
O/A options 1,2)

IOL

2.3

V
1
10

O/A option 1, 2, or 3

5
VOH=3.5V

-4

VOO = 5V,

VOH =4.5V

-5

-7.5

VOO =6V,

VOH = 5.5V

-6

-9.2

VOO =4 V,

VOH =2.67V

-8

-13

VOO = 5V,

VOH = 3.33 V

-14

-20

VOO =6V,

VOH =4 V

-20

-29

VOO = 4V,

VOL= 0.5 V

10

17

VOL = 0.5 V

13

20

VOO =6V,

VOL= 0.5 V

15

25

VOO = 4V,

VOL= 1.33V

20

32

VOO = 5 V,

VOL= 1.67V

30

52

41

71

15

30

VOL=2V
Resistors selected with software
connected between pin and VOO

and

fAA
fAA
mA

-6

VOO = 4 V,

VOO =6V,
Pull-up resistance

V

3.15

VOO = 6V

UNIT

V

3.65

VOO = 6V

VOO = 5V,
Low-level output
current (PA, PB,
O/A options 1,2)

MAX

2.7

VOO = 4.5V

Positive-going
threshold voltage

mA

mA

mA

mA

60

kQ

t Operating current assumes all inputs are tied to either VSS or VOO with no input currents due to programmed pullup
resistors. The OAC output and other outputs are open circuited.

3-4

3.8

TSP50C12 Electrical Characteristics Over Recommended Ranges of
Supply Voltage and Operating Free-Air Temperature (unless otherwise
noted)
PARAMETER

TEST CONDITIONS

MIN

TYP

MAX

2.7

VOO =4.5V

VT+

Positive-going threshold
voltage

VT-

Negative-going threshold
voltage

VOO=4.5V

Hysteresis
(VT+-VT-)

VOO=4.5V

0.4

Vhys

VOO = 6V

0.5

LCO reference
voltages

2.3

OAC register = 1000, TA = 25°C,
See Figures 2-5 and 2-6

Vr '
Vr

-Vr
LCO temperature coefficient
OAC step

Ilkg

Input leakage current

Istandby

Standby current (INIT low)

100+

Supply current

IOL

High-level output current (PA,
PB, O/A options 1, 2)

Low-level output current (PA,
PB, 0/A options 1, 2)

5.1
4.033

2.734

2.85

2.966

1.751

1.825

1.899

0.8

0.833

-2.5
74

O/A option 1 or 3

100

-4

124

mV

1

fAA
fAA

VOH=4.5V

-5

-7.5

VOO = 6V,

VOH=5.5V

-6

-9.2

VOO = 4 V,

VOH =2.67V

-8

-13

VOO = 5V,

VOH = 3.33 V

-14

-20

VOO = 6V,

VOH = 4V

-20

-29

VOO = 4V,

VOL=0.5V

10

17

VOO = 5V,

VOL= 0.5 V

13

20

VOO = 6V,

VOL=0.5V

15

25

VOO = 4V,

VOL=1.33V

20

32

VOO = 5V,

VOL= 1.67V

30

52

VOO = 6V,

VOL=2V

41

71

15

30

LCO frame rate

fOSC = 9.6 MHz

mA

-6

VOO = 5V,

OAC buffer drive
(O/A option 1)

V

mV/oC

5
VOH=3.5V

Resistors selected with software
and connected between pin and
VOO
32-Q load connected across DA1
and OA2, VOO = 4.5 V

Pull up resistance

4.9
3.875

10

VOO = 4V,

IOH

4.7

TA = O°C to 40°C

OAC step control ofVr with respect
to -Vr, VOO = 5 V, TA = 25°C

V

3.717

0.767

t

V

3.15

VOO = 6V

Vr
-Vr '
Vc '

V

3.65

VOO =6V

UNIT

mA

mA

mA

mA

60

kQ

60

mA

96

Hz

t This negative temperature coefficient is normally advantageous because it tracks the tem perature variation of most LCO
materials.

:I: Operating current assumes all inputs are tied to either VSS or VOO with no input currents due to programmed pullup
resistors. The OAC output and other outputs are open circuited.

3-5

3.9

TSP50C14 Electrical Characteristics Over Recommended Ranges of
Supply Voltage and Operating Free-Air Temperature (unless otherwise
noted)
PARAMETER

TEST CONDITIONS

MIN

TYP

VT+

Positive-going
threshold voltage

VT-

Negative-going
threshold voltage

VDD = 6V

Hysteresis
(VT+ -VT-)

VDD= 4.5V

0.4

Vhys

VDD =6V

0.5

Input leakage current

Istandby

Standby current (INIT low)

IDDt

Supply current

IOH

IOL

Low-level output
current (PA, PB, D I A
options 1, 2)

Pullup resistance

fosc

Oscillator frequency+

V

3.15

V
1
10

DAC option 1 or 2
VDD =4V,

High-level output
current (PA, PB, D/A
options 1, 2)

2.3

VDD= 4.5V

5
VOH =3.5V

-27

flA
flA
mA

-41

VDD = 5V,

VOH =4.5V

-34

-51

VDD = 6 V,

VOH =5.5V

-41

-63

VDD = 4 V,

VOH =2.67V

-54

-68

VDD = 5 V,

VOH =3.33V

-95

-136

mA

mA

VDD = 6 V,

VOH =4V

-136

-197

VDD = 4V,

VOL = 0.5 V

27

41

VDD = 5V,

VOL = 0.5 V

34

51

VDD = 6V,

VOL=0.5 V

41

63

VDD = 4V,

VOL = 1.33 V

54

88

VDD = 5V,

VOL=1.67V

95

136

136

197

15

30

60

7.68-MHz target frequency, VDD = 4 V,
TA = 25°C

7.21

7.68

8.15

9.6-MHz target frequency, VDD = 4 V,
TA = 25°C

9.02

9.6

10.2

VDD = 6V,
VOL=2V
Resistors selected with software and
connected between pin and VDD

UNIT

V

3.65

VDD =6V

Ilkg

MAX

2.7

VDD = 4.5V

mA

mA

kQ

MHz

t Operating current assumes all inputs are tied to either VSS or VDD with no input currents due to programmed pullup
resistors. The DAC output and other outputs are open circuited.
:j: The frequency ofthe internal clock has a temperature coefficient of approximately -0.2 %/oC and a VDD coefficient of
approximately + 1.4% IV.

3-6

TSP50C1 x Assembler

4
4.1

Description of Notation Used

The notation used in this document is as follows:
An optional field is indicated by brackets; for example, [LABEL].
User-supplied contents are indicated by braces; for example,


A reseNed keyword is given in capital letters.
A required blank is indicated by a caret (").
EXAMPLE
[]

4.2

A

SBR

A



A

[]

Invoking the Assembler

The assembler is invoked by typing:
ASM10" []

A



where:
Options represents a list of assembler options (see Section 4.2.1).
Source is the name of the source file with the extension optional.
If the extension is not given, then the default extension of" .ASM" is
assumed.
For example:
ASMIO -1 PROGRAM

would run the assembler using the source file "PROGRAM.ASM" and would generate the output object file
"PROGRAM.BIN". No list file would be generated.

4.2.1

Command-Line Options

Several options can be invoked from the command line (Table 4-1). They are invoked by listing their
abbreviation prefixed by a minus sign. For example:
ASMIO -10 PROGRAM.ASM

would assemble the program in file "PROGRAM.ASM" but would not generate either a listing file or an Object
file; however, any errors would be written to the console. The available options are detailed below. See
Section 4.4.10 for information on invoking options from within the source code.

4-1

Table 4-1. Switches and Options
CHARACTER
OR
NUMBER
B or b
D ord

Lists only the first data byte in BYTE or RBYTE
Lists only the first data byte in DATA or RDATA

lor i

Counts the number of times a valid instruction has been used

L or I

Displays error messages without generating a list

o oro

Disables object file output

P or p

Prints listing without page breaks

R or r

Produces a reduced cross-reference list

S or s

Writes no errors on screen unless listing file is generated

Tor t

Lists only the first data byte in TEXT or RTEXT

Worw

Suppresses the warning message

Xorx

Adds a cross-reference list at the end

9

4.2.1.1

ACTION

Generates object file in TI-990 tagged object format

BYTE Unlist Option

Placing a b or B in the command-line option field causes the assembler to list only the first opcode in a BYTE
or RBYTE statement. Normally, if a BYTE or RBYTE statement has n arguments, they are listed in a column
running down the page in the opcode column of the listing, taking n lines to completely list the resulting
opcodes. If the BYTE unlist switch is set, then only the first line (which also contains the source line listing)
is written to the listing file.

4.2.1.2

DATA Unlist Option

Placing a d or D inthe command-line option field causes the assembler to list only the first opcode in a DATA
or RDATA statement. Normally, if a DATA or RDATA statement has n arguments, they are listed in a column
running down the page in the opcode column of the listing, taking n lines to completely list the resulting
opcodes. If the DATA unlist switch is set, then only the first line (which also contains the source line listing)
is written to the listing file.

4.2.1.3

XREF Unlist Option

Placing an x or X in the command-line option field causes the assembler to add a cross-reference listing
at the end of the listing file.

4.2.1.4

TEXT Unlist Option

Placing a tor T in the command-line option field causes the assemblerto list only the first opcode in a TEXT
or RTEXT statement in the listing file. Normally, if a TEXT or RTEXT statement has as an argument a string
containing n characters, the ASCII representation of these n characters is written in a column in the opcode
column ofthe listing. If the TEXT unlist switch is set, only the first line (also containing the source line listing)
is written to the list file.

4.2.1.5

WARNING Unlist Option

Placing a w or W in the command-line option field causes the assembler to suppress WARNING messages.
Warnings are still counted and error messages are still generated.

4.2.1.6

Complete XREF Switch

Placing an r or R in the command-line option field causes the assembler to produce a reduced XREF listing
if one is produced. Normally, all symbols (whether used or not) are listed in the XREF listing. The r option
causes the assembler to omit from the XREF listing all symbols from the copy files that were never used.
4-2

4.2.1.7

Object Module Switch

Placing an
modules.

0

or 0 in the command-line option field causes the assembler to not generate any object output

4.2.1.8

Listing File Switch

Placing an I or L in the command-line option field causes the assembler to not generate the listing file but
to display any error messages to the screen.

4.2.1.9

Page Eject Disable Switch

Placing a p or P in the command-line option field causes the assembler to print the listing in a continual
manner without division into separate pages. When desired, aform feed may still be forced using the PAGE
command.

4.2.1.10

Error to Screen Switch

Placing an s or S in the command-line option field causes the assembler to not write errors to the screen
unless no listing file is being generated.

4.2.1.11

Instruction Count Switch

Placing an i or I in the command-line option field causes the assembler to generate a table containing the
number oftimes each valid instruction was used in the program.

4.2.1.12

Binary Code File Disable Switch

Placing a 9 in the command-line option field causes the assembler to generate the object module in tagged
object format in a file with a ".MPO" extension instead of the normal binary formatted object module in a file
with a ".BIN" extension.

4.2.2

Assembler Input and Output Files

The assembler takes as input a file containing the assembly source and produces as output a listing file and
an object file in either binary format or tagged object format.

4.2.2.1

Assembly Source File

The assembly source file is specified in the command line. If the file name given in the command line has
an extenSion, then the file name is used as given. If no extension is specified, then the extension ".asm" is
assumed.
For example:
ASMIO PROGRAM.SRC
uses the file PROGRAM.SRC as the assembly source file.
ASMIO PROGRAM
uses the file PROGRAM.ASM as the assembly source file.

4.2.2.2

Assembly Binary Object File

The assembly process produces an Object file in binary format by default. The object output is placed in a
file with the same file name as the assembly source except that the extension is ".bin". If the binary file is
not desired, it can be disabled either as a command-line option or with an OPTION statement.

4-3

For example:

ASMIO PROGRAM.SRC
uses the file "PROGRAM.SRC" as the assembly source file and the file "PROGRAM.BIN" as the binary
object output file.

ASMIO -0 PROGRAM.SRC
uses the file PROGRAM.SRC as the assembly source file and produces no object output.

4.2.2.3

Assembly Tagged Object File

If desired, the assembler can substitute an Object file in tagged Object format instead of the Object file in
binary format. If produced, the object output is placed in a file with the samefile name as the assembly source
except that the extension is ".mpo".
For example:

ASMIO -9 PROGRAM.SRC
uses the file "PROGRAM.SRC" as the assembly source file and the file "PROGRAM.MPO" as the tagged
object output file. No binary-formatted object file is produced.

4.2.2.4

Assembly Listing File

The assembly process produces a listing file that contains the source instructions, the assembled code, and
(optionally) a cross-reference table. The listing file is placed in a file with the same file name as the assembly
source except that the extension is ".Ist".
For example:

ASMIO PROGRAM.SRC
uses the file "PROGRAM.SRC" as the assembly source file and the file "PROGRAM.LST" as the assembly
listing file.

4.3

Source-Statement Format

An assembly-language source program consists of source statements contained in the assembly source
file(s) that may contain assembler directives, machine instructions, or comments. Source statements may
contain four ordered fields separated by one or more blanks. These fields (label, command, operand, and
comment) are discussed in the following paragraphs.
The source statement may be as long as 80 characters. If the form width is set to 80 characters (the default),
the assembler will truncate the source line at 60 characters. The user should ensure that nothing other than
comments extend past column 60.
Any source line starting with an asterisk (*) inthefirst character position is treated as a comment in its entirety
and as such is ignored by the assembler and has no effect on the assembly process.
The syntax of the source statements is:
[

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19
Create Date                     : 2017:07:28 16:50:04-08:00
Modify Date                     : 2017:07:28 16:59:53-07:00
Metadata Date                   : 2017:07:28 16:59:53-07:00
Producer                        : Adobe Acrobat 9.0 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:98bd0cd9-892b-6343-86b9-479a559ee5cc
Instance ID                     : uuid:b6a861d8-0f8f-7a47-8589-68b4f4a799f4
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 270
EXIF Metadata provided by EXIF.tools

Navigation menu