DSP/BIOS Timers and Benchmarking Tips
|
|
|
- Ethan Norman
- 9 years ago
- Views:
Transcription
1 Application Report SPRA829 - July 2002 DSP/BIOS Timers and Benchmarking Tips Harish Thampi S ABSTRACT Software Development Systems Digital signal processors (DSPs) typically have one or more on-chip timers that generate hardware interrupts at periodic intervals. DSP/BIOS normally uses one of the available on-chip timers as a source for its system clock. The on-chip timer can also be used to generate periodic hardware interrupts from the user application. DSP/BIOS also has a PRD module that allows the user to trigger periodic functions based on events that are triggered by certain sources. This application report describes the DSP/BIOS timers, clock (CLK), and periodic function (PRD) modules of DSP/BIOS. This document also explains how to configure a periodic function, and how to configure an on-chip timer to generate periodic hardware interrupts. The report also gives some tips on benchmarking with regard to the timers and the clock module. Examples that run on TMS320C6711 DSP starter kit (DSK) and TMS320C5402 DSK are included. The examples demonstrate how to configure timers, and periodic and clock functions using the configuration tool. Contents 1 Introduction DSP/BIOS Timers DSP On-Chip Timers Timer Operation Configuring the On-Chip Timer to Generate Periodic Hardware Interrupts DSP/BIOS System Clock System Clock High- and Low-Resolution Times Clock Functions and Operation Configuring and Understanding a CLK Function DSP/BIOS PRDs and Periodic Functions The PRD Module PRD Functions and Operation Configuring and Understanding a Periodic Function Benchmarking Tips Why Tips on Benchmarking Timer-Free Runs Benefits of Instrumentation APIs Over Profiler Limitations of CLK_gethtime/CLK_getltime Timer ISR Overhead References Appendix A Hello.c listing DSP/BIOS is a trademark of Texas Instruments. Trademarks are the property of their respective owners. 1
2 List of Figures Figure 1. Relation Between Timers, PRDs, and CLKs Figure 2. Timer Object Properties (a) Figure 3. Timer Object Properties (b) Figure 4. Timer Device Properties Figure 5. HWI_INT15 Properties Figure 6. Clock Function Sequence Figure 7. CLK Manager Properties Figure 8. PRD Function Sequence (a) Figure 9. PRD Function Sequence (b) Figure 10. PRD Manager Properties List of Tables Table 1. Timer Clock for DSPs Table 2. Timer Clock for DSPs Introduction Digital signal processors typically have one or more on-chip timers that generate hardware interrupt at periodic intervals. DSP/BIOS normally uses one of the available on-chip timers as a source for its system clock. The on-chip timer can also be used to generate periodic hardware interrupts from the user application. DSP/BIOS also has a PRD module that allows the user to trigger periodic functions based on events that are triggered by certain sources. The purpose of this application report is to help DSP/BIOS users to understand more about the system clock, understand the difference between a clock function and a PRD function, and also learn how to use the on-chip timer to generate periodic interrupts for a user application. The document also gives some tips on benchmarking with regard to the timers and the clock module. Examples that run on TMS320C6711 DSK and TMS320C5402 DSK are included. The examples demonstrate how to configure timers, and periodic and clock functions using the configuration tool. The essence of what is covered in this application report is described in Figure 1. After going through this application report, you will be able to understand the relation between the DSP/BIOS system clock, PRDs, and timers. 2 DSP/BIOS Timers and Benchmarking Tips
3 CPU clock rate N=4 for 67x N=8 for 64x N=(TDDR+1) for C5000 N High resolution clock timer counter register Timer period register Interrupt Alternatively call programmatically Alternatively call programmatically Coppied in CLK_startup(), after main() Low resolution clock CLK obj s System tick Default System clock PRD_tick() PRD_SWI Biggest common divisor Default TSK_tick() +1 System alarm clock Used by Timer period (taken from.cdb, hard coded in.asm) Read from timer PRD register for 54x PRD_Obj s... TSK_sleep() timeout SEM_pend() timeout TSK_time() CLK manager Figure 1. Relation Between Timers, PRDs, and CLKs By default, an on-chip timer drives the DSP/BIOS system clock. Alternatively, It may also be driven by an external source. The DSP/BIOS application programming interfaces (APIs) get the timer period values from the configuration files, except for TMS320C54x, where the value is actually read from the PRD register. The on-chip timers are driven by the divided-down central processing unit (CPU) clock. The divide-down ratio for the various TI chips is shown in Figure 1. 2 DSP/BIOS Timers 2.1 DSP On-Chip Timers Digital signal processors typically have one or more on-chip timers that generate the hardware interrupt at periodic intervals. They can be used to time or count events, generate pulses or interrupt the CPU. The timers have two signaling modes, and can be clocked by an external clock or the CPU clock. By default they are clocked internally. The timer output can be configured as a timer output or a general-purpose output. When an internal clock drives the timer, the frequency on the timer input clock varies across the processor generations. Table 1 gives the timer input frequency for different TI chips as a ratio of the CPU clocking rate. TMS320C54x is a trademark of Texas Instruments. DSP/BIOS Timers and Benchmarking Tips 3
4 Feature TMS320C620x/ C670x Table 1. Timer Clock for DSPs TMS320C621x/ C671x TMS320C64x TMS320C54x/C55x Timer input clock frequency CPU rate / 4 CPU rate / 4 CPU rate / 8 CPU rate / (TDDR +1) 2.2 Timer Operation For TMS320C6000 devices, the on-chip timer has a period count register (PRD), timer count register (CNT), and a timer control register (CTL). The timer s CTL register contains the control bits for configuring the timer. It also contains bits for setting the mode of operation, input source, and function. Apart from setting the appropriate values in the control register (CTL), the timer period value is set in the timer PRD register. When the timer starts from reset, the timer CNT register is incremented once every tick of the timer input clock. When the value in the timer CNT register equals the timer PRD register, the timer is reset to 0 in the next CPU clock. Thus, the counter counts from 0 to the value set in the timer PRD register. Every time the timer CNT register value equals the value of the timer PRD register, a timer interrupt occurs. In the default configuration, this timer interrupt advances the DSP/BIOS system clock by one tick. For TMS320C5000 devices the on-chip timer has a period count register (PRD), timer register (TIM), and a timer control register (TCR). Bits 0 to 3 of the TCR is for the timer divide-down ratio (TDDR) field, and bits 6 to 9 are for the prescalar (PSC) field. Unlike the C6000 devices, where the CPU clock is divided by a fixed value and fed to the timer input, C5000 devices make use of the TDDR value to divide down the CPU clock. The value in the TDDR field specifies the divide-down ratio of the CPU clock. The value in TDDR is copied to the prescaler counter (PSC) field and decremented on each CPU clock tick. Whenever the PSC reaches zero, the value in TDDR is reloaded to PSC, and the TIM register is decremented by one. When the TIM register reaches zero, a timer interrupt is triggered and the value in PRD is reloaded to the TIM register. Effectively, the CPU clock is divided by (TDDR +1) and fed to the timer. 2.3 Configuring the On-Chip Timer to Generate Periodic Hardware Interrupts This section shows how to configure the on-chip timer 1 to generate periodic hardware interrupts on a TMS320C6711DSK. Copy the hello2 example, shipped with Code Composer Studio and available in the folder <install directory>\tutorials\dsk6711\hello2, to the myprojects directory, and open the hello2 project. Open the configuration file of the hello2 project, and in the Chip Support Library (CSL) section of the configuration file, expand TIMER Timer Device. There are two subsections: a TIMER Configuration Manager and a TIMER Resource Manager. Right-click on the TIMER Configuration Manager, and insert a timercfg object called timercfg0. Right-click, and select the properties of the new timercfg object. In the properties window, the General tab can be ignored; it has only a comment field. Choose the Pin Control tab, and set the FUNC field to timer output. This sets the TOUT pin to be used as a timer output. The value in the INVOUT does not matter because the internal CPU clock is used here. Now select the Counter Control tab, and set the value of 0x2000 in the Period Value field. This means that the timer interrupt will occur every time the timer CNT register reaches 0x2000. The counter value is optional. The Timer Operation field determines the state of the timer. It can be set to start when reset, or restart or start with the reset option. Select the start with reset option. TMS320C6000, TMS320C5000, C6000, C5000, and Code Composer Studio are trademarks of Texas Instruments. 4 DSP/BIOS Timers and Benchmarking Tips
5 Now, move on to the Clock Control tab. In the CLKSRC field, you can select the source of the timer input clock. Select (CPU clock)/4 option because for the TMS DSK, the timer input clock is one-fourth the frequency on the CPU clock. The timer can be set to run in clock mode or pulse mode by the appropriate selection of the CP field. Select clock mode. If pulse mode is selected, the pulse width will have to be specified. Move on to the Advanced tab. The PRD and CNT fields will reflect the values in the Counter control tab. In this section, you need to configure the timer control register appropriately. Set the timer control register to 0x3C1. This field will be automatically set according the settings selected in the properties window. The value of 0x3C1 in the timer control register will set the clock source to internal clock, operating mode to clock mode, TOUT pin to be a timer output, HLD to 1, and the GO bit to one. Since the HLD and GO bits are set to 1, the timer is reset, and it starts counting from 0. Apply the settings. See Figure 2 and Figure 3. Figure 2. Timer Object Properties (a) Figure 3. Timer Object Properties (b) DSP/BIOS Timers and Benchmarking Tips 5
6 You have now configured the timer object; however, this does not mean that the timer itself is configured. To configure the timer, expand the TIMER Resource Manger list. You are configuring timer 1, so right-click on Timer Device1, and select properties. In the properties window, click to select the Open Timer Device option; this will activate the edit box to input name of timer handle. Use the default handle name htimer1. Now select the Enable Pre-initialization option. This activates the Pre-initialization with drop-down options. Select the timercfg0 from the list of available options. Apply the settings. This will make sure that timer 1 is configured according to the settings in the configuration object, timercfg0. See Figure 4. Figure 4. Timer Device Properties At this point, you have finished configuring timer 1 on the chip. To generate periodic hardware interrupts, you need to tie this interrupt to one of the hardware interrupt manager (HWI) objects. Open the properties window of HWI_INT15. Set the interrupt source to Timer 1 and the timer ISR function to timer_isr (). Note the use of a leading underscore, as this interrupt service routine (ISR) is written as a C function. The leading underscore is required because the C compiler places a leading underscore to all C symbols during compilation. In the Dispatcher tab of the HWI_INT15 properties, select the Use Dispatcher option so that DSP/BIOS will take care of the context save operation. See Figure 5. 6 DSP/BIOS Timers and Benchmarking Tips
7 Figure 5. HWI_INT15 Properties In the global settings of the configuration file, select CSL as 6711, and define the symbol CHIP_6711 in the project build options. In the file hello.c, define the ISR function as shown below. This ISR will be invoked every 0x2000 ticks of the timer clock. Void timer_isr (Void) { } LOG_printf (&trace, In a timer 1 ISR ); In the same file, include the following CSL header files related to the CSL and timer. #include <csl.h> #include <csl_timer.h> Declare the global variable as shown below. This variable is used to store the timer event ID. static Uint32 TimerEventId1; Now, inside the function main (), add the following lines of code. The code fragment below will get the timer event ID of timer 1, enable the particular timer event, and then start the timer: TimerEventId1 = TIMER_getEventId (htimer1); IRQ_enable (TimerEventId1); TIMER_start (htimer1); Save and build the hello2 project. Load and run the executable. You can see that timer_isr () is invoked periodically. The interval at which the timer 1 interrupt occurs is described below: TMS320C6711 CPU clock period = 1/150 Mhz = 6.67 ns Timer 1 input clock = 1/150 Mhz) * 4 = ns DSP/BIOS Timers and Benchmarking Tips 7
8 Timer 1 period = 0x2000 = 8192 Time period for timer 1 interrupt = 8192 * (1/150 Mhz) * 4 = us Now the hello2 project has a timer1 ISR that is invoked every us. So, the log output would be like the one shown below. The complete source code listing of hello.c is given in Appendix A. 0 In a timer 1 ISR Configuring the on-chip timer to generate periodic hardware interrupts on a TMS320C5402 DSK is very similar to that on a TMS320C6711 DSK. The only difference is that you can specify the timer divide-down ratio (TDDR). In the example provided with this application report, the TDDR value is set to zero. So, the timer will be driven by the DSP clock at 100Mhz. The PRD register of the timer is set to 0x55f0, which is equal to DSP clock ticks. So, the timer interrupt will occur every ticks of the DSP clock, which is equal to 220us. In the C5000 example, you tie the timer interrupt to HWI_SINT7. You need to use the dispatcher for HWI_SINT7. 3 DSP/BIOS System Clock 3.1 System Clock DSP/BIOS need a heartbeat because many of its APIs have a time-out parameter. This heartbeat is called the system clock. The system clock tick is different from the DSP clock tick. Apart from the system clock, DSP/BIOS provides a high- and low-resolution time. These clocks are used to measure passage of time, to generate time-stamp messages, and serve as the default heartbeats for driving the execution of periodic function. DSPs typically have more than one on-chip timer that generates hardware interrupts at periodic intervals. DSP/BIOS normally uses one of these available on-chip timers as a source for its on-chip system clock. In the default configuration, the system clock has the same value as the low-resolution time. There is no requirement that the system clock needs to be driven by an on-chip timer. An external clock, or an ISR triggered by an on-chip peripheral, can drive the system instead of the timer. The functioning of the system clock is explained in detail in section 3.3. The pre-configured CLK object, PRD_clock, can be removed from the DSP/BIOS configuration. To do this, un-check the Use CLK Manager to drive PRD option in the PRD objects General Properties window. If an external clock is used, it should call PRD_tick () to advance the system clock. The system clock can also be triggered by a periodic interrupt from an on-chip peripheral. In this case the interrupt s hardware ISR needs to call PRD_tick (). 3.2 High- and Low-Resolution Times Feature The on-chip timer has two registers called timer period register (PRD) and timer counter register (CNT). The high- and low-resolution times are dependent on these two registers. The timer CNT register increments by one every four CPU clock ticks in the case of TMS320C6711. The frequency at which the timer CNT increment depends on the DSP generation. See Table 2. TMS320C620x/ C670x Table 2. Timer Clock for DSPs TMS320C621x/ C671x TMS320C64x TMS320C54x/C55x Timer input clock frequency CPU rate / 4 CPU rate / 4 CPU rate / 8 CPU rate / (TDDR + 1) 8 DSP/BIOS Timers and Benchmarking Tips
9 When the value in the timer CNT register equals the value in the timer PRD register, the timer CNT register is reset to zero, and a timer interrupt is generated. DSP/BIOS increments the kernel variable CLK_R_time, whenever a timer interrupt occurs. The low-resolution time can be obtained by calling the API CLK_getltime (). It returns the number of timer interrupts that had occurred until the point of time when the API was called. The high-resolution time gives a more precise value by multiplying the number of timer interrupts held in CLK_R_time with the timer period, and adding the value of the timer CNT register to it. This gives a time with resolution very close to one instruction cycle. Potential timer counter rollover during the process of register reads will appropriately compensated before returning the high-resolution timer value to the user. The low-resolution time is used to add time stamps to event logs when the events happen over a long period of time. The high-resolution time is used in conjunction with STS_set () and STS_delta () APIs to benchmark code. It can also be used for adding time stamps to event logs. When the timer period is set to 0xFFFF on the C5000 and 0xFFFFFFFF on the C6000 devices, an optimized version of CLK_gethtime and CLK_getltime is used by DSP/BIOS: CLK_R_time = Number of timer interrupts Low-resolution time = CLK_R_time High-resolution time = ( CLK_R_time * Timer PRD ) + Timer CNT 3.3 Clock Functions and Operation The CLK module provides four APIs: CLK_gethtime (), CLK_getltime (), CLK_countspms (), and CLK_getprd (). The first two have already been discussed in the previous section. The API CLK_countspms () returns the programmed number of hardware timer register ticks per millisecond, while the CLK_getprd () returns the configured timer PRD register value. The hardware interrupt 14 is tied to the timer 0 interrupt by default. Also by default, the DSP/BIOS system clock is tied to timer 0. When a timer interrupt occurs, the ISR corresponding to HWI_INT14 is run. CLK_F_isr () is the ISR that is invoked when the timer interrupt happens. CLK_F_isr () does some basic interrupt service operations, increments CLK_R_time (low-resolution clock), transfers control to clock hook functions that eventually return to the context where the interrupt occurred. The hook functions are wrapped with prescribed (HWI_enter, HWI_exit) hardware interrupt prolog and epilog. The usually used hook function is the CLK_F_run () function, which basically calls a function FXN_F_run (). The function FXN_F_run () calls all the configured clock functions in sequence. So, when a timer interrupt occurs, all the clock functions are executed in the context of the hardware ISR. Therefore, the amount of processing done by any CLK function should be minimal, and these functions may invoke only the DSP/BIOS APIs that are allowable from an ISR. The default PRD_clock () is explained in section 4.2. Figure 6 explains the sequence of operations that takes place in the event of a timer interrupt. The box CLK functions denotes all the clock functions configured. See Figure 6 for the CLK function execution sequence. DSP/BIOS Timers and Benchmarking Tips 9
10 Timer interrupt CLK_F_isr() CLK_F_run() HWI enter() CLK function 1 CLK function 2 FXN_F_run() HWI exit() CLK function N DSP/BIOS internal User CLK functions Figure 6. Clock Function Sequence 3.4 Configuring and Understanding a CLK Function In this section, you will configure a clock function that will be executed every 50us. Open the configuration file hello.cdb. Right-click on CLK Clock Manager, and select properties. In the properties window, the CPU interrupt is set to HWI_INT14 by default. Also, the clock is set to be triggered by on-chip timer 0. In the microsecond/int field, enter the value 50. This value specifies the time period at which the timer interrupt should occur. Setting the microseconds/int field sets the PRD register with an appropriate value. Alternatively, you can set the timer period register directly by selecting the Directly Configure on-chip timer register option. Apply the setting, and now the timer 0 is configured to interrupt every 50us. This means that the DSP/BIOS system clock will tick every 50us and, therefore, all the configured CLK functions will be executed every 50us. When you set the microseconds/int field to 50us, the PRD register field and Instruction per interrupt field are set automatically. The DSP speed in Mhz serves as the basis reference for this computation. These values are calculated as follows: Microseconds/Int = 50us = 50 * 10 6 Time for 1 DSP clock tick = 1 / (150 * 10 6 ) = 10 6 / 150 Time for 1 PRD register increment = 4 / (150 * 10 6 ) = (4 * 10 6 ) / 150 Number of PRD increments in 50us = (50 * 10 6 * 150) / (4 * 10 6 ) = 1875 = 7500 DSP clocks Again, right-click on the CLK Clock Manager and select Insert CLK. After inserting a CLK object, you may rename the object if you wish to. Now right click the newly created CLK object, CLK0, and tie up a clock function, my_clock (), to this CLK object. A leading underscore should be added to the function name if it is written in C. Apply the settings and, at this point, you have finished configuring a clock function. See Figure DSP/BIOS Timers and Benchmarking Tips
11 Figure 7. CLK Manager Properties Now, in the file hello.c, define the function my_clock () as follows: Void my_clock (Void) { LOG_printf (&trace, In clock function my_clock () ); } Save and build the hello2 project. Load the executable. Run the program, and you can see that the function, my_clock (), is called repeatedly from the LOG window transcript. 4 DSP/BIOS PRDs and Periodic Functions 4.1 The PRD Module The main purpose of the PRD module is to manage PRD objects that represent individual program functions that execute periodically, based on events that are triggered by certain sources. These periodic functions can be either time-based or space-based. Time-based functions are triggered by timer interrupts. This means that the PRD module uses the DSP/BIOS clock. In this scenario, the option Use CLK Manager to drive PRD in the PRD Periodic Function Manager is enabled. Enabling this option introduces a new CLK object PRD_clock. Space-based functions are the ones that are triggered by events such as input/output (I/O) availability or other programmatic events. Activation of the PRD module is driven by regular calls to the kernel function PRD_F_tick (). DSP/BIOS Timers and Benchmarking Tips 11
12 The PRD module may be driven by the system clock or by calls to PRD_F_tick () from specific events. The same period counter, PRD_D_tick, drives all the PRD objects configured. Each object can execute its functions at different intervals, based on the period counter. The difference between PRD and CLK functions is that CLK functions get executed at the frequency of DSP/BIOS system clock ticks, while PRD allows the functions to be executed repeatedly at any multiple of system clock ticks. Another difference is that the CLK functions are executed in the context of a hardware interrupt, while PRD functions are executed in the context of a software interrupt. DSP/BIOS allows the user to drive the task manager (TSK) module with PRD by enabling the check box in the Task Manager properties. 4.2 PRD Functions and Operation The period of a function is the time between successive invocations. It is expressed in terms of ticks, where a single tick is defined as a single invocation of the PRD_F_tick () function. So, if the period for a function f is set to be n, then PRD module invokes the function f once every n calls to the PRD_F_tick () function. The DSP/BIOS API PRD_tick () internally calls PRD_F_tick () to increment the variable PRD_D_ tick. The PRD module executes in the context of a special software interrupt object automatically created by the DSP/BIOS configuration tool. This software interrupt is implicitly posted through calls to PRD_F_tick (). The configuration tool automatically inserts a PRD_swi object when a PRD object is created. It is the PRD_swi that invokes the configured periodic functions. When there are no periodic functions configured, the PRD_swi is automatically removed. The two main functions in the PRD module are PRD_F_swi () and PRD_F_tick (). PRD_F_swi () is the function that is bound to the software interrupt posted by the PRD_F_tick () function. The configuration tool uses PRD_swi as the name for the software interrupt that binds and calls PRD_F_swi (). When the target program is loaded, PRD_swi is statically stored in the PRD_D_swihandle variable. The PRD module uses a software interrupt (swi) object (called PRD_swi by default), which itself is triggered on a periodic basis to manage execution of PRD objects. The PRD_swi is posted only if the PRD_D_tick is equal to the greatest common divisor that is a power of two of the periods of all the configured PRD functions. You can get a better performance of PRDs if the tick value of the PRD functions is a multiple of 2. For example, if there are two PRD functions that have period values of 1024 and 1025, the PRD_swi will be posted every cycle. If the tick values are 1024 and 512, the PRD_swi will be posted only once every 512 ticks. Thus, in the latter case, the overhead of running the PRD_swi for every tick is reduced. PRD_Obj has a count field in it. PRD_F_swi () decrements the value in the count field of all enabled PRD objects. If the count field value of any PRD object reaches 0 or a value less than 0, the function bound to the PRD object is executed, and the PRD object s count field is reloaded with the value in its period field, if it is a continuous PRD. PRD_F_tick () is a function that increments the PRD timer count, PRD_D_timer. See Figure 8 and Figure DSP/BIOS Timers and Benchmarking Tips
13 Timer interrupt CLK_F_isr() CLK_F_run() HWI enter() CLK function 1 CLK function 2 No FXN_F_run() PRD_F_ tick() PRD function configured? Yes SWI_post (PRD_swi) CLK function N User CLK functions No TSK tick driven by PRD? Yes TSK_tick() HWI exit() DSP/BIOS internal Figure 8. PRD Function Sequence (a) DSP/BIOS Timers and Benchmarking Tips 13
14 User PRD functions SWI_post (PRD_swi) PRD1 timeout? No Yes PRD function 1 PRD_F_swi() PRD2 timeout? Yes PRD function 2 DSP/BIOS internal No PRDn timeout? Yes PRD function n No Figure 9. PRD Function Sequence (b) When the PRD module is driven by the DSP/BIOS system clock, the configuration tool inserts a CLK object called PRD_clock. The function PRD_F_tick () is tied to this CLK object. This is done to provide an interface between the DSP/BIOS system clock and the PRD module. The operation of the PRD module is very clear from Figure 8 and Figure 9. If the Task Manager is configured to be driven by the PRD module, PRD_F_tick () will call a function TSK_tick (). TSK_tick () increments the system alarm clock which serves the time out needs of the TSK module. 4.3 Configuring and Understanding a Periodic Function In this section, you will configure a periodic function that will be executed every 4 system clock ticks. Open the configuration file for the hello2 project. Right-click on the PRD Periodic Function Manager, and select properties. In the properties windows, the Use CLK Manager to drive PRD option is enabled, and the Microseconds/tick is set to 50, which is equal to the time between successive timer interrupts. Now, right-click on PRD Periodic Function Manager, and insert a PRD object. You may rename the newly created object, if you wish to. Right-click on the newly created object, PRD0, and open the properties window of PRD0. In the PRD0 properties window, set the period ticks to 4, select continuous mode, and set the periodic function as my_prd (). Remember to put a leading underscore before the function, if the function is written in C. Apply the settings. The configuration tool allows you to enter two arguments to the PRD function. See Figure DSP/BIOS Timers and Benchmarking Tips
15 Figure 10. PRD Manager Properties In the file hello.c, define the function my_prd () as follows: Void my_prd (Void) { } LOG_printf (&trace, In periodic function my_prd () ); The periodic function, my_prd (), will be executed every 4 ticks of the BIOS system clock. In section 3.4, you have configured the BIOS clock to be driven by timer 0, which generates timer interrupts at intervals of 50us. The calculation shown below is self-descriptive. Time for one timer interrupt = Time for one BIOS clock tick = 50us Time for one PRD_F_tick () = 50us Period for the PRD function my_prd () = 4 PRD ticks Time interval at which my_prd () is called = 4 * 50us = 200us The function my_prd () is invoked every 200us. From the calculations above, you can conclude that the periodic function, my_prd (), is invoked every 200us, which is equal to the time for four timer 0 interrupts to occur. In the log output, you can see that the output from clock function, my_clock (), is printed 4 times, and then the output of the function my_prd () is printed. This keeps repeating. DSP/BIOS Timers and Benchmarking Tips 15
16 5 Benchmarking Tips 5.1 Why Tips on Benchmarking DSP/BIOS kernel performance benchmarks, including a comparison of the instrumented versus non-instrumented kernel s performances are provided in the application report DSP/BIOS II Timing Benchmarks on the TMS320C6000 DSP (SPRA662). DSP/BIOS offers a set of APIs to benchmark and profile the user code. The APIs provided by the statistics object manager (STS) and CLK modules can be used to profile code fragments. There are certain circumstances under which these APIs may return inconsistent or incorrect values. This section explains the various circumstances under which the instrumentation APIs may give incorrect values. You must take care of these conditions while benchmarking or profiling your code. 5.2 Timer-Free Runs In an application where the timer is being used as a periodic interrupt or to drive the DSP/BIOS system clock, the benchmark and profile results may differ from time to time and from DSP to DSP. The reason is that the timer may be running while the CPU is halted. On the C620x/C670x the timer is halted when the CPU is halted, if the timer clock source is set to internal CPU clock. In such a case, the timer counter is enabled to count only when the CPU is not stalled by emulation driver halt. In a scenario like this, the profile values may be reasonable. In the case of the C621x/C671x and TMS320C64x, the timer continues counting as programmed, even when the CPU is stalled due to emulation driver halt. In this case the profile/benchmark values obtained will not be any use if the execution is halted in between. An example of timer-free runs giving incorrect profile is as follows. Suppose the user puts a break point at the beginning and end of the code fragment being profiled. The programs runs and hits the first breakpoint. At this point when the program is halted, a timer interrupt may occur, and when you run the program again, the timer ISR code is inserted between the code fragments being profiled. Due to this, the profile values obtained will be the sum of the time taken by the code fragment, and the ISR for execution. 5.3 Benefits of Instrumentation APIs Over Profiler Real-time analysis is the analysis of data acquired during real-time operation of a system. The purpose of real-time analysis is to determine if a system is operating within the design constraints. Cyclic debugging is not effective for a real-time system, due to non-deterministic execution and stringent time constraints. DSP/BIOS provides a set of instrumentation APIs to complement cyclic debugging. Using these APIs are better than the profiler because they have fixed and short execution times. Since the overhead time is fixed, the time taken by these APIs are known, and overhead time can be factored out of the measurements. DSP/BIOS II Timing Benchmarks on the TMS320C6000 DSP (SPRA662) gives the benchmarks for these instrumentation APIs. The CPU load increases only marginally when all the implicit instrumentation is enabled. TMS320C64x is a trademark of Texas Instruments. 16 DSP/BIOS Timers and Benchmarking Tips
17 The DSP/BIOS instrumentation APIS have advantages over the Code Composer Studio profiler. The profiler collects program analysis data during the execution of the program and may not be desirable for measuring the performance of real-time systems. This is where the real power of instrumentation APIs comes into picture. Instrumentation APIs communicate between the target and the host in a background idle (IDL) thread that has the lowest priority. The IDL thread executes only when the application has nothing else to do. This makes sure that the real-time behavior of the application is preserved. The instrumentation data is always formatted on the host. This relieves the overhead of instrumentation data processing on the target. DSP/BIOS provides a variety of instrumentation APIs that give more reliable performance data over the profiler for a real-time system. 5.4 Limitations of CLK_gethtime/CLK_getltime The APIs, CLK_gethtime () and CLK_getltime (), are used extensively for benchmarking and profiling. These APIs may return incorrect values if the interrupts are disabled for a long period of time. CLK_gethtime () provides the high-resolution time in the system. The timer peripheral has a period register and a counter register. Whenever the timer count register hits 0, a timer interrupt occurs. The low-resolution time is equal to the number of timer interrupts that occurred until the point of time the API was called. The high-resolution time is calculated by multiplying the number of timer interrupts to the timer period register, and adding the timer count register. If the code being profiled takes more time than the time period between consecutive timer interrupts, some of the timer interrupts may be missed, if the interrupts are masked inside the code being profiled. Missing timer interrupts are equivalent to corrupting the low-resolution time. When the low-resolution time is corrupted, it automatically corrupts the high-resolution time because the number of timer interrupts recorded is wrong. To overcome this, if the code being profiled is expected to take a huge amount of cycles, then make sure that the timer interrupt rate in the configuration file is decreased, to avoid missed interrupts. This may not be a good solution if the application uses timer interrupt to trigger other events in the system. This essentially means that STS objects cannot be used to profile a code, if it disables interrupts for a duration longer than the timer interrupt rate. A different scenario where the CLK_gethtime () and CLK_getltime () may return incorrect values is the wraparound of the values. The low- and high-resolution time are represented by a 32-bit value, and may reach their maximum value of These time values wrap around to zero after the maximum value of So, if the code being profiled takes more time than the time required for the low or high resolution time to reach , wraparound occurs, and time values returned are no longer correct. You can get a better time resolution by setting the timer period to 0xFFFF on the C5000, and 0xFFFFFFFF on the C6000 devices. Setting these values in the timer-period register will link an optimized version of CLK_gethtime() and CLK_getltime() to be used by DSP/BIOS. DSP/BIOS Timers and Benchmarking Tips 17
18 5.5 Timer ISR Overhead The timer ISR has an overhead on the system. When a timer ISR is serviced, it calls the CLK_F_isr () function, which executes within the context of a hardware interrupt. After doing some basic operations, it executes all the clock functions. Once the clock functions have been executed, the control is transferred via a SWI to the PRD module. In the PRD module, the system checks if any of the PRD function counters have hit zero, and executes the functions for the ones that have hit zero. So, in effect, the amount of processing done in the event of a timer interrupt is dependent on the number of clock functions configured. The time required for servicing the timer interrupt increases, as the number of clock function increases. So, it is always advisable that you may optimize your system so that only the required CLK functions are there in the system. Unwanted clock functions will do nothing other than put an extra overhead on the timer ISR. 6 References 1. DSP/BIOS II Timing Benchmarks on the TMS320C6000 DSP (SPRA662). 2. TMS320C6000 DSP/BIOS User s Guide (SPRU303). 3. TMS320C6000 DSP/BIOS Application Programming Interface (API) Reference Guide (SPRU403). 4. TMS320C54x DSP Reference Set, Volume 1: CPU and Peripherals (SPRU131). 5. TMS320C55x DSP Peripherals Reference Guide (SPRU317). 18 DSP/BIOS Timers and Benchmarking Tips
19 Appendix A Hello.c listing /* * Copyright 2001 by Texas Instruments Incorporated. * All rights reserved. Property of Texas Instruments Incorporated. * Restricted rights to use, duplicate or disclose this code are * granted through contract. * */ DSP/BIOS (barracuda j15) */ /***************************************************************************/ /* */ /* H E L L O. C */ /* */ /* Basic LOG event operation from main. */ /* */ /***************************************************************************/ #include <std.h> #include <log.h> #include hellocfg.h /* Included as part of timer 1 configuration */ #include <csl.h> #include <csl_timer.h> #include <csl_irq.h> /* Global Declarations part of timer 1 configuration */ static Uint32 TimerEventId1; /* Declarations of CLK, PRD functions and timer 1 isr */ Void my_clock(void); Void my_prd(void); Void timer_isr(void); /* * ======== main ======== */ Void main() { LOG_printf(&trace, hello world! ); SPRA829 DSP/BIOS Timers and Benchmarking Tips 19
20 /* Obtain the event IDs for the timer devices */ TimerEventId1 = TIMER_getEventId(hTimer1); /* Enable the timer events */ IRQ_enable(TimerEventId1); /* Start the timers */ TIMER_start(hTimer1); } /* fall into DSP/BIOS idle loop */ return; /* Definition of clock function for CLK0 object */ Void my_clock(void) { LOG_printf(&trace, In clock function my_clock() ); } /* Definition of periodic function for PRD0 object */ Void my_prd(void) { LOG_printf(&trace, In periodic function my_prd() ); } /* Definition of timer 1 ISR */ Void timer_isr(void) { LOG_printf(&trace, In a timer 1 ISR ); } 20 DSP/BIOS Timers and Benchmarking Tips
21 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications, enhancements, improvements, and other changes to its products and services at any time and to discontinue any product or service without notice. Customers should obtain the latest relevant information before placing orders and should verify that such information is current and complete. All products are sold subject to TI s terms and conditions of sale supplied at the time of order acknowledgment. TI warrants performance of its hardware products to the specifications applicable at the time of sale in accordance with TI s standard warranty. Testing and other quality control techniques are used to the extent TI deems necessary to support this warranty. Except where mandated by government requirements, testing of all parameters of each product is not necessarily performed. TI assumes no liability for applications assistance or customer product design. Customers are responsible for their products and applications using TI components. To minimize the risks associated with customer products and applications, customers should provide adequate design and operating safeguards. TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right, copyright, mask work right, or other TI intellectual property right relating to any combination, machine, or process in which TI products or services are used. Information published by TI regarding third party products or services does not constitute a license from TI to use such products or services or a warranty or endorsement thereof. Use of such information may require a license from a third party under the patents or other intellectual property of the third party, or a license from TI under the patents or other intellectual property of TI. Reproduction of information in TI data books or data sheets is permissible only if reproduction is without alteration and is accompanied by all associated warranties, conditions, limitations, and notices. Reproduction of this information with alteration is an unfair and deceptive business practice. TI is not responsible or liable for such altered documentation. Resale of TI products or services with statements different from or beyond the parameters stated by TI for that product or service voids all express and any implied warranties for the associated TI product or service and is an unfair and deceptive business practice. TI is not responsible or liable for any such statements. Mailing Address: Texas Instruments Post Office Box Dallas, Texas Copyright 2002, Texas Instruments Incorporated
SDLS068A DECEMBER 1972 REVISED OCTOBER 2001. Copyright 2001, Texas Instruments Incorporated
SN54174, SN54175, SN54LS174, SN54LS175, SN54S174, SN54S175, SN74174, SN74175, SN74LS174, SN74LS175, SN74S174, SN74S175 PRODUCTION DATA information is current as of publication date. Products conform to
Motor Speed Measurement Considerations When Using TMS320C24x DSPs
Application Report SPRA771 - August 2001 Motor Speed Measurement Considerations When Using TMS320C24x DSPs Shamim Choudhury DCS Applications ABSTRACT The TMS320C24x generation of DSPs provide appropriate
Using C to Access Data Stored in Program Space Memory on the TMS320C24x DSP
Application Report SPRA380 April 2002 Using C to Access Data Stored in Program Space Memory on the TMS320C24x DSP David M. Alter DSP Applications - Semiconductor Group ABSTRACT Efficient utilization of
Controlling TAS5026 Volume After Error Recovery
Application Report SLEA009 March 2003 Controlling TAS5026 Volume After Error Recovery Jorge S. Melson Hwang Soo, Son HPA Digital Audio Applications ABSTRACT The TAS5026 monitors the relationship between
Using Code Coverage and Multi-event Profiler in Code Composer Studio v2.3 for Robustness and Efficiency Analyses
Application Report SPRA868A April 2004 Using Code Coverage and Multi-event Profiler in Code Composer Studio v2.3 for Robustness and Efficiency Analyses Amit Rangari, N.Pradeep Software Development Systems
CUSTOM GOOGLE SEARCH PRO. User Guide. User Guide Page 1
CUSTOM GOOGLE SEARCH PRO User Guide User Guide Page 1 Important Notice reserves the right to make corrections, modifications, enhancements, improvements, and other changes to its products and services
Using C to Access Data Stored in Program Memory on the TMS320C54x DSP
Application Report SPRA177A August 2005 Using C to Access Data Stored in Program Memory on the TMS320C54x DSP David M. Alter DSP Applications - Semiconductor Group ABSTRACT Efficient utilization of available
Managing Code Development Using CCS Project Manager
Application Report SPRA762 - June 2001 Managing Code Development Using CCS Project Manager Chuck Farrow Andy Thé Northeast Applications ABSTRACT This application report presents the new features available
Designing Gain and Offset in Thirty Seconds
Application Report SLOA097 February 2002 Designing Gain and Offset in Thirty Seconds Bruce Carter High Performance Linear ABSTRACT This document discusses how to design an operational amplifier (op amp)
Filter Design in Thirty Seconds
Application Report SLOA093 December 2001 Filter Design in Thirty Seconds Bruce Carter High Performance Analog ABSTRACT Need a filter fast? No theory, very little math just working filter designs, and in
Using the Scripting Utility in the Code Composer Studio Integrated Development Environment
Application Report SPRA383A - July 2002 Using the Scripting Utility in the Code Composer Studio Integrated Development Environment Nipuna Gunasekera Software Development Systems/Customer Support ABSTRACT
How To Close The Loop On A Fully Differential Op Amp
Application Report SLOA099 - May 2002 Fully Differential Op Amps Made Easy Bruce Carter High Performance Linear ABSTRACT Fully differential op amps may be unfamiliar to some designers. This application
Code Composer Studio Getting Started Guide
Code Composer Studio Getting Started Guide Literature Number: SPRU509 May 2001 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make changes to
Important Notice. All company and brand products and service names are trademarks or registered trademarks of their respective holders.
1 Important Notice MageWorx reserves the right to make corrections, modifications, enhancements, improvements, and other changes to its products and services at any time and to discontinue any product
AN3332 Application note
Application note Generating PWM signals using STM8S-DISCOVERY Application overview This application user manual provides a short description of how to use the Timer 2 peripheral (TIM2) to generate three
Using Example Projects, Code and Scripts to Jump-Start Customers With Code Composer Studio 2.0
Application Report SPRA766 - June 2001 Using Example Projects, Code and Scripts to Jump-Start Customers With Code Composer Studio 2.0 Steve White, Senior Applications Code Composer Studio, Applications
SN54165, SN54LS165A, SN74165, SN74LS165A PARALLEL-LOAD 8-BIT SHIFT REGISTERS
The SN54165 and SN74165 devices SN54165, SN54LS165A, SN74165, SN74LS165A PRODUCTION DATA information is current as of publication date. Products conform to specifications per the terms of Texas Instruments
LM5030 LM5030 Application: DC - DC Converter Utilizing the Push-Pull Topology
LM5030 LM5030 Application: DC - DC Converter Utilizing the Push-Pull Topology Literature Number: SNVA553 LM5030 Application DC DC Converter Utilizing the Push-Pull Topology 1 Push-Pull Topology D1 L +
RETRIEVING DATA FROM THE DDC112
RETRIEVING DATA FROM THE by Jim Todsen This application bulletin explains how to retrieve data from the. It elaborates on the discussion given in the data sheet and provides additional information to allow
APPLICATION NOTE BUILDING A QAM MODULATOR USING A GC2011 DIGITAL FILTER CHIP
SLWA022 APPLICATION NOTE BUILDING A QAM MODULATOR USING A GC2011 DIGITAL CHIP October 6, 1994 1.0 INTRODUCTION This report describes how one can use the GC2011 Digital Filter chip to build digital modulators
Floating Point C Compiler: Tips and Tricks Part I
TMS320 DSP DESIGNER S NOTEBOOK Floating Point C Compiler: Tips and Tricks Part I APPLICATION BRIEF: SPRA229 Karen Baldwin Digital Signal Processing Products Semiconductor Group Texas Instruments June 1993
TMS320C67x FastRTS Library Programmer s Reference
TMS320C67x FastRTS Library Programmer s Reference SPRU100A October 2002 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections,
IMPORT/EXPORT CUSTOMER REVIEWS. User Guide. User Guide Page 1
IMPORT/EXPORT CUSTOMER REVIEWS User Guide User Guide Page 1 Important Notice reserves the right to make corrections, modifications, enhancements, improvements, and other changes to its products and services
Current-Transformer Phase-Shift Compensation and Calibration
Application Report SLAA122 February 2001 Current-Transformer Phase-Shift Compensation and Calibration Kes Tam Mixed Signal Products ABSTRACT This application report demonstrates a digital technique to
Application Report. 1 Introduction. 2 Resolution of an A-D Converter. 2.1 Signal-to-Noise Ratio (SNR) Harman Grewal... ABSTRACT
Application Report SLAA323 JULY 2006 Oversampling the ADC12 for Higher Resolution Harman Grewal... ABSTRACT This application report describes the theory of oversampling to achieve resolutions greater than
SEO Suite Pro. User Guide
User Guide Important Notice reserves the right to make corrections, modifications, enhancements, improvements, and other changes to its products and services at any time and to discontinue any product
Application Note AN107
Murata Balun for CC253x and CC254x LFB182G45BG2D280 By Fredrik Kervel Keywords Balun LFB182G45BG2D280 CC253x CC254x CC257x CC85xx 1 Introduction Murata s LFB182G45BG2D280 integrated balun is specially
SEO Meta Templates. Magento Extension. User Guide. SEO Meta Templates
Magento Extension User Guide Important Notice MageWorx reserves the right to make corrections, modifications, enhancements, improvements, and other changes to all its products and services at any time
APPLICATION NOTE. Atmel AVR134: Real Time Clock (RTC) Using the Asynchronous Timer. Atmel AVR 8-bit Microcontroller. Introduction.
APPLICATION NOTE Atmel AVR134: Real Time Clock (RTC) Using the Asynchronous Timer Introduction Atmel AVR 8-bit Microcontroller This application note describes how to implement a real time counter (RTC)
EE8205: Embedded Computer System Electrical and Computer Engineering, Ryerson University. Multitasking ARM-Applications with uvision and RTX
EE8205: Embedded Computer System Electrical and Computer Engineering, Ryerson University Multitasking ARM-Applications with uvision and RTX 1. Objectives The purpose of this lab is to lab is to introduce
AN3265 Application note
Application note Handling hardware and software failures with the STM8S-DISCOVERY Application overview This application is based on the STM8S-DISCOVERY. It demonstrates how to use the STM8S window watchdog
Pressure Transducer to ADC Application
Application Report SLOA05 October 2000 Pressure Transducer to ADC Application John Bishop ABSTRACT Advanced Analog Products/OpAmp Applications A range of bridgetype transducers can measure numerous process
White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux
White Paper Real-time Capabilities for Linux SGI REACT Real-Time for Linux Abstract This white paper describes the real-time capabilities provided by SGI REACT Real-Time for Linux. software. REACT enables
Design Note DN304. Cebal CCxxxx Development Tools USB Driver Installation Guide By Åsmund B. Bø. Keywords. 1 Introduction
Cebal CCxxxx Development Tools USB Driver Installation Guide By Åsmund B. Bø Keywords Cebal Driver Windows x86 Windows x64 SmartRF Studio SmartRF Packet Sniffer SmartRF Flash Programmer SmartRF05EB SmartRF04EB
Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs
Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs AN033101-0412 Abstract This describes how to interface the Dallas 1-Wire bus with Zilog s Z8F1680 Series of MCUs as master devices. The Z8F0880,
Design Note DN002. Practical Sensitivity Testing By Morten Engjom. Keywords. 1 Introduction. Receiver Testing Sensitivity
Practical Sensitivity Testing By Morten Engjom Keywords Receiver Testing Sensitivity PER (Packet Error Rate) BER (Bit Error Rate) 1 Introduction To properly evaluate the receiver part of a transceiver,
Design Note DN004. Folded Dipole Antenna for CC25xx By Audun Andersen. Keywords. 1 Introduction CC2500 CC2550 CC2510 CC2511
Folded Dipole Antenna for CC25xx By Audun Andersen Keywords CC2500 CC2550 CC2510 CC2511 Folded Dipole PCB Antenna 2.4 GHz 1 Introduction This document describes a folded dipole PCB antenna design that
AN4646 Application note
Application note Peripheral interconnections on STM32F401 and STM32F411 lines Introduction On top of the highest performance and the lowest power consumption of the STM32F4 family, STM32F401/411 peripherals
Code Composer Studio Development Tools v3.3. Getting Started Guide
Code Composer Studio Development Tools v3.3 Getting Started Guide Literature Number: SPRU509H October 2006 2 SPRU509H October 2006 Contents Preface... 9 1 Introduction... 11 1.1 Welcome to the World of
AVR131: Using the AVR s High-speed PWM. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE
AVR 8-bit Microcontrollers AVR131: Using the AVR s High-speed PWM APPLICATION NOTE Introduction This application note is an introduction to the use of the high-speed Pulse Width Modulator (PWM) available
AVR1321: Using the Atmel AVR XMEGA 32-bit Real Time Counter and Battery Backup System. 8-bit Microcontrollers. Application Note.
AVR1321: Using the Atmel AVR XMEGA 32-bit Real Time Counter and Battery Backup System Features 32-bit Real Time Counter (RTC) - 32-bit counter - Selectable clock source 1.024kHz 1Hz - Long overflow time
PCIe XMC x8 Lane Adapter
Adapts PCI Express XMC to Desktop with P16 High Speed Communications Ports and JN4 Digital IO FEATURES Adapt one XMC PCI Express VITA 42.3 module to a desktop PCI Express slot Supports up to 8 lanes Transparent
News Extension 2.2 User Guide
News Extension 2.2 User Guide Table of Contents Notice... 4 Description... 5 Installation... 6 Using the News Module... 8 1. Add News Article... 9 1.1 Main information... 9 1.2 Additional Options... 12
1. Installation Instructions
Table of Contents 1. Extension installation instructions 2. Accessing the extension main settings 3. HTML Sitemap settings 4. XML Sitemap extra settings 5. Individual product HTML and XML sitemap settings
ARM Thumb Microcontrollers. Application Note. Software ISO 7816 I/O Line Implementation. Features. Introduction
Software ISO 7816 I/O Line Implementation Features ISO 7816-3 compliant (direct convention) Byte reception and transmission with parity check Retransmission on error detection Automatic reception at the
AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE
Atmel AVR 8-bit Microcontroller AVR151: Setup and Use of the SPI APPLICATION NOTE Introduction This application note describes how to set up and use the on-chip Serial Peripheral Interface (SPI) of the
AXI Performance Monitor v5.0
AXI Performance Monitor v5.0 LogiCORE IP Product Guide Vivado Design Suite Table of Contents IP Facts Chapter 1: Overview Advanced Mode...................................................................
Monitoring TMS320C240 Peripheral Registers in the Debugger Software
TMS320 DSP DESIGNER S NOTEBOOK Monitoring TMS320C240 Peripheral Registers in the Debugger Software APPLICATION BRIEF: SPRA276 Jeff Crankshaw Digital Signal Processor Solutions May 1997 IMPORTANT NOTICE
Standard Linear & Logic Semiconductor Marking Guidelines
Application Report SZZA020C - March 2002 Standard Linear & Logic Semiconductor Marking Guidelines James Huckabee and Cles Troxtell Standard Linear & Logic ABSTRACT The Texas Instruments Standard Linear
Application Report. 1 Description of the Problem. Jeff Falin... PMP Portable Power Applications ABSTRACT
Application Report SLVA255 September 2006 Minimizing Ringing at the Switch Node of a Boost Converter Jeff Falin... PMP Portable Power Applications ABSTRACT This application report explains how to use proper
DRV8312-C2-KIT How to Run Guide
DRV8312-C2-KIT How to Run Guide Version 1.1 October 2011 C2000 Systems and Applications Team This Guide explains the steps needed to run the DRV8312-C2-KIT with the software supplied through controlsuite.
Wireless Subwoofer TI Design Tests
Wireless Subwoofer TI Design Tests This system design was tested for THD+N vs. frequency at 5 watts and 30 watts and THD+N vs. power at 00. Both the direct analog input and the wireless systems were tested.
Creating the program. TIA Portal. SIMATIC Creating the program. Loading the block library. Deleting program block Main [OB1] Copying program blocks
Loading the block library 1 Deleting program block Main [OB1] 2 TIA Portal SIMATIC Getting Started Copying program blocks 3 Cyclic interrupt OB 4 Copying tag tables 5 Compiling a project 6 Load project
Section 29. Real-Time Clock and Calendar (RTCC)
Section 29. Real-Time Clock and Calendar (RTCC) HIGHLIGHTS This section of the manual contains the following topics: 29.1 Introduction... 29-2 29.2 Status and Control Registers... 29-3 29.3 Modes of Operation...
AN141 SMBUS COMMUNICATION FOR SMALL FORM FACTOR DEVICE FAMILIES. 1. Introduction. 2. Overview of the SMBus Specification. 2.1.
SMBUS COMMUNICATION FOR SMALL FORM FACTOR DEVICE FAMILIES 1. Introduction C8051F3xx and C8051F41x devices are equipped with an SMBus serial I/O peripheral that is compliant with both the System Management
AVR033: Getting Started with the CodeVisionAVR C Compiler. 8-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR033: Getting Started with the CodeVisionAVR C Compiler Features Installing and Configuring CodeVisionAVR to Work with the Atmel STK 500 Starter Kit and AVR Studio Debugger Creating a New Project Using
Binary Search Algorithm on the TMS320C5x
TMS320 DSP DESIGNER S NOTEBOOK Binary Search Algorithm on the TMS320C5x APPLICATION BRIEF: SPRA238 Lawrence Wong Digital Signal Processing Products Semiconductor Group Texas Instruments May 1994 IMPORTANT
Calculating Gain for Audio Amplifiers
Application eport SLOA105A October 003 evised September 005 Calculating Gain for Audio Amplifiers Audio Power Amplifiers ABSTACT This application report explains the different types of audio power amplifier
Analysis of Filter Coefficient Precision on LMS Algorithm Performance for G.165/G.168 Echo Cancellation
Application Report SPRA561 - February 2 Analysis of Filter Coefficient Precision on LMS Algorithm Performance for G.165/G.168 Echo Cancellation Zhaohong Zhang Gunter Schmer C6 Applications ABSTRACT This
AN10850. LPC1700 timer triggered memory to GPIO data transfer. Document information. LPC1700, GPIO, DMA, Timer0, Sleep Mode
LPC1700 timer triggered memory to GPIO data transfer Rev. 01 16 July 2009 Application note Document information Info Keywords Abstract Content LPC1700, GPIO, DMA, Timer0, Sleep Mode This application note
Laboratory 3 Learning C and Sinewave Generation
Department of Electrical and Electronic Engineering Imperial College of Science, Technology and Medicine EE3T Study Project: Real-Time Digital Signal Processing with TMS320C6000 Objectives Laboratory 3
Experiment # 9. Clock generator circuits & Counters. Eng. Waleed Y. Mousa
Experiment # 9 Clock generator circuits & Counters Eng. Waleed Y. Mousa 1. Objectives: 1. Understanding the principles and construction of Clock generator. 2. To be familiar with clock pulse generation
An Introduction to MPLAB Integrated Development Environment
An Introduction to MPLAB Integrated Development Environment 2004 Microchip Technology Incorporated An introduction to MPLAB Integrated Development Environment Slide 1 This seminar is an introduction to
Operating Systems. Lecture 03. February 11, 2013
Operating Systems Lecture 03 February 11, 2013 Goals for Today Interrupts, traps and signals Hardware Protection System Calls Interrupts, Traps, and Signals The occurrence of an event is usually signaled
National CR16C Family On-Chip Emulation. Contents. Technical Notes V9.11.75
_ V9.11.75 Technical Notes National CR16C Family On-Chip Emulation Contents Contents... 1 1 Introduction... 2 2 Emulation options... 3 2.1 Hardware Options... 3 2.2 Initialization Sequence... 4 2.3 JTAG
Long-term monitoring of apparent latency in PREEMPT RT Linux real-time systems
Long-term monitoring of apparent latency in PREEMPT RT Linux real-time systems Carsten Emde Open Source Automation Development Lab (OSADL) eg Aichhalder Str. 39, 78713 Schramberg, Germany [email protected]
Analysis Toolkit v1.3 for Code Composer Studio User s Guide
Analysis Toolkit v1.3 for Code Composer Studio User s Guide Literature Number: SPRU623D April 2005 IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections,
Lesson-16: Real time clock DEVICES AND COMMUNICATION BUSES FOR DEVICES NETWORK
DEVICES AND COMMUNICATION BUSES FOR DEVICES NETWORK Lesson-16: Real time clock 1 Real Time Clock (RTC) A clock, which is based on the interrupts at preset intervals. An interrupt service routine executes
Section 14. Compare/Capture/PWM (CCP)
M Section 14. Compare/Capture/PWM (CCP) HIGHLIGHTS This section of the manual contains the following major topics: 14.1 Introduction...14-2 14.2 Control Register...14-3 14.3 Capture Mode...14-4 14.4 Compare
Application Report SLVA051
Application Report November 998 Mixed-Signal Products SLVA05 ltage Feedback Vs Current Feedback Op Amps Application Report James Karki Literature Number: SLVA05 November 998 Printed on Recycled Paper IMPORTANT
THE RIGHT-HALF-PLANE ZERO --A SIMPLIFIED EXPLANATION
THE RGHT-HALF-PLANE ZERO --A SMPLFED EXPLANATON n small signal loop analysis, poles and zeros are normally located in the left half of the complex s-plane. The Bode plot of a conventional or lefthalf-plane
Embedded Component Based Programming with DAVE 3
Embedded Component Based Programming with DAVE 3 By Mike Copeland, Infineon Technologies Introduction Infineon recently introduced the XMC4000 family of ARM Cortex -M4F processor-based MCUs for industrial
Timer Value IRQ IACK
Real Time Clocks & s Programming with Real-time clocks Real-time clock is just another source of interrupts. Should have high priority in real-time systems Timing jitter must be accommodated or tolerated
TMS320C6000 Code Composer Studio Tutorial
TMS320C6000 Code Composer Studio Tutorial Literature Number: SPRU301C February 2000 Printed on Recycled Paper IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserves the right to make changes
DS1104 R&D Controller Board
DS1104 R&D Controller Board Cost-effective system for controller development Highlights Single-board system with real-time hardware and comprehensive I/O Cost-effective PCI hardware for use in PCs Application
Freescale Semiconductor, I
nc. Application Note 6/2002 8-Bit Software Development Kit By Jiri Ryba Introduction 8-Bit SDK Overview This application note describes the features and advantages of the 8-bit SDK (software development
Performance Tuning Guide for ECM 2.0
Performance Tuning Guide for ECM 2.0 Rev: 20 December 2012 Sitecore ECM 2.0 Performance Tuning Guide for ECM 2.0 A developer's guide to optimizing the performance of Sitecore ECM The information contained
High-Speed Gigabit Data Transmission Across Various Cable Media at Various Lengths and Data Rate
Application Report SLLA091 - November 2000 High-Speed Gigabit Data Transmission Across Various Cable Media at Various Lengths and Data Rate Boyd Barrie, Huimin Xia ABSTRACT Wizard Branch, Bus Solution
AN2824 Application note
Application note STM32F10xxx I 2 C optimized examples Introduction The aim of this application note is to provide I 2 C firmware optimized examples based on polling, interrupts and DMA, covering the four
SINGLE-SUPPLY OPERATION OF OPERATIONAL AMPLIFIERS
SINGLE-SUPPLY OPERATION OF OPERATIONAL AMPLIFIERS One of the most common applications questions on operational amplifiers concerns operation from a single supply voltage. Can the model OPAxyz be operated
Implementing an In-Service, Non- Intrusive Measurement Device in Telecommunication Networks Using the TMS320C31
Disclaimer: This document was part of the First European DSP Education and Research Conference. It may have been written by someone whose native language is not English. TI assumes no liability for the
IMPORT / EXPORT PRODUCTS
CUSTOM BULK PRODUCT IMPORT + EXPORT WITH TIER PRICING / PRODUCT CUSTOM OPTIONS / CONFIGURABLE PRODUCTS / BUNDLE PRODUCTS / GROUPED PRODUCTS / DOWNLOADABLE PRODUCTS User Guide User Guide Page 1 Important
WinCC. Configuration Manual. Manual Volume 2
WinCC Configuration Manual Manual Volume 2 This manual is part of the documentation package with the order number: 6AV6392-1CA05-0AB0 Release: September 1999 WinCC, SIMATIC, SINEC, STEP are trademarks
USER GUIDE EDBG. Description
USER GUIDE EDBG Description The Atmel Embedded Debugger (EDBG) is an onboard debugger for integration into development kits with Atmel MCUs. In addition to programming and debugging support through Atmel
IP Office TAPILink Installation
TAPILink Installation 15-601034 Issue 11d - (03 December 2009) 2009 AVAYA All Rights Reserved. Notice While reasonable efforts were made to ensure that the information in this document was complete and
Serial Communications
Serial Communications 1 Serial Communication Introduction Serial communication buses Asynchronous and synchronous communication UART block diagram UART clock requirements Programming the UARTs Operation
SN54HC191, SN74HC191 4-BIT SYNCHRONOUS UP/DOWN BINARY COUNTERS
Single Down/Up Count-Control Line Look-Ahead Circuitry Enhances Speed of Cascaded Counters Fully Synchronous in Count Modes Asynchronously Presettable With Load Control Package Options Include Plastic
1. Installation Instructions
Table of Contents 1. Extension installation instructions 2. Accessing the extension main settings 3. Adding new cross links 4. Managing cross links 5. General Settings 6. End-user license agreement 7.
HP LoadRunner. Software Version: 11.00. Ajax TruClient Tips & Tricks
HP LoadRunner Software Version: 11.00 Ajax TruClient Tips & Tricks Document Release Date: October 2010 Software Release Date: October 2010 Legal Notices Warranty The only warranties for HP products and
TI and ibiquity Introduce Industry s Lowest Cost Single-Chip AM/FM and HD Radio Baseband John Gardner Digital Radio Marketing Manager
TI and ibiquity Introduce Industry s Lowest Cost Single-Chip AM/FM and HD Radio Baseband John Gardner Digital Radio Marketing Manager SPRT328 HD Radio Products Planned Trunk mounted HD Radio receiver at
AN1229. Class B Safety Software Library for PIC MCUs and dspic DSCs OVERVIEW OF THE IEC 60730 STANDARD INTRODUCTION
Class B Safety Software Library for PIC MCUs and dspic DSCs AN1229 Authors: Veena Kudva & Adrian Aur Microchip Technology Inc. OVERVIEW OF THE IEC 60730 STANDARD INTRODUCTION This application note describes
August 2001 PMP Low Power SLVU051
User s Guide August 2001 PMP Low Power SLVU051 IMPORTANT NOTICE Texas Instruments and its subsidiaries (TI) reserve the right to make changes to their products or to discontinue any product or service
IMPORT/EXPORT COUPON/SHOPPING CART RULES. User Guide. User Guide Page 1
IMPORT/EXPORT COUPON CODES / SHOPPING CART RULES User Guide User Guide Page 1 Important Notice reserves the right to make corrections, modifications, enhancements, improvements, and other changes to its
Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview
Technical Note TN-29-06: NAND Flash Controller on Spartan-3 Overview Micron NAND Flash Controller via Xilinx Spartan -3 FPGA Overview As mobile product capabilities continue to expand, so does the demand
Lab 1 Course Guideline and Review
Lab 1 Course Guideline and Review Overview Welcome to ECE 3567 Introduction to Microcontroller Lab. In this lab we are going to experimentally explore various useful peripherals of a modern microcontroller
Using the TASKING Software Platform for AURIX
Using the TASKING Software Platform for AURIX MA160-869 (v1.0rb3) June 19, 2015 Copyright 2015 Altium BV. All rights reserved. You are permitted to print this document provided that (1) the use of such
VeriSign PKI Client Government Edition v 1.5. VeriSign PKI Client Government. VeriSign PKI Client VeriSign, Inc. Government.
END USER S GUIDE VeriSign PKI Client Government Edition v 1.5 End User s Guide VeriSign PKI Client Government Version 1.5 Administrator s Guide VeriSign PKI Client VeriSign, Inc. Government Copyright 2010
USBSPYDER08 Discovery Kit for Freescale MC9RS08KA, MC9S08QD and MC9S08QG Microcontrollers User s Manual
USBSPYDER08 Discovery Kit for Freescale MC9RS08KA, MC9S08QD and MC9S08QG Microcontrollers User s Manual Copyright 2007 SofTec Microsystems DC01197 We want your feedback! SofTec Microsystems is always on
Command Processor for MPSSE and MCU Host Bus Emulation Modes
Future Technology Devices International Ltd. Application Note AN_108 Command Processor for MPSSE and MCU Host Bus Emulation Modes Document Reference No.: FT_000109 Version 1.5 Issue Date: 2011-09-09 This
