10.8.94
Signal processor card with the TMS320C26
Version 2
Jürgen Hasch, hasch@t-online.de
Hardware description
Signal processor TMS320C25
16 bit processor with 64KW (kilo words) address- and
data space
40MHz clock frequency, minimal clock cycle time 100ns (without wait states)
Storage
32 KW
static RAM (25ns access time), 0 waitstates
32 KW EPROM
(120ns access time), 1 waitstate
Interfaces
8 digital inputs (74HCT245)
8 digital outputs
(74HCT574)
serielle interface (RS232) with UART 16C550
Intercace for a LCD display
Analog interface
Stereo codec
CS4215 with stereo analog inputs and outputs
maximum sampling frequency for the
AD/DA- converter: 48kHz
Sampling clock adjustable with two quarzes and several
divider steps
Antialiasing filer, input amplifier and output padding
Supply voltage +5V.
The signal processor TMS320C26 from Texas Instruments ist ein Vertreter der zweiten Generation von TI-Signalprozessoren und Nachfolger des TMS32020. Es ist ein 16-Bit Mikroprozessor nach Havard-Architektur, mit einem 64KW großen in Daten- und Programmspeicher getrennten Adressraum. Im verwendeten Design sind Daten- und Programmspeicher im externen RAM zusammengelegt.
Der Prozessor ist für Aufgaben der digitalen Signalverarbeitung optimiert und erreicht bei einem Takt von 40MHz eine Befehlszykluszeit von 100ns (ohne Waitstates). Dies ergibt eine Rechenleistung von bis zu 10 MIPS (million instructions per second).
Als Rechenwerke enthalten sind eine 32 Bit-ALU (Arithmetic Logic Unit) mit der verschiedene Rechenoperationen im Zweierkomplement ausgeführt werden können, sowie eine Multipliziereinheit und ein Schieberegister. Zusätzlich sind noch ein Zeitgeber, 256 Worte RAM und 4KW ROM vorhanden. Das ROM wird jedoch nicht benutzt (microprocessor mode).
Eine genaue Beschreibung des Prozessors ist in [1] zu finden.
Die Peripheriebausteine werden mit eigenen I/O-Befehlen (IN, OUT), jedoch über die normalen Daten- und Adressleitungen angesprochen. Es wird nur ein Adressraum von 16 Worten (A0-A3) ausdekodiert, die restlichen Adressleitungen sind auf 0 geschaltet, wodurch die Zahl der anschließbaren Peripheriebausteine stark begrenzt ist. Da die I/O-Befehle mit dem gleichen Timing wie normale Speicherzugriffe arbeiten, müssen für den UART und die LCD-Anzeige mehrere Waitstates (vom GAL IC5) generiert werden.Die I/O-Bausteine sind wie folgt dekodiert:
Zugriff |
A3 |
A2 |
A1 |
A0 |
Adresse |
Baustein |
---|---|---|---|---|---|---|
RW |
0 |
x |
x |
x |
00-07H |
UART-Baustein 16C550 |
RW |
1 |
0 |
x |
0 |
08H |
LCD-Anzeige, Kommando |
RW |
1 |
0 |
x |
1 |
09H |
LCD-Anzeige, Daten |
R |
1 |
1 |
x |
x |
0CH |
Digitaler Eingang mit 74245 |
W |
1 |
1 |
x |
x |
0CH |
Digitaler Ausgang mit 74574 |
R: lesen / W: schreiben / x: don't care |
Der Watchdog-IC MAX1232 ist für die Erzeugung des Reset-Signals zuständig. Bei zu geringer Bestriebsspannung sowie ausbleibender Aktivität (kein Zugriff mehr auf die I/O-Bausteine, getriggert durch IS*), wird nach 1,2s automatisch ein Reset ausgelöst.
Am Anschluß S1 kann ein Taster angeschlossen werden, der bei Betätigung einen Reset auslöst. Zusätzlich kann über die DTR-Leitung der seriellen Schnittstelle noch ein Reset ausgelöst werden (DTR-Pegel auf -12V), falls die Steckbrücke JP4 gesteckt ist.
Der extern zur Verfügung stehende Speicher des Signalprozessors ist je zur Hälfte mit RAM und ROM belegt. Um das Design zu vereinfachen wird nicht wie bei der Havard-Architektur üblich zwischen Daten- und Programmspeicher unterschieden, stattdessen werden die externen Speicherbausteine sowohl als Programm- wie auch als Datenspeicher verwendet.
Als RAM`s werden schnelle statische Speicher 7C199
von Cyrix (oder Baugleiche) mit einer Zugriffszeit von 25ns
verwendet, womit ein Betrieb ohne zusätzliche Waitstates möglich
ist.
Für den Festspeicher (ROM) werden 27C256-EPROMs mit
einer Zugriffszeit von 120ns eingesetzt. Dies läßt einen
Zugriff durch den Prozessor mit einem Waitstate zu.
Die folgende Tabelle zeigt den Speicheraufbau, wie er vom Monitorprogramm konfiguriert wird:
Adresse |
Datenspeicher |
Programmspeicher |
---|---|---|
0000H-03FFH |
TMS320C25 intern |
ext. EPROM |
0400H-7FFFH |
ext. EPROM |
ext. EPROM |
8000H-FFFFH |
ext. RAM |
ext. RAM |
Als Interface zur 'analogen Welt' kommt der
Stereo-Codec CS4215 von Crystal zum Einsatz. Dieser IC besitzt je
zwei A/D- und D/A-Wandler mit einer maximalen Wandlungsfrequenz von
48kHz. Die Wandlungsfrequenzen werden über intern einstellbare
feste Teilerfaktoren aus einem von zwei Quarzen bestimmt. Welcher der
beiden Quarze in Betrieb ist, kann im 'control mode' ausgewählt
werden. Der Wandlungstakt des A/D-Wandlers entspricht gleichzeitig
dem des D/A-Wandlers.
Als Wandlungsmodi sind 16 Bit linear, 8 Bit
linear und 8 Bit kompandiert im Mono- und Sterobetrieb möglich.
Nummer |
Teilfaktor |
Quarz 1 24,576MHz |
Quarz 2 14,7456MHz |
---|---|---|---|
0 |
3072 |
8kHz |
4,8kHz |
1 |
1536 |
16kHz |
9,6kHz |
2 |
896 |
27,429kHz |
16,457kHz |
3 |
768 |
32kHz |
19,2kHz |
4 |
448 |
na |
32,914kHz |
5 |
384 |
na |
38,4kHz |
6 |
512 |
48kHz |
28,8kHz |
7 |
2560 |
9,6kHz |
5,76kHz |
na: nicht anwendbar |
The analog inputs also posess anti-aliasing filters and a programmable amplifier, to get an optimal conversion result. The analog outputs also have anti-aliasing filters.
The codec is interfaced directly to the processor with an synchrounos serial interface. The interface is operated in the 'continuous transmission without frame syn pulses'-mode, where the codec always sends and receives 4 word packets (64 bits) at the same time.
The two operation modes of the codec (control mode and data mode) are selected with the XF processor pin. In the 'control mode' (XF low) the serial clock is generated by the GAL IC5. In this mode, the operation parameters of the codec are selected. In the 'data mode' (XF high) the codec generates the serial clock and transmit/receives 64 bit data packets 4 times the sampling frequency. A complete description of the protocol can be found at [2].
Die analogen Ein- und Ausgänge des Codecs liegen an X4 (Dioden-Stecker links und rechts) an. Weitere Analogausgänge liegen noch an X7.
Soll statt dem ursprünglich vorgesehenen Codec CS4215 ein anderer Baustein an der seriellen Prozessorschnittstelle verwendet werden, kann dies über den Anschluß X5 geschehen. Zusätzlich müssen die Verbindungen JP1, JP2 und JP3 auf der Lötseite der Platine durchtrennt werden.
Um die DSP-Karte mit einem Computer verbinden zu können, ist eine serielle RS232-Schnittstelle vorhanden. Dabei kommt ein UART 16550 von National Semiconductor [3] zum Einsatz. Er kann bis zu einer Baudrate von 115kBaud betrieben werden und besitzt einen 16 Byte FIFO-Puffer für Sende- sowie Empfangsfunktion. Der Takt für den UART wird von einem 3,6864MHz-Quarz generiert. Der Zugriff auf den UART erfolgt mit 3 Waitstates.
Am Ausgang sind nur die Datenleitungen RXD und TXD, sowie die Handshake-Signale RTS und CTS beschaltet. Als zusätzliche Steuermöglichkeit, kann mit der DTR-Leitung ein Reset auf der DSP-Karte ausgelöst werden, falls die Steckbrücke JP4 geteckt ist.
Die Ansteuerschaltung für die LCD-Anzeige ist für das Modul TLC501 von Toshiba ausgelegt, es funktionieren erfahrungsgemäß aber auch ähnliche Module mit 2 Zeilen und 20 Zeichen pro Zeile.
Als Treiber für die Datenleitungen ist ein 74HCT245 vorhanden, der bidirektional arbeitet, die Steuersignale werden vom GAL IC5 generiert. Durch Umprogrammieren des GALs läßt sich somit die Ansteuerung problemlos ändern.
Da die LCD-Anzeige ein sehr langsames Timing hat (im Vergleich zum Prozessor), müssen nach einem Lese-/Schreibzugriff mindestens 450ns vergangen sein, bis ein erneuter Zugriff auf die Anzeige ausgeführt werden darf. Dies kann z.B. durch 5 NOP's (No Operation - Befehle) erreicht werden. Ein Zugriff erfordert 8 Waitstates.
Mit dem Trimmer P1 läßt sich der Anzeigenkontrast einstellen. Weitere Details siehe Datenblatt [4]. Das Interface ist nicht sehr speziell und kann eventuell auch für andere Anwendungen benutzt werden.
Als Spannungsversorgung wird eine stabilisierte Gleichspannung von mindestens 8 Volt und 500mA benötigt. Falls eine saubere Gleichspannung von +5V vorhanden ist, kann diese auch direkt eingespeist werden, dazu müssen Schutzdiode und Spannungsregler überbrückt werden.
Pin |
Name |
Description |
---|---|---|
1 |
+5V |
Supply voltage |
2 |
O0 |
Digital output 1 |
3 |
O1 |
Digital output 2 |
4 |
O2 |
Digital output 3 |
5 |
O3 |
Digital output 4 |
6 |
O4 |
Digital output 5 |
7 |
O5 |
Digital output 6 |
8 |
O6 |
Digital output 7 |
9 |
O7 |
Digital output 8 |
10 |
I0 |
Digital input 1 |
11 |
I1 |
Digital input 2 |
12 |
I2 |
Digital input 3 |
13 |
I3 |
digitaler Eingang 4 |
14 |
I4 |
Digital input 5 |
15 |
I5 |
Digital input 6 |
16 |
I6 |
Digital input 7 |
17 |
I7 |
Digital input 8 |
18 |
INT1 |
Interrupt input 1 |
19 |
INT2 |
Interrupt input 2 |
20 |
GND |
Ground |
Pin |
Name |
Direction |
Description |
---|---|---|---|
1 |
- |
- |
- |
2 |
TXD |
Output |
Tansmit data |
3 |
RXD |
Input |
Empfangsdaten |
4 |
DTR |
Input |
Data terminal ready |
5 |
GND |
- |
Ground |
6 |
- |
- |
- |
7 |
CTS |
Input |
Clear to send |
8 |
RTS |
Output |
Request to send |
9 |
- |
- |
- |
Pin |
Name |
Description |
---|---|---|
1 |
GND |
Ground |
2 |
+5V |
Supply voltage |
3 |
|
Contrast |
4 |
RS |
Reset |
5 |
PRW* |
Read-/write access |
6 |
E |
Access clock |
7 |
DB0 |
Data bit 0 |
8 |
DB1 |
Data bit 1 |
9 |
DB2 |
Data bit 2 |
10 |
DB3 |
Data bit 3 |
11 |
DB4 |
Data bit 4 |
12 |
DB5 |
Data bit 5 |
13 |
DB6 |
Data bit 6 |
14 |
DB7 |
Data bit 7 |
left
Pin |
Name |
Description |
---|---|---|
1 |
INL |
Analog input left |
2 |
AGND |
Analog ground |
3 |
OUTL |
Analog output left |
4 |
PTTL |
PIO1 from codec |
5 |
- |
|
right
Pin |
Name |
Description |
---|---|---|
1 |
INR |
Analog input right |
2 |
AGND |
Analog ground |
3 |
OUTR |
Analog output right |
4 |
PTTR |
PIO0 from codec |
5 |
- |
|
Pin |
Name |
Description |
---|---|---|
1 |
RES* |
Reset |
2 |
BIO* |
Processor input |
3 |
XF |
Processor output |
4 |
DR |
Serial data to prozessor |
5 |
CLKR |
Clock from DR |
6 |
FSR |
Sync from DR |
7 |
DX |
Serial data from processor |
8 |
CLKX |
Clock for DX |
9 |
FSX |
Sync for DX |
10 |
+5V |
Supply voltage |
11 |
GND |
Ground |
12 |
GND |
Ground |
Pin |
Name |
---|---|
1 |
+8 Volt, mindestens 500mA |
2 |
Masse |
Pin |
Name |
Description |
---|---|---|
1 |
HEADR |
right headphone output |
2 |
HEADL |
left headphone output |
3 |
HEADC |
common headphone output |
4 |
MOUT1 |
monitor output 1 |
5 |
MOUT2 |
monitor output 2 |
6 |
AGND |
analoge ground |
[1] TMS320C2X User's Guide
Texas
Instruments
[2] Data sheet CS4215
Crystal
Semiconductor
[3] Data sheet UART 16C550
[4] Data sheet TLC501
Toshiba