background image

MSP53C391 and MSP53C392

Speech Synthesizers

User’s Guide

May 2000

SPSU016A

Printed on Recycled Paper

Summary of Contents for MSP53C391

Page 1: ...MSP53C391 and MSP53C392 Speech Synthesizers User s Guide May 2000 SPSU016A Printed on Recycled Paper ...

Page 2: ... this warranty Specific testing of all parameters of each device is not necessarily performed except those mandated by government requirements Customers are responsible for their applications using TI components In order to minimize risks associated with the customer s applications adequate design and operating safeguards must be provided by the customer to minimize inherent or procedural hazards ...

Page 3: ... 3 MSP53C392 Hardware Description Chapter 4 MSP53C391 and MSP53C392 Software Description Appendix A Editing Tools and Data Preparation Appendix B FM Synthesis Appendix C Listing of FMequM2 inc Appendix D MSP53C391 392 Timing Considerations Appendix E Listing of FM2INTR1 inc Appendix F MSP53C391 and MSP53C392 Data Sheet Related Documentation From Texas Instruments MSP50x3x Mixed Signal Processor Us...

Page 4: ...iv ...

Page 5: ...Interrupt 2 2 8 2 4 Master Microprocessor Interface Timing 2 10 2 4 1 Timing Method 1 Polling 2 10 2 4 2 Timing Method 2 Interrupt 1 2 11 2 4 3 Timing Method 3 Interrupt 2 2 12 2 5 MSP53C391 Device Initialization 2 13 3 MSP53C392 Hardware Description 3 1 3 1 Interface Overview 3 2 3 2 Signal Description 3 3 3 3 Master Microprocessor Interface Description 3 4 3 3 1 Method 1 Polling 3 4 3 4 Master M...

Page 6: ...Synthesis Format and Commands B 2 B 2 1 Musical Notes B 3 B 2 2 Tempo Control B 3 B 2 3 Tempo Synchronization B 4 B 2 4 LOADTIMBRE Command B 4 B 2 5 Transposition B 5 B 2 6 DETUNE B 5 B 2 7 Adjust Output Volume B 5 B 2 8 Modulation Index Adjustment B 6 B 2 9 End of Song B 6 B 2 10 Command Summary B 7 B 3 FM Synthesis Data Structure B 9 B 4 Data Preparation of FM Synthesis B 12 B 4 1 MD2FM Software...

Page 7: ...nterrupt 1 2 6 2 3 MSP53C391 Interfacing Diagram Method 3 Interrupt 2 2 8 B 1 FM Conversion Process B 12 Tables 1 1 MSP53C391 and MSP53C392 Comparison 1 3 1 2 MSP53C391 Terminal Functions 1 4 1 3 MSP53C392 Terminal Functions 1 5 2 1 MSP53C391 Signal Description 2 3 3 1 MSP53C392 Signal Description 3 3 4 1 Speech Initiation Data 4 3 4 2 Synthesis Selection Codes 4 3 4 3 Command Sequence 4 4 4 4 Com...

Page 8: ...391 and MSP53C392 Speech Synthesizers Topic Page 1 1 Description 1 2 1 2 Features 1 2 1 3 MSP53C391 and MSP53C392 Comparison 1 3 1 4 Pin Assignments and Description 1 4 1 5 D A Information 1 6 1 5 Algorithms Supported 1 6 Chapter 1 ...

Page 9: ...91 and MSP53C392 are special programs that run on the MSP50C3x device For more information about the MSP50C3x please refer to the MSP50x3x User s Guide literature number SLOU006B 1 2 Features Wide ranges of algorithms are incorporated in one chip This allows the user to choose from a low bit rate to high quality synthesizing routines for their application Algorithms included are LPC 5220 LPC D6 ME...

Page 10: ...r other purposes These pins EOS and BUSY can be used to simplify the interface by minimizing the need to periodically poll the MSP53C391 for its current status The use of the 8 bit wide protocol in the MSP53C392 provides a more efficient data transfer A detailed comparison of the two devices is listed in Table 1 1 Table 1 1 MSP53C391 and MSP53C392 Comparison MSP53C391 MSP53C392 Number of Data Line...

Page 11: ...ative output values It remains low when positive values are output DATA 0 3 3 2 1 16 I O Data lines EOS 6 O End of speech signal Output high when end of speech is reached INIT 9 I Initialize input When INIT goes low the clock stops the MSP53C391 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 proc...

Page 12: ...positive output values It remains low when negative values are output DAC 12 O D A output This output pulses high for negative output values It remains low when positive values are output DATA 0 7 14 6 5 4 3 2 1 16 I O Data lines INIT 9 I Initialize input When INIT goes low the clock stops the MSP53C392 goes into low power mode the program counter is set to zero and the contents of the RAM are ret...

Page 13: ...r SPSU006B for more information on the D A and amplifier circuit 1 6 Algorithms Supported LPC D6 and 5220 format Data rates 1 5 to 3 kbps at an 8 kHz sample rate MELP Data rates range form 2kbps 3 5 kbps at an 8 kHz sample rate CELP Data rates can be selected form 4 2 kbps 10 7kbps at an 8 kHz sample rate PCM 8 bit Data rates is 64 kbps for 8 kHz sampling FM Frequency modulation for two channel mu...

Page 14: ...ption Topic Page 2 1 MSP53C391 Interface Overview 2 2 2 2 Signal Description 2 3 2 3 Master Microprocessor Interface Description 2 4 2 4 Master Microprocessor Interface Timing 2 10 2 5 MSP53C391 Device Initialization 2 13 Chapter 2 ...

Page 15: ...write operation is done to the MSP53C391 when the STROB is pulsed low If the R W is high then a read from the MSP53C391 is done when the STROB is pulsed low If the R W is low then data is written to the MSP53C391 when the STROB is pulsed low Two signals are provided to determine if the MSP53C391 is ready or not ready to accept new data The BUSY signal shares the same pin as the DATA3 sig nal Durin...

Page 16: ...d operation and a low signal for a write operation IRQ 14 When the data latched into the MSP53C391 is read and the MSP53C391 device is ready to accept more data a negative edge interrupt signal is generated to interrupt the master For proper operation of the interrupt function a negative edge triggered external interrupt input pin is required on the master microprocessor EOS 6 This is an active hi...

Page 17: ...Port Output Port Output Port I O Port I O Port I O Port I O Port STROB R W INIT DATA3 BUSY DATA2 EOS DATA1 DATA0 EOS IRQ 15 7 9 16 1 2 3 DAC DAC TO SPEAKER OR AMPLIFIER FILTER MASTER MICROPROCESSOR MSP53C391 13 12 6 14 NOTES A STROB Active low strobe signal R W Read write signal DATA 0 3 4 bit data line BUSY Active low busy signal form MSP53C391 A high signal indicates that the MSP53C391 is not bu...

Page 18: ...esize speech If the polling operation is too frequent the MSP53C391 spends too much time servicing the polling opera tion and the quality of the synthetic speech may be affected If the polling op eration is too infrequent the internal buffer may run out of data and the synthe sis process can become corrupted Normally a polling frequency of four times the bit rates of the speech data provides optim...

Page 19: ...es as de scribed previously 2 3 2 Method 2 Interrupt 1 In this method the IRQ pin of the MSP53C391 is connected to an external in terrupt input pin of the master microprocessor When the MSP53C391 is not busy and is ready to accept data the IRQ signal goes low and provides a nega tive edge to trigger an interrupt in the master processor This minimizes the need to constantly poll the MSP53C391 while...

Page 20: ...d immediately initiate a write operation when the IRQ signal goes low If the master micropro cessor delays for too long a time before writing new data it is possible that the buffer will empty and the synthesis process will be interrupted or the quality of speech will be degraded Write Operation 1 The master microprocessor should clear all pending interrupts and enable the external interrupt 2 The...

Page 21: ...391 to re initialize itself or by writing two dummy bytes as described the following RESET Operation 1 Perform a read operation to determine that the EOS signal is high 2 If the EOS signal is high write 2 bytes of dummy data to the MSP53C391 by repeating the write operation four times as described previously 2 3 3 Method 3 Interrupt 2 This method is similar to method 2 The only difference is perfo...

Page 22: ...s high the end of speech has been reached and the master microprocessor should stop trying to send data and should reset the MSP53C391 as described in the following If the EOS is low the end of speech has not been reached and the write operation should continue with step 5 5 Tie R W to ground indicates a write operation 6 The master microprocessor presents valid data to the four data pins DATA0 DA...

Page 23: ...tate A Polling the status by reading the BUSY and EOS State B Write operation End of Speech STROB R W DATA0 3 DATA3 BUSY DATA2 EOS A B D B D C D B B NOTE A State A EOS detected by reading DATA 2 EOS State B Dummy write A 4 nibble dummy write resets the EOS for the next transfer State C Wait until the part is ready to accept dummy data BUSY high State D Check to see if the device is busy or not ...

Page 24: ...terrupt 1 Data Transfer STROB R W DATA0 3 DATA2 EOS IRQ A A B B NOTE A State A Read the EOS state State B Write operation End of Speech STROB R W DATA0 3 DATA2 EOS IRQ A B B B B NOTE A State A EOS detected by read DATA2 EOS State B Dummy write A 4 byte dummy write resets the EOS for the next transfer ...

Page 25: ... 3 Interrupt 2 Data Transfer STROB DATA0 3 EOS IRQ A A R W NOTE A State A Write operation End of Speech STROB DATA0 3 EOS IRQ A B B B B R W NOTE A State A EOS detected by read on pin 6 State B Dummy write A 4 nibble dummy write resets the EOS for the next transfer ...

Page 26: ...F F F F F Following this command sequence the normal command sequence options are available as described in Section 4 2 and onwards The function of this sequence is to properly initialize the synthesis engine by speaking a short selection of LPC prior to speaking selections using other syn thesis algorithms This initialization needs to be performed 1 After you apply power to the device or 2 When y...

Page 27: ...iption Topic Page 3 1 MSP53C391 Interface Overview 3 2 3 2 Signal Description 3 3 3 3 Master Microprocessor Interface Description 3 4 3 4 Master Microprocessor Interface Timing 3 7 3 5 MSP53C392 Device Initialization 3 8 Chapter 3 ...

Page 28: ...ssor to accom plish these two tasks STROB and R W The R W line determines whether a read or a write operation is done to the MSP53C392 when the STROB is pulsed low If the R W is high than a read from the MSP53C392 is done when the STROB is pulsed low If the R W is low then data is written to the MSP53C392 when the STROB is pulsed low The BUSY signal shares the same pin as the DATA7 signal During a...

Page 29: ...When a high is detected on EOS by the master microprocessor the MSP53C392 should be reset R W 7 Read write signal from master microprocessor A high signal for a read operation and a low signal for a write operation STROB 15 This is an active low strobe signal for the reading and writing operation form master microprocessor The data to be read is available when the strobe is active low for the read...

Page 30: ... O Port I O Port I O Port I O Port I O Port I O Port I O Port STROB R W INIT DATA7 BUSY DATA6 EOS DATA5 DATA4 DATA3 DATA2 DATA1 DATA0 15 7 9 16 1 2 3 MASTER MICROPROCESSOR MSP53C392 4 5 6 14 DAC DAC 13 12 TO SPEAKER OR AMPLIFIER FILTER NOTE A STROB Active low strobe signal R W Read write signal DATA 0 7 8 bit data line BUSY Active low busy signal form MSP53C392 A high signal indicates that the MSP...

Page 31: ...nthesize speech If the polling operation is too frequent the MSP53C392 spends too much time servicing the polling opera tion and the quality of the synthetic speech may be affected If the polling op eration is too infrequency the internal buffer may run out of data and the syn thesis process can become corrupted Normally a polling frequency of four times the bit rates of the speech data provides o...

Page 32: ...et can be done in one of two ways Pulsing the INIT pin low and then waiting for the MSP53C392 to re initialize itself or by writing four dummy bytes as described in the following RESET Operation 1 Perform a read operation to determine that both the EOS and BUSY sig nals are high 2 If both the EOS and BUSY signals are high write four bytes of dummy data to the MSP53C392 by repeating the write opera...

Page 33: ...7 BUSY DATA6 EOS A A A A A A A B NOTE A State A Polling the status by reading the BUSY and EOS State B Write operation End of Speech STROB R W DATA0 5 DATA7 BUSY DATA6 EOS A B B B B C C C C NOTE A State A EOS detected by reading DATA 6 EOS State B Dummy write A 4 byte dummy write resets the EOS for the next transfer State C Wait until the part is ready to accept dummy data BUSY high ...

Page 34: ...owing this command sequence the normal command sequence options are available as described in Section 4 2 and onwards The function of this sequence is to properly initialize the synthesis engine by speaking a short selection of LPC prior to speaking selections using other syn thesis algorithms This initialization needs to be performed 1 After you apply power to the device or 2 When you reset the p...

Page 35: ...4 1 MSP53C391 AND MSP53C392 Software Description Topic Page 4 1 Software Overview 4 2 4 2 Command Sequence 4 2 4 3 Command Header 4 2 4 4 Data Streams 4 3 4 5 Command Sequences 4 4 Chapter 4 ...

Page 36: ...fter the termination code in the data stream four nibbles MSP53C391 or four bytes MSP53C392 of dummy data that resets the processor 4 3 Command Header The command header is used to synchronize the data stream between the master microprocessor and the MSP53C391 or MSP53C392 The command header is the same for both data streams and command streams but the com mand header used for the MSP53C391 is dif...

Page 37: ...tion code is a one byte value that indicates the format and sampling rate of the synthetic speech data that follows it The valid codes are shown in Table 4 2 The format of the data that follows must match the speci fied algorithm or the speech will not synthesize properly Table 4 2 Synthesis Selection Codes Freq LPC MELP CELP Ver 3 4 kbps 8 Bit FM II Freq 5220 D6 Ver 4 1 4 2 4 8 5 8 6 2 8 6 10 7 P...

Page 38: ...me Initiate a test mode in which a 4 kHz or 5 kHz square wave is generated at the two general purpose output pins MSP53C391 or selected data pins MSP53C392 Read the software version programmed into the MSP53C391 or MSP53C392 To send a command sequence the master microprocessor transmits The command header A valid command code See Section 4 5 1 Command Codes for valid command codes Optional paramet...

Page 39: ...olume Scale output volume 0x2F Place MSP53C391 into a low power sleep state Place MSP53C392 into a low power sleep state 0xD1 Request version information Request version information 0xE65D Produce 5 kHz signal on the OUT2 pin Produce 5 kHz signal on the DATA3 pin 0xE65C Produce 4 kHz signal on the OUT1 pin Produce 4 kHz signal on the DATA2 pin 0xE96D Echo mode N A 4 5 2 Pin Expansion The OUT1 and ...

Page 40: ... Sending a command code of 0x2F places the MSP53C391 or MSP53C392 into a low power sleep state The MSP53C391 or MSP53C392 can be re started by resetting the device pulsing the INIT pin low and waiting 5 ms for the device to complete initialization 4 5 5 Request Software Version The master processor can request the version number of the software pro grammed into the MSP53C391 or MSP53C392 by sendin...

Page 41: ...s been transmitted to the MSP53C392 the STROB must be set low and the R W must be set high to enable the generation of the 5 kHz signal This can be used to test the accura cy of the internal oscillator when it is programmed to 19 2 MHz The only way to exit this test mode is to pulse the INIT pin low Sending a command code of 0xE65C to the MSP53C392 generates a 4 kHz signal on the DATA2 pin Once th...

Page 42: ...A 1 Appendix A Editing Tools and Data Preparation Topic Page A 1 Editing Tools A 2 A 2 Data Preparation A 3 Appendix A ...

Page 43: ...l opment station designed to produce synthesized vocabulary The WINSDS system requires a personal computer running Windows 95 98 and requires at least one available ISA slot A 1 2 SDS3000 SDS3000 is an integrated tool that accepts input sound files sampled at either 8 kHz or 10 kHz in either a WAV format or a 16 bit raw binary format and con verts the files into the CELP or MELP data format It req...

Page 44: ...s 1 to 1 When the sound file is too loud after the encoding clipping will result Additionally if the wave file is sampled at a higher rate CD quality sound file 44 1 kHz sam pling or DAT in 48 kHz resampling to 8 kHz or 10 kHz is necessary for the conversion Filtering and renormalizing may be necessary during down sam pling to reduce aliasing and noise There are a number of software programs avail...

Page 45: ... the WAV file should be sampled at either 8 kHz or 10 kHz The file should contain monaural data 2 If the data in the file is not sampled at one of these two frequencies it should be resampled to one of these two frequencies First low pass filter the data to 4 kHz or 5 kHz to avoid sound degradation due to aliasing with the command EFFECTS FILTER LOW HIGH PASS then resample the data to the new samp...

Page 46: ...d later into a single file using the FM2MERGE program 2 The timebase of the file should be 48 3 The MD2FM program does not understand the instrument definition of the MIDI file The instruments will need to be added to the output file in a sepa rate step As an example assume that a MIDI file named midi_t1 mid contains two tracks and each track contains a single channel Execute the MD2FM program twi...

Page 47: ...B 1 Appendix A FM Synthesis Topic Page B 1 FM Synthesis Overview B 2 B 2 FM Synthesis Format and Commands B 2 B 3 FM Synthesis Data Structure B 9 B 4 Data Preparation of FM Synthesis B 12 Appendix B ...

Page 48: ...ries of BYTE or DATA statements as described in the fol lowing to specify the notes instruments and other details of the music Each command is of the general form BYTE command parameters Where command indicates the action to be taken followed by one or more mo difying parameters For example to transpose a section of a song up by a semitone the following command would be written BYTE RTRNS 1 In thi...

Page 49: ...es a whole note Duration defines the sum of the TimeValue and any following rest For ex ample if a quarter note is followed by a quarter note rest then it would be coded with a TimeValue n4 and a Duration n2 Velocity is the relative volume of the note Values range from 0 to 127 B 2 2 Tempo Control The tempo of the music is defined as BYTE TEMPO BPM TimeSig EnvelopeLen Where TEMPO is the command th...

Page 50: ... denotes a series of 21 bytes of data that defines the new instrument sound The data definitions are as follows The first three bytes define the frequencies of the modulator and carrier sinu soids The first byte defines the carrier frequency The next two bytes define the initial amplitude of the carrier and the modulator sinusoids The valid values range from 0 to 127 The remaining 16 bytes represe...

Page 51: ...s written for example BYTE ATRNS 12 Shifts the music one octave above the music as written The RTRNS command is used to shift the music by a cumulative amount for example in the following sequence BYTE RTRNS 12 This will shift the music up by one octave BYTE RTRNS 12 This will shift the music up a second octave B 2 6 DETUNE The DETUNE command shifts the frequency of notes on channel two with re sp...

Page 52: ...o get a more or less brighter tonal quality This can be done by using the following commands BYTE MIX1 Set the modulation index scale to 1 BYTE MIX2 Set the modulation index scale to 2 BYTE MIX3 Set the modulation index scale to 3 BYTE MIX4 Set the modulation index scale to 4 BYTE MIX5 Set the modulation index scale to 5 BYTE MIX6 Set the modulation index scale to 6 BYTE MIX7 Set the modulation in...

Page 53: ... 4 time EnvelopLen Envelop time ENVOK sets the envelope length to normal Tempo control for channel 2 Format TEMPOSYNC Example TEMPOSYNC TEMPOSYNC Use in channel 2 only It must be placed at the same bar as the channel 1 TEMPO command This is to ensure that the Tempo change is synchronous with both channels changing at the same time Load Timbre into each channel Format LOADTIMBRE XX XX XX Example LO...

Page 54: ...rValue Set initial fader value from 0 to 63 F100p is defined in FmequM2 inc FadInc Fader increment which is a 16 bit value Cal culate as follows End Fader Value Start Fader Value 16 of Events Mix control Format MixLevel Example MIX8 MixLevel Set the modulation index value by table lookup form MIX0 to MIX15 Mix control Format MIXUP Example MIXUP MIXUP Increment the current modulation index as set b...

Page 55: ...nnel 1 is less than or equal to channel 2 channel 1 data is loaded If the total duration of the notes of channel 1 is larger than channel 2 channel 2 data is loaded In this way the channel data are interleaved according to the accumulative duration of the notes The following example is in MSP50C3x syntax Example of FM synthesis define the Channel 1 and load first note Channel 1 BYTE means define a...

Page 56: ...nnel 2 BYTE FADER f100p set No Fader of channel 2 DATA NOFADER load timbre Flute tone 1 in channel 2 byte LOADTIMBRE Parameters of 21 bytes follows byte X2 byte X2 byte 16 4 byte 2 1 byte 124 46 byte 10 80 byte 9 8 byte 8 7 byte 7 6 byte 6 5 byte 5 4 byte 81 3 BYTE A4 12 12 64 first note of channel 2 Continue to play the rest data of channel 1 2 interleaved the channel 1 and channel 2 data accordi...

Page 57: ...2 127 the duration of channel 2 is still larger than 1 BYTE C5 12 12 127 by loading one note only BYTE G4 12 12 127 thus continue to load 1 until BYTE REST 12 2 OFF the duration of 1 is larger than 2 Channel 2 BYTE REST 48 2 OFF Channel 1 BYTE G4 12 12 127 BYTE E4 24 12 127 BYTE E4 48 48 127 Channel 2 BYTE REST 48 2 OFF Channel 1 BYTE REST 48 2 OFF Channel 2 BYTE REST 48 2 OFF Channel 1 BYTE StopS...

Page 58: ...n Process MIDI Song songt1 mid Channel 1 FM Data songt1_1 inc Channel 2 FM Data songt1_2 inc Combined FM Data songt1 inc md2fm songt1 songt1_1 c1 t2 md2fm songt1 songt1_2 c1 t1 fm2merge songt1_1 inc songt1_2 inc songt1 inc Binary File asmx songd1 inc By using the MD2FM the channel 1 and channel 2 data of a MIDI file mid can be extracted and converted to FM format inc Then the two FM files need to ...

Page 59: ... support all the features of MIDI the following must be noted 1 Due to the limitation of conversion program the TIMEBASE of the mid file must be 48 and there must not be any TEMPO METER changes after the initial settings Also it does not recognize channel pressure control 2 This routine creates a inc file for a single channel of a single track only from a simple mid file To use this polyphonically...

Page 60: ...ion on the data structure of FM slave synthesis The following is the syntax of the fm2merge fm2merge input file1 input file2 output file input1 channel 1 data file songt1_1 inc input2 channel 2 data file songt1_2 inc output output file songt1 inc Assuming that there are two files songt1_1 inc and songt1_2 inc which is the song data for channel 1 and channel 2 in FM format The combined file can be ...

Page 61: ...rs for the slave program to run properly All the instruments available are listed in the file fm2intr1 inc The instruments that match the applications can be selected 2 For music with only one channel a file with the following statement BYTE StopSong can be created for the channel 2 file Then go through the same process to create the FM II data for slave B 4 3 Assembler Once the FM2MERGE program h...

Page 62: ...C 1 Appendix A Listing of FMequM2 inc Topic Page C 1 Listing of FMequM2 inc C 2 Appendix C ...

Page 63: ...0 BIT8 equ 0100 00 0001 0000 0000 BIT9 equ 0200 00 0010 0000 0000 BIT10 equ 0400 00 0100 0000 0000 BIT11 equ 0800 00 1000 0000 0000 BIT12 equ 1000 01 0000 0000 0000 BIT13 equ 2000 10 0000 0000 0000 NUMSONGS equ 2 of songs in list Initialization defaults default gain value MAXGAIN equ 24 default value also MAX do not exceed default Master Modulation Index Scale values DEFSCLMIX equ 96 like a tone c...

Page 64: ...f25p equ 16 f18p equ 12 f12p equ 8 f9p equ 6 f6p equ 4 f4p equ 3 f3p equ 2 f2p equ 1 f0p equ 0 OFF equ 0 use for REST event set velocity 0 NOFADER equ 0 Fader Increment 0 Musical note index definitions C0 equ 0 Cs0 equ 1 Db0 equ 1 D0 equ 2 Ds0 equ 3 Eb0 equ 3 E0 equ 4 F0 equ 5 Fs0 equ 6 Gb0 equ 6 G0 equ 7 Gs0 equ 8 Ab0 equ 8 A0 equ 9 As0 equ 10 Bb0 equ 10 B0 equ 11 C1 equ 12 Cs1 equ 13 Db1 equ 13 ...

Page 65: ...2 equ 26 Ds2 equ 27 Eb2 equ 27 E2 equ 28 F2 equ 29 Fs2 equ 30 Gb2 equ 30 G2 equ 31 Gs2 equ 32 Ab2 equ 32 A2 equ 33 As2 equ 34 Bb2 equ 34 B2 equ 35 C3 equ 36 Cs3 equ 37 Db3 equ 37 D3 equ 38 Ds3 equ 39 Eb3 equ 39 E3 equ 40 F3 equ 41 Fs3 equ 42 Gb3 equ 42 G3 equ 43 Gs3 equ 44 Ab3 equ 44 A3 equ 45 As3 equ 46 Bb3 equ 46 B3 equ 47 C4 equ 48 Cs4 equ 49 Db4 equ 49 D4 equ 50 ...

Page 66: ...trument Sound tables PatchFLT1 equ 128 0 FM Flute tone 1 PatchBRS1 equ 128 1 FM Brass tone 1 Medium slow attack PatchBRS2 equ 128 2 FM Brass tone 2 Fast attack PatchBRS3 equ 128 3 FM Brass tone 3 Slow attack PatchTRM1 equ 128 4 FM Brass tone Trombone 1 Slow attack PatchTRM2 equ 128 5 FM Brass tone Trombone 2 Med slow attack PatchCLR1 equ 128 6 FM Clarinet Tone 1 PatchCLR2 equ 128 7 FM Clarinet Ton...

Page 67: ... 128 33 FM Metallic tone 6k hard metallic sound 3 PatchMT6l equ 128 34 FM Metallic tone 6l plucked string 1 PatchMT6m equ 128 35 FM Metallic tone 6m plucked string 2 PatchMT6n equ 128 36 FM Metallic tone 6n PatchMT6o equ 128 37 FM Metallic tone 6o plucked string 3 PatchMT6p equ 128 38 FM Metallic tone 6p plucked string 4 PatchCHM1 equ 128 39 FM Chimes tone 1 PatchCHM2 equ 128 40 FM Chimes tone 2 P...

Page 68: ...Repeat Play 8X ENDMULTI equ F8 Control code for End MULTI Repeat BEGMULTI2 equ F9 Control code for Start MULTI Play 2X BEGMULTI3 equ FA Control code for Start MULTI Play 3X BEGMULTI4 equ FB Control code for Start MULTI Play 4X BEGMULTI5 equ FC Control code for Start MULTI Play 5X BEGMULTI6 equ FD Control code for Start MULTI Play 6X BEGMULTI7 equ FE Control code for Start MULTI Play 7X BEGMULTI8 e...

Page 69: ...0 80 244 140625 0 245760 49 152000 49 BPM250 equ 31 82 250 244141 0 239766 47 953171 48 BPM256 equ 32 84 256 347656 0 234057 46 811429 47 BPM262 equ 33 86 262 451172 0 228614 45 722791 46 BPM269 equ 34 88 268 554688 0 223418 44 683636 45 BPM275 equ 35 90 274 658203 0 218453 43 690667 44 BPM281 equ 36 92 280 761719 0 213704 42 740870 43 BPM287 equ 37 94 286 865234 0 209157 41 831489 42 BPM293 equ 3...

Page 70: ...r by 7 ENVL8 equ 8 make Envelope length Longer by 8 ENVL10 equ 10 make Envelope length Longer by 10 ENVL12 equ 12 make Envelope length Longer by 12 ENVL14 equ 14 make Envelope length Longer by 14 ENVL16 equ 16 make Envelope length Longer by 16 ENVL18 equ 18 make Envelope length Longer by 18 ENVL20 equ 20 make Envelope length Longer by 20 Musical Note Time value definitions FM ngrc equ 1 Grace Note...

Page 71: ...ply 0 707 X0_75 equ 24 Multiply 0 750 down a Fourth X1 equ 32 Multiply 1 X1_41 equ 45 Multiply 1 414 X1_5 equ 48 Multiply 1 500 up a Fifth X2 equ 64 Multiply 2 X3 equ 96 Multiply 3 X4 equ 128 Multiply 4 X5 equ 160 Multiply 5 X6 equ 192 Multiply 6 X7 equ 224 Multiply 7 X7_8 equ 250 Multiply 7 8125 X7_9 equ 255 Multiply 7 96875 8 bit number max X8 equ 256 Multiply 8 NOTE is this limited to 8 bit num...

Page 72: ...D 1 Appendix A MSP53C391 392 Timing Considerations Topic Page D 1 General Constraints D 2 D 2 MSP53C391 Timing Waveforms D 3 D 3 MSP53C392 Timing Waveforms D 5 Appendix D ...

Page 73: ...kly until the buffer is again full The read pulses should subsequently be spaced more widely until it is again determined that the buffer is not full and the device is ready to accept new data The spacing of the read pulses while the buffer is an important determinant of the synthesized speech quality but is difficult to specify precisely due to the different data throughput requirements of the di...

Page 74: ...mit of this part of the specification could be less than 19 µs but it is advisable not to stretch the higher limit The typical range of timing between the rising edge of the write strobe pulse and the falling edge of the read strobe pulse if the slave is not busy is 30 µs 34 µs The typi cal range of timing between the rising edge of the read strobe pulse and the falling edge of the write strobe pu...

Page 75: ...ble to keep any interrupt service routine small so that a new Interrupt service request does not occur while the master is processing the previous request It is advisable to follow the typical timing window as much as possible for any synthesis algorithm but if difficulties are found you can try changing any of those timing windows except the width of the read and write strobe pulses to correct th...

Page 76: ...d strobe pulse and the falling edge of the write strobe pulse if the slave is BUSY is 19 µs 606 µs This timing could be stretched depending upon the synthesis algorithm but polling the slave too frequently if the slave is BUSY would unnecessarily waste time critical MSP53C392 instruction cycles which might affect the quality of the speech At the same time polling the slave less frequently would le...

Page 77: ...h data to the slave in response to the interrupt as soon as possible It is advisable to follow the typical timing window as much as possible for any synthesis algorithm but if difficulties are found you can try changing any of those timing window except the width of the read and write strobe pulses to correct the problem for your particular system ...

Page 78: ...E 1 Appendix A Listing of FM2INTR1 inc Topic Page E 1 Listing of FM2INTR1 inc E 2 Appendix E ...

Page 79: ...yte LOADTIMBRE byte X1 Carrier Fc Fo byte X1 Modulator Fm Fo byte 36 4 Modulation Index Scaler byte 96 1 CarAmp FmAmp Initial Values byte 31 24 0 CarInc FmInc 0 7 byte 18 24 1 CarInc FmInc 8 15 byte 17 24 2 CarInc FmInc 16 23 byte 16 24 3 CarInc FmInc 24 31 byte 14 8 4 CarInc FmInc 32 39 byte 13 8 5 CarInc FmInc 40 47 byte 12 8 6 CarInc FmInc 48 55 byte 37 6 7 CarInc FmInc 56 63 PatchBRS2 Brass to...

Page 80: ...Values byte 22 58 0 CarInc FmInc 0 7 byte 18 50 1 CarInc FmInc 8 15 byte 17 44 2 CarInc FmInc 16 23 byte 16 7 3 CarInc FmInc 24 31 byte 14 8 4 CarInc FmInc 32 39 byte 12 9 5 CarInc FmInc 40 47 byte 10 10 6 CarInc FmInc 48 55 byte 18 11 7 CarInc FmInc 56 63 PatchTRM2 Brass tone Trombone 2 Med slow attack byte LOADTIMBRE byte X1 Carrier Fc Fo byte X05 Modulator Fm 0 5Fo byte 26 4 Modulation Index Sc...

Page 81: ...yte 5 4 6 CarInc FmInc 48 55 byte 81 108 7 CarInc FmInc 56 63 PatchMT1a Metallic tone 1a byte LOADTIMBRE byte X2 Carrier Fc 2Fo byte X0707 Modulator Fm 0 707Fo byte 32 4 Modulation Index Scaler byte 127 127 CarAmp FmAmp Initial Values byte 40 20 0 CarInc FmInc 0 7 byte 27 8 1 CarInc FmInc 8 15 byte 19 8 2 CarInc FmInc 16 23 byte 7 8 3 CarInc FmInc 24 31 byte 6 8 4 CarInc FmInc 32 39 byte 5 19 5 Ca...

Page 82: ...te 32 4 Modulation Index Scaler byte 127 127 CarAmp FmAmp Initial Values byte 40 20 0 CarInc FmInc 0 7 byte 27 8 1 CarInc FmInc 8 15 byte 19 8 2 CarInc FmInc 16 23 byte 7 8 3 CarInc FmInc 24 31 byte 6 8 4 CarInc FmInc 32 39 byte 5 19 5 CarInc FmInc 40 47 byte 4 19 6 CarInc FmInc 48 55 byte 19 0 7 CarInc FmInc 56 63 PatchMT2b Metallic tone 2b byte LOADTIMBRE byte X1 Carrier Fc Fo byte X1414 Modulat...

Page 83: ... 31 byte 6 8 4 CarInc FmInc 32 39 byte 5 19 5 CarInc FmInc 40 47 byte 4 19 6 CarInc FmInc 48 55 byte 19 0 7 CarInc FmInc 56 63 PatchMT3b Metallic tone 3b byte LOADTIMBRE byte X1 Carrier Fc Fo byte Xd4th Modulator Fm 0 750Fo byte 32 4 Modulation Index Scaler byte 127 127 CarAmp FmAmp Initial Values byte 16 15 0 CarInc FmInc 0 7 byte 16 8 1 CarInc FmInc 8 15 byte 16 8 2 CarInc FmInc 16 23 byte 16 8 ...

Page 84: ...te X2 Carrier Fc 2Fo byte Xu5th Modulator Fm 1 500Fo byte 36 4 Modulation Index Scaler byte 127 127 CarAmp FmAmp Initial Values byte 16 15 0 CarInc FmInc 0 7 byte 16 8 1 CarInc FmInc 8 15 byte 16 8 2 CarInc FmInc 16 23 byte 16 8 3 CarInc FmInc 24 31 byte 16 4 4 CarInc FmInc 32 39 byte 16 2 5 CarInc FmInc 40 47 byte 16 1 6 CarInc FmInc 48 55 byte 15 0 7 CarInc FmInc 56 63 PatchMT4c Metallic tone 4c...

Page 85: ...8 2 CarInc FmInc 16 23 byte 16 8 3 CarInc FmInc 24 31 byte 16 4 4 CarInc FmInc 32 39 byte 16 2 5 CarInc FmInc 40 47 byte 16 1 6 CarInc FmInc 48 55 byte 15 0 7 CarInc FmInc 56 63 PatchMT5c Metallic tone 5c byte LOADTIMBRE byte Xd4th Carrier Fc 0 75Fo byte X2 Modulator Fm 2Fo byte 24 4 Modulation Index Scaler byte 96 1 CarAmp FmAmp Initial Values byte 31 24 0 CarInc FmInc 0 7 byte 18 24 1 CarInc FmI...

Page 86: ...c FmInc 56 63 PatchMT6c Metallic tone 6c good BASS sound 3 byte LOADTIMBRE byte X1 Carrier Fc Fo byte X05 Modulator Fm 0 5Fo byte 32 4 Modulation Index Scaler byte 127 127 CarAmp FmAmp Initial Values byte 24 20 0 CarInc FmInc 0 7 byte 18 15 1 CarInc FmInc 8 15 byte 6 12 2 CarInc FmInc 16 23 byte 3 10 3 CarInc FmInc 24 31 byte 2 8 4 CarInc FmInc 32 39 byte 1 5 5 CarInc FmInc 40 47 byte 18 3 6 CarIn...

Page 87: ...CarInc FmInc 0 7 byte 18 15 1 CarInc FmInc 8 15 byte 6 12 2 CarInc FmInc 16 23 byte 3 10 3 CarInc FmInc 24 31 byte 2 8 4 CarInc FmInc 32 39 byte 1 5 5 CarInc FmInc 40 47 byte 18 3 6 CarInc FmInc 48 55 byte 55 1 7 CarInc FmInc 56 63 PatchMT6g Metallic tone 6g byte LOADTIMBRE byte X1 Carrier Fc Fo byte X0707 Modulator Fm 0 707Fo byte 36 4 Modulation Index Scaler byte 127 1 CarAmp FmAmp Initial Value...

Page 88: ...47 byte 12 6 6 CarInc FmInc 48 55 byte 67 12 7 CarInc FmInc 56 63 PatchMT6j Metallic tone 6j hard metallic sound 2 byte LOADTIMBRE byte X3 Carrier Fc 2Fo byte X1 Modulator Fm Fo byte 20 4 Modulation Index Scaler byte 127 127 CarAmp FmAmp Initial Values byte 24 20 0 CarInc FmInc 0 7 byte 18 15 1 CarInc FmInc 8 15 byte 6 12 2 CarInc FmInc 16 23 byte 3 10 3 CarInc FmInc 24 31 byte 2 8 4 CarInc FmInc ...

Page 89: ...4 Modulation Index Scaler byte 127 120 CarAmp FmAmp Initial Values byte 24 7 0 CarInc FmInc 0 7 byte 12 20 1 CarInc FmInc 8 15 byte 6 10 2 CarInc FmInc 16 23 byte 3 5 3 CarInc FmInc 24 31 byte 2 3 4 CarInc FmInc 32 39 byte 1 1 5 CarInc FmInc 40 47 byte 12 6 6 CarInc FmInc 48 55 byte 67 12 7 CarInc FmInc 56 63 PatchMT6n Metallic tone 6n byte LOADTIMBRE byte X1 Carrier Fc Fo byte X05 Modulator Fm 0 ...

Page 90: ... 10 3 CarInc FmInc 24 31 byte 2 8 4 CarInc FmInc 32 39 byte 1 5 5 CarInc FmInc 40 47 byte 18 3 6 CarInc FmInc 48 55 byte 65 1 7 CarInc FmInc 56 63 PatchCHM1 Chimes tone 1 byte LOADTIMBRE byte X1 Carrier Fc Fo byte X1414 Modulator Fm 1 414Fo byte 24 4 Modulation Index Scaler byte 127 120 CarAmp FmAmp Initial Values byte 28 13 0 CarInc FmInc 0 7 byte 20 11 1 CarInc FmInc 8 15 byte 11 10 2 CarInc FmI...

Page 91: ...or Fm 1 Fo byte 38 4 MIX Scaler higher more timbre chg per progressive Velocity MIXn byte 126 108 CarAmp FmAmp Initial Values byte 13 006 0 CarInc FmInc 0 7 byte 25 013 1 CarInc FmInc 8 15 byte 13 19 2 CarInc FmInc 16 23 byte 25 19 3 CarInc FmInc 24 31 byte 000 06 4 CarInc FmInc 32 39 byte 000 25 5 CarInc FmInc 40 47 byte 38 32 6 CarInc FmInc 48 55 byte 10 23 7 CarInc FmInc 56 63 PatchPNO2 Piano t...

Page 92: ...r higher more timbre chg per progressive Velocity MIXn byte 127 127 CarAmp FmAmp Initial Values byte 13 13 0 CarInc FmInc 0 7 byte 25 06 1 CarInc FmInc 8 15 byte 25 06 2 CarInc FmInc 16 23 byte 000 13 3 CarInc FmInc 24 31 byte 000 25 4 CarInc FmInc 32 39 byte 19 38 5 CarInc FmInc 40 47 byte 19 19 6 CarInc FmInc 48 55 byte 23 04 7 CarInc FmInc 56 63 PatchBNJ1 Banjo 1 byte LOADTIMBRE byte X3 Carrier...

Page 93: ...e 13 25 1 CarInc FmInc 8 15 byte 000 25 2 CarInc FmInc 16 23 byte 000 25 3 CarInc FmInc 24 31 byte 000 25 4 CarInc FmInc 32 39 byte 000 25 5 CarInc FmInc 40 47 byte 13 000 6 CarInc FmInc 48 55 byte 57 000 7 CarInc FmInc 56 63 PatchEGT1 Electric Guitar 1 byte LOADTIMBRE byte X1 Carrier Fc 1 Fo byte X0_5 Modulator Fm 0 5 Fo byte 50 4 MIX Scaler higher more timbre chg per progressive Velocity MIXn by...

Page 94: ...c 24 31 byte 25 01 4 CarInc FmInc 32 39 byte 25 03 5 CarInc FmInc 40 47 byte 13 01 6 CarInc FmInc 48 55 byte 25 10 7 CarInc FmInc 56 63 PatchFLT1 Flute Tone 1 byte LOADTIMBRE byte X2 Carrier Fc 2 Fo byte X2 Modulator Fm 2 Fo byte 32 4 MIX Scaler higher more timbre chg per progressive Velocity MIXn byte 013 013 CarAmp FmInc Initial Values byte 089 047 0 CarInc FmInc 0 7 byte 025 038 1 CarInc FmInc ...

Page 95: ...3 7 CarInc FmInc 56 63 PatchHRN1 French Horn 1 byte LOADTIMBRE byte X0_5 Carrier Fc 0 5 Fo byte X0_5 Modulator Fm 0 5 Fo byte 20 4 MIX Scaler higher more timbre chg per progressive Velocity MIXn byte 038 048 CarAmp FmInc Initial Values byte 064 050 0 CarInc FmInc 0 7 byte 025 06 1 CarInc FmInc 8 15 byte 000 06 2 CarInc FmInc 16 23 byte 25 06 3 CarInc FmInc 24 31 byte 25 06 4 CarInc FmInc 32 39 byt...

Page 96: ...Fc 0 5 Fo byte X0_5 Modulator Fm 0 5 Fo byte 28 4 MIX Scaler higher more timbre chg per progressive Velocity MIXn byte 064 051 CarAmp FmInc Initial Values byte 064 051 0 CarInc FmInc 0 7 byte 000 03 1 CarInc FmInc 8 15 byte 13 03 2 CarInc FmInc 16 23 byte 13 03 3 CarInc FmInc 24 31 byte 13 05 4 CarInc FmInc 32 39 byte 000 29 5 CarInc FmInc 40 47 byte 000 29 6 CarInc FmInc 48 55 byte 89 30 7 CarInc...

Page 97: ...mInc 32 39 byte 000 000 5 CarInc FmInc 40 47 byte 000 000 6 CarInc FmInc 48 55 byte 127 114 7 CarInc FmInc 56 63 PatchEBS1 Electric Bass 1 byte LOADTIMBRE byte X0_5 Carrier Fc 0 5 Fo byte X0_5 Modulator Fm 0 5 Fo byte 28 4 MIX Scaler higher more timbre chg per progressive Velocity MIXn byte 127 114 CarAmp FmInc Initial Values byte 13 013 0 CarInc FmInc 0 7 byte 13 13 1 CarInc FmInc 8 15 byte 13 13...

Page 98: ...F 1 Appendix A MSP53C391 and MSP53C392 Data Sheet Topic Page F 1 MSP53C391 MSP53C392 F 2 Appendix F ...

Page 99: ...MSP53C31 and MSP53C32 Data Sheet F 2 F 1 MSP53C31 and MSP53C32 Data Sheet ...

Page 100: ...lso can synthesize two channel music using FM synthesis See the MSP50C3x User s Guide literature number SLOU006B for more information about the MSP50C3x family Table 1 MSP53C39x Family DEVICE FEATURES MSP53C391 4 bit data bus MSP53C392 8 bit data bus Copyright 1999 Texas Instruments Incorporated PRODUCTION DATA information is current as of publication date Products conform to specifications per th...

Page 101: ...conditions beyond those indicated under recommended operating conditions is not implied Exposure to absolute maximum rated conditions for extended periods may affect device reliability NOTES 1 All voltages are with respect to ground 2 The total supply current includes the current out of all the I O terminals and DAC terminals as well as the operating current of the device recommended operating con...

Page 102: ... 5 9 VDD 5 V VOL 0 5 V 5 9 mA IOL Low level output current VDD 6 V VOL 0 5 V 5 9 IOL DATA0 DATA7 OUT1 OUT2 VDD 3 3 V VOL 1 1 V 10 19 VDD 5 V VOL 1 67 V 20 29 mA VDD 6 V VOL 2 V 25 35 VDD 3 3 V VOH 2 75 V 30 50 VDD 5 V VOH 4 5 V 35 60 mA IOH High level output current DAC VDD 6 V VOH 5 5 V 40 65 IOH High level output current DAC VDD 3 3 V VOH 2 3 V 50 90 VDD 5 V VOH 4 V 90 140 mA VDD 6 V VOH 5 V 100...

Page 103: ...tup time data valid before STROB goes high see Figure 2 100 ns th1 R W Hold time R W low after STROB goes high see Figure 2 20 ns th d Hold time data valid after STROB goes high see Figure 2 30 ns tw Pulse duration STROB low see Figure 2 100 ns tr Rise time STROB see Figure 2 50 ns tf Fall time STROB see Figure 2 50 ns Reading Slave Mode tsu2 R W Setup time R W before STROB goes low see Figure 3 2...

Page 104: ...T OFFICE BOX 655303 DALLAS TEXAS 75265 PARAMETER MEASUREMENT INFORMATION Data Valid R W STROB DATA tsu1 R W tw th1 R W tf tsu d tr th d Figure 2 Write Timing Diagram Slave Mode Data Valid R W STROB DATA tsu2 R W tw th2 R W tf tr tdis td Figure 3 Read Timing Diagram Slave Mode ...

Page 105: ...745 A MIN DIM A MAX PINS 0 310 7 87 0 290 7 37 23 37 21 59 Seating Plane 0 010 0 25 NOM 14 18 PIN ONLY 4040049 C 08 95 9 8 0 070 1 78 MAX A 0 035 0 89 MAX 0 020 0 51 MIN 16 1 0 015 0 38 0 021 0 53 0 200 5 08 MAX 0 125 3 18 MIN 0 240 6 10 0 260 6 60 M 0 010 0 25 0 100 2 54 0 15 16 PIN SHOWN NOTES A All linear dimensions are in inches millimeters B This drawing is subject to change without notice C ...

Page 106: ...ume control 4 6 command summary FM synthesis B 7 commands FM synthesis B 2 comparison MSP53C391 with MSP53C392 1 3 Cool Edit A 3 D D A information 1 6 data preparation A 3 FM synthesis B 12 data sheet F 2 F 8 data streams 4 3 MSP53C391 4 3 MSP53C392 4 3 synthesis selection codes 4 3 data structure FM synthesis B 9 detune FM synthesis B 5 E echo input data 4 7 editing tools A 2 end of song FM synth...

Page 107: ...terface 2 8 2 10 master microprocessor timing 2 12 microprocessor interface 2 8 2 10 interrupt 2 MSP53C391 2 8 L load timbre command FM synthesis B 4 low power sleep state 4 6 LPC data preparation A 3 LPC algorithm 1 6 M master microprocessor interface interrupt 1 2 6 2 8 interrupt 1 timing 2 11 interrupt 2 2 8 2 10 interrupt 2 timing 2 12 method 1 timing 2 10 3 7 method 2 timing 2 11 method 3 tim...

Page 108: ...state 4 6 software description 4 2 synthesis selection codes 4 3 timing D 2 D 8 timing waveforms D 3 volume control 4 6 WINSDS A 2 MSP53C392 CELP data preparation A 3 command codes 4 5 command header 4 2 command sequence 4 2 command sequences 4 4 comparison with MSP53C391 1 3 D A information 1 6 data preparation A 3 data sheet F 2 F 8 data streams 4 3 device initialization 3 8 editing tools A 2 fe...

Page 109: ... 6 software command codes 4 5 command header 4 2 command sequence 4 2 command sequences 4 4 data streams 4 3 generate test signal 4 7 pin expansion 4 5 request version 4 6 sleep state 4 6 volume control 4 6 software description MSP53C391 4 2 MSP53C392 4 2 synthesis selection codes 4 3 T tempo control FM synthesis B 3 tempo synchronization FM synthesis B 4 test signal 4 7 MSP53C391 4 7 MSP53C392 4 ...

Reviews: