Texas Instruments TLV1562 Dual Continuous Mode, Program Files, Other Files, Code verification

Page 44
8.5.5Dual Continuous Mode

Software Overview

8.5.5Dual Continuous Mode

The following descriptions explain the software for data acquisition in dual continuous mode. The required interface connections are shown in Figure 2.

Program Files:

DUALCON1.ASM

Includes the complete software algorithm to control the Dual Continuous Mode

CALIBRAT.ASM

Calibration procedure of the DAC

CONSTANT.ASM

Common file of all modes (constants definition)

VECTORS.ASM

Common file of all modes (IRQ vector table)

Other Files:

 

linker.cmd

Organization of the DSP memory (data and program memory)

auto.bat

Batch file to start the compiler for the dual continuous software

asm500.exe

C54x Code compiler

lnk500.exe

C54x linker

The timing requirements to interface the ’C54x to the ADC are provided in Table 12. The STEP numbers given there can be found again as Marker in the code. This helps to debug and verify the code.

Code verification:

To verify the software, the user must change the code in the DUALCON1.ASM file and save those changes. The next step is to recompile the four .ASM files by executing the AUTO.BAT batch file. If compiler and linker finish without error messages, the new output file is ready to load in the DSP program memory (e.g. with the GoDSP development tools) and to execute.

The flow chart in Figure 12 gives a general overview of the software structure (DUALCON1.ASM).

38SLAA040

Image 44
Contents July SLAA040Application Report TParalInteMS3rflelADConvertertotheacing20C54xDSPtheTLV1562IMPORTANT NOTICE Contents 8.5.5 Figures List of FiguresList of Tables viSLAA040 Interfacing the TLV1562 Parallel ADC to the TMS320C54x DSP 1 Introduction2 The Board 2.1 TMS320C54x Starter Kit2.2 TLV1562EVM 2.3 ADC TLV1562 Overview2.3.1 Suggestions for the ’C54x to TLV1562 Interface 2.3.1.1 The Universal InterfaceFigure 2. TLV1562 to ’C54x DSP Interface of the EVM Using RD or the CSTART Signal to Start Conversion2.3.2 Recyclic Architecture 2.4.1 TLC5618A - Serial DAC 2.3.3 Note on the Interface, Using an External ADC Clock Drive2.4 Onboard Components Figure 4. THS5651 to C542 DSP Interface 2.4.2 THS5651 - Parallel Output CommsDACFigure 3. TLC5618A to ’C542 DSP Interface 3.2 Input Data Bits 3 Operational Overview3.1 Reference Voltage Inputs Table 1. Signal Connections 3.3 Connections Between the DSP and the EVM3.3.1 Jumpers Used on the TLV1562EVM Table 2. 3-Position JumpersTable 3. 2-Position Jumpers 8SLAA0404 The Serial DAC/DSP System Table 4. DSP/DAC InterconnectionTable 5. DSP Serial Port Signals and Registers 5 The DSP Serial Port6 Other DSP/TLV1562 Signals 6.1 DSP Internal Serial Port Operation7.2 Mono Interrupt Driven Mode Using RD 7 Conversation Between the TLV1562 and the DSP7.1 Writing to the ADC Table 6. DSP Algorithm for Writing to the ADCtENDATAOUT = 41 ns Table 7. DSP Algorithm for Mono Interrupt Driven Mode Using RDtDCSL-sample+1ADCSYSCLK 14 SLAA040 7.3 Mono Interrupt Driven Mode Using CSTARTTable 8. DSP Algorithm for Mono Interrupt Driven Mode Using CSTART 7.4 Dual Interrupt Driven Mode Table 9. DSP Algorithm for Dual Interrupt Driven Mode16 SLAA040 7.5 Mono Continuous ModeTable 10. DSP Algorithm for Mono Continuous Mode 7.6 Dual Continuous Mode Table 11. DSP Algorithm for Dual Continuous Mode8.2 DSP Memory Map 8 Software Overview8.1 Software Development tools Figure 5. Memory Map 8.3.3 Timer Output 8.3 Programming Strategies for the ’C54x, Explanations8.3.1 Optimizing CPU Resources for Maximum Data Rates 8.3.2 Address and Data Bus for I/O Tasks8.3.6 Interfacing the Serial DAC 5618A to the DSP 8.3.5 Generating the Chip Select Signal and the CSTART Signal8.3.4 Data Page Pointer 8.3.7 Interrupt Latency 8.3.8 Branch Optimization goto/dgoto, call/dcallGOTO MARK MARK DP = #1 ARP = #58.4.1 Software Principals of the Interface 8.3.9 Enabling Software Modules .if/.elseif/.endif8.4 Software Code Explanation 8.4.1.2 Timed Solution 8.4.1.1 Software PollingAdvantage Disadvantage8.4.1.3 Interrupt Driven Solution 8.4.1.5 Setting the Right SwitchesAdvantages DisadvantagesTable 13. Instruction in the Program Header Step Table 12. Switch SettingsTask 8.5 Flow Charts and Comments for All Software Modes 8.5.1 The Mono Interrupt Driven Mode Using RD to Start ConversionTable 14. Instruction in the Program Header Step 8.4.1.6 Common Software for all ModesProgram Files Other FilesCode verification common file of all modes constants definitionFigure 6. Software Flow of the Mono Interrupt Driven Solution 8.5.2 Mono Interrupt Driven Mode Using CSTART to Start Conversion Calibration procedure of the DACIncludes the complete software algorithm to control the monomode Common file of all modes constants definitionInitialize SPI SAVEPoll INTO Pin Until h/0 Transition Occurs Pull Down CSTART8.5.2.1 Throughput Optimization† This only works for one TLV1562 not multiple because CS is not usedMaximum Performance at 1.2 MSPS with Internal Clock 8.5.3 Dual Interrupt Driven ModeFigure 8. Time Optimization monocst1 IMPORTANT NOTE The code has been optimized to maximize the data throughput. It was found that CSTART can be pulled low earlier than the data read instruction is performed by the DSP. This saves the 100-ns wait time in STEP 3 because the data read requires at least 100 ns. Therefore, CSTART gets pulled high directly after data read, and the interface becomes faster and gains throughput. This variation will be found in the code. The data acquisition is done in a small number of steps that explains everything inside the code Software Overview 8.5.4 Mono Continuous Mode Figure 10. Flow Chart Mono Continuous Mode 8.5.5 Dual Continuous Mode Figure 11. Flow Chart Dual Continuous Mode Code verification 8.6.1.1 Constants.asm 8.6 Source Code8.6.1 Common Software for all Modes except C-Callable set 000C0h Operate without calibrated inputs no offset 42 SLAA0408.6.1.2 Interrupt Vectors 4C internal timer interrupt 44 SLAA0408.6.1.3 linker,cmd 8.6.1.4 Auto.batFile Linker.lnk COMMAND FILE title ”COMMAND FILE FOR TLV1562.ASM”Mainprogram Monomode.asm pointer address when using any of the following variablesjump address to init. new channel counter for one channelsent value to register CR0 of the ADC 48 SLAA040 if SENDOUTSERIALendif if INT0DRIVENPOLLINGDRV endif if AUTOPWDNENABLE endif if DIFFINPUTMODE= bit*AR5,15-0 elseif INT0DRIVENelseif NOINT0SIG 52 SLAA040 8.6.3 Calibration of the ADC CALIBRAT.ASM54 SLAA040 if SMECALIBRATION 56 SLAA040 Software Overview 58 SLAA040 Software Overview 60 SLAA040 if INT0DRIVENPOLLINGDRV 62 SLAA040 = bit*AR5,15-0 endif if SAVEINTOMEMORY 64 SLAA040Interfacing the TLV1562 Parallel ADC to the TMS320C54x DSP 8.6.5 Dual Interrupt Driven Mode Constants definition - see 8.6.1.1 Constants.asmInterrupt Routine handler - see 8.6.1.2 Interrupt Vectors Mainprogram DUALIRQ1.asmSoftware Overview Interfacing the TLV1562 Parallel ADC to the TMS320C54x DSPSoftware Overview if SENDOUTSERIALInterfacing the TLV1562 Parallel ADC to the TMS320C54x DSP 70 SLAA040 if AUTOPWDNENABLE 72 SLAA040 Software Overview 74 SLAA040 8.6.6 Mono Continuous ModeMainprogram MONOCON1.asm Software Overview 76 SLAA040 endif if EXTERNALCLOCK 78 SLAA040 Software Overview 80 SLAA040 8.6.7 Dual Continuous ModeMainprogram DUALCON1.asm Software Overview 82 SLAA040 Software Overview 84 SLAA040 Software Overview 8.6.8 C-Callable Mainprogram C1562.cTLV1562Channel, Save Memory Start address, NUMBEROFSAMPLES 80h samples of channel 1 will be stored beginning on 2000hSoftware Overview 88 SLAA040 AR7+ = data@ADSAMPLE Vectors.asm 90 SLAA040int2 returnenable 48 external interrupt int2 nop 92 SLAA040 Auto.batLinker.cmd 9 Summary 10 References