AN726 U TILITY C LASS - D TOOL S T I C K U SER ’ S G UIDE 1. Introduction Class-D is a switching power amplifier architecture that uses high-frequency Pulse-Width Modulation (PWM) to generate the output waveform. The transistors are fully on or fully off, which means this architecture can reach very high efficiency levels, resulting in significant power savings. However, the translation from the input signal to PWM and the PWM itself can cause more distortion on the output than other amplifier architectures. Figure 1 shows a very basic Class-D signal diagram. Figure 1. Class-D Power Amplifier Signal Diagram Because the Class-D amplifier transistors are fully on or fully off, the transistors lose less energy in the form of heat. This architecture, therefore, lends itself to small, cheap MOSFETs. The Class-D amplifier can be implemented in either analog or digital form. An analog Class-D amplifier is non-trivial and typically consists of a comparator, triangle waveform generator, and several blocks to condition the input signal before transferring to the output MOSFETs. A digital Class-D amplifier requires the following: PWM output (switching) frequency 10x+ faster than the highest input frequency to adequately reconstruct the input signal High-resolution control of the PWM pulse width to reduce output quantization distortion Method for sampling or receiving the input waveform Fast core for digital processing and manipulation of data Pins capable of driving the amplified signal Since the Silicon Labs Precision32™ SiM3U1xx/SiM3C1xx 32-bit MCUs have peripherals and features capable of meeting all of these requirements, these MCUs are uniquely suited to a utility Class-D power amplifier application without using many external components by directly driving the speaker using the high drive I/O. In addition to providing a development platform for Class-D applications, the Class-D ToolStick board serves as a lower-cost, general-purpose development platform for the SiM3U1xx USB MCUs. 2. Relevant Documents This document provides a hardware and software overview for the Class-D ToolStick. Additional documentation on the Precision32 tools and MCUs can be found on the Silicon Labs website: www.silabs.com/32bit-appnotes, www.silabs.com/32bit-software, and www.silabs.com/32bit-mcu. Rev. 0.1 11/12 Copyright © 2012 by Silicon Laboratories AN726 AN726 3. Using the Demo The speaker in the kit connects to the JP1 1x2 header next to the green terminal block (J4). Two alternate connection methods are available to support a variety of speakers: the J4 terminal block, and an output audio jack (J5). A screwdriver can be used to attach the speaker(s) of choice to J4, and each speaker should have two leads: positive (red) and negative (black). The audio jack output connects both channels of the speaker to R+ and R–, so it is not true mono. The Class-D ToolStick board is intended for use with stereo systems. The Class-D ToolStick can be powered from either the Debug (J3) or Device (J2) USB mini connectors as shown in Figure 2. The green POWER LED (DS7) will light up when the board is powered. Do not touch the Capacitive Sensing slider during power-on, as this is when the board calibrates the slider. Once the board is ready for use, the blue LED (DS1) will turn on. Figure 2. Powering the Board Change the volume of the output at any time by pressing firmly and sliding on the Capacitive Sensing slider (CS1). The blue LEDs above the slider indicate the volume level. The MODE button on the slider can be used to change the mode of the board: Mode 1 (blue LED DS1): Stereo Jack Input Mode 2 (blue LED DS2): USB Input/Output Mode Mode 3 (blue LED DS3): Play Prerecorded Flash Mode Mode 4 (blue LED DS4): Play/Record Flash Mode Mode 2 Rev. 0.1 AN726 3.1. Stereo Jack Input Mode The default mode of the Class-D ToolStick is stereo jack input mode, indicated by blue LED DS1. To play sound in this mode, connect any input source (MP3 player, phone, etc.) to the J1 stereo jack. The volume level of the input device should be as high as possible without causing saturation, which the red LED (DS8) indicates. 3.2. USB Input/Output Mode In USB mode, the board plays sound from the USB host PC or records sound from the board microphone (MK1) and sends it up to the PC. To use the board in this mode, connect the Device USB connector (J2) to the host PC and press the MODE button until blue LED DS2 turns on. The board should appear as the Utility Class-D ToolStick in Device Manager once it’s properly enumerated as a USB Audio device. To select the Class-D Audio device as the Playback or Recording source in Windows 7, right-click on the Volume Mixer icon in the System Tray and select either Playback devices or Recording devices. In the Playback tab of the dialog, select the Utility Class-D ToolStick and press the Set Default button as shown in Figure 3. The settings for the device can be selected using the Properties button in this tab. Figure 3. Configuring the USB Utility Class-D ToolStick as the Playback or Recording Device In the Recording tab of the dialog, select the Utility Class-D ToolStick microphone and press the Set Default button. This will open an interface to the microphone and will display the recorded input volume to the right of the device name. If this volume is not registering sounds, press the Properties button to configure the microphone volume. Once configured, any program on the PC should output to the Class-D ToolStick device. Ensure that the volume levels in the program and Volume Mixer are set to appropriate levels. If the device volume settings are not affecting the Class-D board, click the expansion button below the Speakers icon and select the Speakers (Utility Class-D ToolStick) as shown in Figure 4. When recording, the red LED (DS8) indicates when the microphone input saturates. Note: As long as a recording interface is open (i.e. Volume Mixer Recording devices dialog or a recording program open), the Class-D ToolStick prevents the user from switching the operation mode. This is due to potential synchronization issues when switching between different modes and sending data up to the host PC. To switch the mode, close the Volume Mixer or the recording program. Rev. 0.1 3 AN726 Figure 4. Selecting the USB Utility Class-D ToolStick in Volume Mixer 3.3. Play Prerecorded Flash Mode In prerecorded flash mode, the Class-D ToolStick will output ~7 seconds of sound from an array saved to flash. Enter the mode by pressing the MODE button until blue LED DS3 turns on. Press the PLAY slider button on the board to start the waveform, and press the PLAY slider button again to stop it before it completes. The blue LED (DS6) will indicate when a play operation is in progress. This mode provides an alternative sound input source when no sources are available and provides an indication of what sound effects would sound like. 3.4. Play/Record Flash Mode The play/record flash mode records compressed sound to the flash of the MCU. Enter the mode by pressing the MODE button until blue LED DS4 turns on. Press the REC slider button to start recording, and press the REC slider button again to stop recording. The blue LED (DS5) will indicate when a record operation is in progress. Multiple recordings will append to the full recording in flash. Once the flash is full, the MCU will indicate no additional recordings can be made by turning on and immediately turning off the blue record LED. To record additional sound, press the ERASE slider button to erase the flash. The blue DS5 LED will turn on while the erase operation is in progress. When recording, the red LED (DS8) indicates when the microphone input saturates. Press the PLAY slider button on the board to start the waveform, and press the PLAY slider button again to stop it before it completes. The blue LED (DS6) will indicate when a play operation is in progress. 4 Rev. 0.1 AN726 4. Class-D ToolStick Hardware Overview The Class-D ToolStick board enables Class-D application development on the SiM3U164 MCU. In addition to providing a development platform for Class-D applications, the Class-D ToolStick board serves as a low-cost, general-purpose development platform for the SiM3U1xx USB MCUs. Figure 5 shows the Utility Class-D ToolStick board features. Full schematics for the board can be found in 7. "Schematics‚" on page 22 ToolStick Debug Adapter Testpoint Pin Access for General-Purpose Development Class-D Output Filters and Speaker Header Optional High Power Components Audio Inputs Stereo Jack and Microphone Gain/Bias Capacitive Sensing Slider and LED User Interface Figure 5. Utility Class-D ToolStick Board Features 4.1. Push-Button Switches and LEDs (S1-2, DS1-DS8) The Class-D ToolStick board has two push-button switches and eight LEDs summarized in Table 1. The switches connect to PB0.6 (S1) and PB0.7 (S2) and are currently unused in the Class-D firmware. The switches are normally open and pull the pin voltage to ground when pressed. Port pins PB0.1, PB0.2, PB0.4, PB0.5, PB0.10, and PB0.11 connect to six blue LEDs (DS1-DS6). Pin PB3.3 connects to the red LED (DS8). The green LED, POWER (DS7), turns on when USB power is applied to the board from either USB connector. The LEDs connect to VIO through a current limiting resistor. Table 1. Class-D ToolStick Switches and LEDs GPIO Pin Switch or LED PB0.6 Push-Button Switch (S1) PB0.7 Push-Button Switch (S2) PB0.1 Blue LED (DS1) PB0.2 Blue LED (DS2) PB0.4 Blue LED (DS3) Rev. 0.1 5 AN726 Table 1. Class-D ToolStick Switches and LEDs (Continued) GPIO Pin Switch or LED PB0.5 Blue LED (DS4) PB0.10 Blue LED (DS5) PB0.11 Blue LED (DS6) PB3.3 Red LED (DS8) — Green POWER LED (DS7) 4.2. Class-D Output Network, Terminal (J4), Header (JP1), and Jack (J5) The four high drive I/O pins on the SiM3U164 40-pin QFN package connect to the J4 terminals after going through the Class-D output network, allowing these pins to directly drive the speaker(s). The JP1 1x2 header connects to R+ and R– to interface with the kit speaker. The output jack (J5) connects R+ and R– to both channels and does not provide true mono sound. To create a mono output, connect the L_IN and R_IN test points together in the stereo jack and microphone gain/bias section of the board. The output network consists of a ferrite bead, LC, and grounding caps for each pair of channels, R+/R– and L+/L–. These components should be tuned for the specific application speaker as discussed in 6. "Tuning the Class-D Output Network‚" on page 18. Table 2. Terminal Block Pin Descriptions (J4) Pin I/O 1 PB4.0 / R+ 2 PB4.1 / R– 3 PB4.2 / L+ 4 PB4.3 / L– 4.3. ToolStick Debug Adapter (U3) The Class-D ToolStick board features a debug adapter via the mini-B USB connector (J3) labeled DEBUG. This debug adapter can be used with the Precision32 (1.0.2 and higher) and ARM uVision IDEs (4.54 and higher). When using an older version of the IDEs, the debug adapter DLLs in the IDE directories must be replaced to support the ToolStick Debug Adapter. Contact technical support (“Contact Information” section) for more information. 4.4. USB Connection Options (J2) The Class-D ToolStick board features a USB connection via the mini-B USB connector (J2) labeled DEVICE. This USB connector provides the USB Audio features of the board and facilitates general-purpose USB development on the SiM3U164 device. 6 Rev. 0.1 AN726 4.5. Capacitive Sensing Buttons and Slider (CS1) Four capacitive sensing buttons and one slider comprised of six segments are included on the board to provide the user interface. Six GPIO pins are connected to the slider as shown in Table 3. The GPIO pins are connected to the slider in descending order from the location labeled MODE to the location labeled PLAY on the board. The test points above the slider facilitate adding grounded or shrouded connectors to measure the capacitive sensing pins. Table 3. Capacitive Sensing GPIO Connections Location Pin MODE PB1.1 — PB1.0 ERASE PB0.15 — PB0.14 REC PB0.13 PLAY PB0.12 4.6. Analog Audio Inputs (J1 and MK1) The stereo jack on the board (J1) allows the board to measure stereo inputs from an input source. The microphone (MK1) enables the device to measure voice data directly. These signals are conditioned by a bias and gain circuit provided by a quad op-amp IC (U1), resistors, and capacitors to a range appropriate for the SiM3U164 SARADC modules. Rev. 0.1 7 AN726 5. Class-D ToolStick Firmware Overview 5.1. System Overview The system is configured for 48 MHz AHB and APB to maximize the output resolution of the EPCA. In all modes, the EPCA0 operates continuously and outputs the PWM signal to the speaker. This waveform generation is never interrupted. The SARADC modules operate in 12-bit mode at the maximum SAR clock frequency in order to complete conversions as quickly as possible. The USB internal oscillator provides the 48 MHz system clock, which in conjunction with the PLL0 module, provides the precise timing required in the different modes to recreate the audio waveforms. 5.1.1. SiM3U164 Module Usage The modules used by the Class-D ToolStick firmware are: SARADC0: Measures the right stereo jack channel and the microphone input Measures the left stereo jack channel VREF0: Provides the 2.4 V reference for the ADCs FLASHCTRL0: Writes recorded microphone data to flash EPCA0: Generates Class-D PWM waveforms (four channels) CAPSENSE0: Provides button and slider user interface TIMER0: Generates ~20 ms capacitive sensing scan timer TIMER1: Generates mode timing (e.g. 48 kHz in USB) and handles LED PWM updates PCA0 and Crossbar: Generates LED PWM waveforms for the six blue LEDs (one channel) USB0: Provides the USB Audio input/output interface PLL0: Provides the precise timing for the system and spectrum spreading to reduce emissions AppBuilder generates the initialization code for all modules except for the USB0 module. This AppBuilder project is included in the Utility Class-D ToolStick software package. SARADC1: Note: Exporting code from version 1.1.1 of AppBuilder will overwrite the project file associated with the Class-D ToolStick firmware. This project file includes manual changes to include the si32Library that will be removed when AppBuilder exports the code. A saved version of the project file (save.project) is available in the Class-D ToolStick firmware package in case this project file is overwritten. To restore the project file, simply copy the contents of save.project to the .project file. 5.1.2. Firmware Organization The Class-D ToolStick code follows the AppBuilder code organization scheme. The application-specific code for each peripheral is in the src folder in the my- files, and the generated files from AppBuilder are in a generated folder below the src folder. Additional application-specific files are in the src folder with names associated with the functions in the file, like mulaw or LED_control. class_d: includes the main Class-D loop and any control not handled by the TIMER1L interrupt handler. LED_control: blue and red LED update functions; handles the shifting of the PCA channel on the crossbar. mulaw: implements the µLaw companding algorithms. myApplication: implements the system initialization code before passing control to class_d. myBuildOptions: required for si32Library. myDataPlaneIn: si32Library callback functions for the USB IN transactions (recording). myDataPlaneOut: si32Library callback functions for the USB OUT transactions (playing). myUsbAudioDevice: USB Audio descriptors and audio-specific si32Library function calls. myUSB0: non-audio USB si32Library functions calls for the application. pre_recorded_array: µLaw compressed prerecorded flash data. volume: handles the volume decoding and control from either the USB interface or the Capacitive Sensing slider. my- files: implement application code associated with the particular peripheral. g- files: AppBuilder generated initialization code associated with the particular peripheral. 8 Rev. 0.1 AN726 5.2. Algorithms The Class-D ToolStick uses two algorithms to manipulate data: Exponentially Weighted Moving Average (EWMA) and µLaw. This section also describes Remainder-Weighted Dithering as an optional algorithm. 5.2.1. Exponentially Weighted Moving Average (EWMA) The EWMA is a form of Exponential Averaging that creates a low-pass filter. This filter performs noise shaping to help move the quantization noise out of the audible range. The Class-D ToolStick firmware uses this form of averaging to filter the ADC results. The EWMA takes the form: y n – 1 x n y n = y n – 1 – -------------------+ ---------m 2 2m In this equation, y(n) is the current output, y(n-1) is the previous output, x(n) is the current input sample, and m is the weight of the average. The weight determines how heavy the average of the EWMA is. The smaller weights (m = 1, 2) use more of the new sample and react more quickly to dramatic changes in the input. Larger weights (m = 4, 5) use more of the previous output and provide more smoothing. The EWMA has several advantages over other forms of averaging: Quick to calculate (two shifts, an addition, and a subtraction) saving the previous value Contains history from every sample in time, which would take lots of memory in a traditional average The weight can be dynamically adjusted easily in firmware depending on the circumstances without dramatically changing the computational time The EWMA is a form of IIR filter, which means it can become unstable if the cumulative error becomes too large. Only 5.2.2. Remainder-Weighted Dithering The firmware quantizes the 12-bit ADC results or 16-bit signed USB data to a 9-bit EPCA PWM value. Remainderweighted dithering is an optional algorithm that allows the Class-D ToolStick firmware to recover some of the energy lost in the LSBs during this conversion in a random, inaudible way. This algorithm captures the LSBs of the original 12- or 16-bit data, shifts the data to the final 9-bit size, and compares against a random value of the same magnitude as the LSBs shifted away. If the original data was positive and the LSBs are greater than the random value, then the LSB of the 9-bit data is incremented by 1. Similarly, if the original data was negative and the LSBs are less than the random value, the LSB is decremented by 1. Otherwise, the data remains unchanged. Output Code 12-bit to 9-bit (3 bits): output_value = 1931 = 0x078B output_lsb = 0x78B & 0x7 = 3 output_value = 1931 >> 3 = 241 random_lsb = 1 random_lsb = 6 random_lsb = 4 random_lsb = 0 random_lsb = 3 242 241 EPCA overflows Figure 6. Remainder-Weighted Dithering Example Rev. 0.1 9 AN726 The example in Figure 6 assumes a original 12-bit signed data value of 1931 and shows how the average energy increases. In this particular example, the data remains the same for each EPCA overflow for simplicity, but this will not necessarily be the case in the operation of the algorithm. 5.2.3. µLaw (or muLaw) The µLaw companding algorithm has long been used in telephony and other voice applications. This algorithm takes advantage of the behavior of the human ear by reserving most of the compression bins for low volume levels where the ear is most sensitive. Using this algorithm, the Class-D firmware can store more data in flash with no noticeable degradation in audio quality. This algorithm takes a 14-bit signed number and adds 32 to the magnitude, which ensures that a 1 occurs in bits 5– 12 of the value. This means the valid input range is –8160 to 8159. This value is then converted to an 8-bit compressed result as shown in Figure 7, where S is the sign bit. Finally, the 8-bit value is complemented. 14-bit Signed Input Data 8-bit µLaw Encoded Data S 0 0 0 0 0 0 0 1 A B C D X S 0 0 0 A B C D S 0 0 0 0 0 0 1 A B C D X X S 0 0 1 A B C D S 0 0 0 0 0 1 A B C D X X X S 0 1 0 A B C D S 0 0 0 0 1 A B C D X X X X S 0 1 1 A B C D S 0 0 0 1 A B C D X X X X X S 1 0 0 A B C D S 0 0 1 A B C D X X X X X X S 1 0 1 A B C D S 0 1 A B C D X X X X X X X S 1 1 0 A B C D S 1 A B C D X X X X X X X X S 1 1 1 A B C D Figure 7. µLaw Algorithm Table Figure 8 shows the plot of the 14-bit signed inputs versus the 8-bit compressed output. 100 50 Input Data -8000 -6000 -4000 -2000 2000 4000 -50 -100 Compressed Output Figure 8. µLaw Algorithm Plot 10 Rev. 0.1 6000 8000 AN726 5.3. EPCA0 Class-D Output In all modes, the EPCA0 module runs in center-aligned PWM mode with an upper limit of 256. This means that the channels operate in the range of 0–511, since the channels count in half clocks. When the positive channel is on longer than the negative channel, the resulting equivalent energy is positive (above zero). When the negative channel is on longer than the positive channel, the resulting equivalent energy is negative (below zero). Combined with the components on the output, this PWM scheme generates the output waveform on the speaker as shown in Figure 9. PB4.0 (R+) FB L Cg C PB4.1 (R-) FB L Cg CH0 (R+) CH1 (R-) Differential Figure 9. Class-D Output Example Note: The output network configuration in Figure 9 is the configuration in Revision 1.0 of the hardware. An alternate output network discussed in 6. "Tuning the Class-D Output Network‚" on page 18 may provide better performance than the original configuration. 5.4. Volume Control The volume control on the Class-D ToolStick board uses the current-limiting feature of the high drive I/O to adjust the output power. This has the additional benefit of allowing the PWM to always operate at full range, even at lower volumes, which reduces firmware size and improves sound quality. Rev. 0.1 11 AN726 5.5. Stereo Jack Input Mode In stereo jack input mode, the goal is to sample at an even division of the EPCA0 update frequency to provide the lowest distortion attainable. The data from the ADCs is 12-bit unsigned. Class-D RD Board R SiM3U1xx SARADC0 SARADC1 EPCA L Figure 10. Stereo Jack Input Mode Block Diagram This mode measures the input source from the stereo jack (J1) using both SARADC modules, performs the EWMA algorithm, quantizes the data to 9 bits, and outputs the PWM waveform on the EPCA0 module. Figure 11 shows the data flow for the stereo input jack mode. The Class-D ToolStick board automatically biases the input waveform to VREF/2. On hardware that does not do this, an additional dc offset adjustment algorithm may be required. R SiM3U1xx hardware gain stage SARADC0 hardware gain stage SARADC1 adjusting DC offset algorithm remainderweighted dither EWMA 9-bit quantization EPCA Figure 11. Stereo Jack Input Mode Flow Diagram 12 Rev. 0.1 L AN726 5.6. USB Input/Output Mode In USB input/output mode, the system samples and outputs data at 48 kHz. The USB data is 16-bit signed data. Class-D RD Board R SiM3U1xx Host PC USB sound software SARADC0 MIC EPCA L Figure 12. USB Input/Output Mode Block Diagram For playing (from PC to the board), the board receives data from the USB interface using the si32Library USB Audio Component and outputs the PWM waveform on the EPCA0 module. For recording (from board to the PC), the firmware measures the microphone (MK1) using one SARADC module and sends the data to the PC using the si32Library USB Audio Component. Figure 13 shows the data flow for the USB input/output mode. SiM3U1xx Host PC USB0 sound software hardware gain stage MIC SARADC0 R 9-bit quantization shift from 12 bits unsigned to 16 signed remainderweighted dither EPCA L Figure 13. USB Input/Output Mode Flow Diagram Rev. 0.1 13 AN726 5.7. Play Prerecorded Flash Mode In play prerecorded flash mode, the system outputs data from the flash at 9.6 kHz. R Class-D RD Board SiM3U1xx Flash EPCA L Figure 14. Play Prerecorded Flash Mode Block Diagram The firmware reads the compressed data from the flash, decompresses the data using µLaw, performs the EWMA algorithm, quantizes the data to 9 bits, and outputs the PWM waveform on the EPCA0 module. The remainderweighted dithering algorithm is not used at all in this mode since the data LSBs will often be 0s from the compression algorithm. Figure 15 shows the data flow for the play prerecorded flash mode. R SiM3U1xx Flash µLaw decompression 8 bits to 14 (signed) 9-bit quantization 12-bit quantization EWMA EPCA L Figure 15. Play Prerecorded Flash Mode Flow Diagram 14 Rev. 0.1 AN726 5.8. Play/Record Flash Mode In play/record flash mode, the system samples and outputs data at 9.6 kHz. Class-D RD Board R SiM3U1xx Flash SARADC0 MIC EPCA L Figure 16. Play/Record Flash Mode Block Diagram For playing, the firmware reads the compressed data from the flash, decompresses the data using µLaw, performs the EWMA algorithm, quantizes the data to 9 bits, and outputs the PWM waveform on the EPCA0 module. The remainder-weighted dithering algorithm is not used at all in this mode since the data LSBs will often be 0’s from the compression algorithm. For recording, the firmware measures the microphone (MK1) using one SARADC module, compresses the data using µLaw, and stores the data in flash. Figure 17 shows the data flow for the play/record flash mode. R SiM3U1xx Flash µLaw compression 14 bits to 8 (signed) µLaw decompression 8 bits to 14 (signed) 9-bit quantization 12-bit quantization EWMA EPCA L hardware gain stage MIC SARADC0 convert from 12 bits unsigned to 14 signed Figure 17. Play/Record Flash Mode Flow Diagram Rev. 0.1 15 AN726 5.9. Build Configurations The Precision32 and uVision projects include two build configurations each: Release and Debug. These configurations change the code optimization settings. In addition, each configuration sets a flag to allow the firmware to automatically detect the current build configuration and IDE. This enables the firmware to modify the play/record flash mode array size to appropriate settings based on the code size. The approximate sizes for each build configuration are shown in Table 4. Table 4. Build Code Size Comparisons IDE Build Code Size (bytes) Precision32 Debug 68200 Release 47200 Debug 40200 Release 34700 uVision4 To change the active build configuration in the Precision32 IDE, right-click on the project name in the Project view and select Build ConfigurationsSet ActiveDebug or Release. Figure 18. Setting the Active Precision32 IDE Build Configuration 16 Rev. 0.1 AN726 To change the active build configuration in uVision4, select the configuration from the drop-down menu shown in Figure 19. Figure 19. Setting the Active uVision4 IDE Build Configuration 5.10. si32 HAL Version The Class-D ToolStick firmware was originally developed for v1.1.1 of the HAL or later. Compiling against previous versions of the HAL will generate errors. Rev. 0.1 17 AN726 6. Tuning the Class-D Output Network 6.1. Revision 1.0 Configuration Class-D is an extension of a single-ended, single-pin speaker drive, where one side of the speaker is driven directly (perhaps with a ferrite bead) and one side is grounded. This output method works very well with SiM3U1xx devices. The full Class-D output network consists of ferrite beads, inductor-capacitor (LC) filters, and grounding capacitors (Cg). Figure 20 shows the output network configuration used by the Revision 1.0 hardware. An alternate output network shown in Figure 21 may provide better performance than the original configuration. PB4.0 (R+) FB L Cg C PB4.1 (R-) FB L Cg Figure 20. Revision 1.0 Hardware Class-D Output Network—Direct Drive The ferrite beads dissipate pad switching noise as heat for EMI purposes, the LC components filter the PWM noise, and the grounding capacitors provide additional filtering in conjunction with the speaker reactance. In almost all applications, the ferrite beads should be populated on the board. However, the other components may or may not be populated, depending on the speaker used and the cost requirements of the application. If either the L or the C are installed, both should be populated to ensure lower power consumption. In most cases, the easiest method of determining whether to install the components and the values for these components is through physical experimentation. The perceived quality can be determined by the following characteristics: loudness changes in loudness across bandwidth bandwidth noise harmonics across bandwidth at low and high volumes Other factors to consider are the application’s sound source (i.e. USB data versus sampled ADC data) and the maximum power consumption of the board in the application, which will determine how much data processing can occur and if external MOSFETs are appropriate. The Class-D board provides 0 resistor pads to bypass the series components, if desired. hiss 18 Rev. 0.1 AN726 6.2. Alternate Configuration Figure 20 shows the output network configuration used by the Revision 1.0 hardware. An alternate output network shown in Figure 21 may provide better performance than the original configuration. placed as close to the speaker connectors as possible placed as close to the device as possible PB4.0 (R+) L FB C Cg CB PB4.1 (R-) L FB Cg C Figure 21. Alternate Class-D Output Network—Direct Drive For the alternate configuration, the recommended components for the board are shown in Table 5. Table 5. Class-D ToolStick Alternate Output Network Recommended Components Reference Value L ~3.3 µH, 1.5 A C ~2.2 µF Cg ~20 pF CB ~0.47 µF Rev. 0.1 19 AN726 6.3. Revision 1.0 High Power Configuration Instead of directly driving the speaker, the high-drive I/O can interface with external MOSFETs as shown in Figure 22, enabling higher-power applications. The board includes footprints for these external MOSFETs to enable development with this configuration. The pull-up and pull-down resistors (~100 k) ensure that the tristate reset state of the high drive I/O does not cause the FETs to accidentally conduct current. When using these external MOSFETs, uninstall the R32, R35, R38, and R41 0 resistors. Figure 23 illustrates an alternate full-bridge high-power output network. The diode and RC circuits on the MOSFET gates ensure that the two devices will not both be conducting simultaneously. PB4.0 (R+) FB L Cg C VIOHD PB4.1 (R-) FB L Cg Figure 22. Half-Bridge Class-D Output Network–External MOSFETs The Revision 1.0 hardware provides footprints to a 9 V dc adapter connector and high power LDO. These components can be populated to provide a higher current source to the external MOSFET transistors and VIOHD. Alternatively, an external supply can connect to the transistors alone by removing the R48 0 resistor and placing the positive terminal on the P_PWR test point. 20 Rev. 0.1 AN726 6.4. Alternate High Power Configuration The Revision 1.0 hardware uses a half-bridge configuration shown in Figure 22. This configuration can lead to higher distortion. Figure 23 illustrates an alternate full-bridge high-power output network. The diode and RC circuits on the MOSFET gates ensure that the two devices will not both be conducting simultaneously. The value of these components should be tuned for the gate capacitance of the FETs. VIOHD placed as close to the drivers as possible L PB4.0 (R+) placed as close to the speaker connectors as possible FB C Cg CB VIOHD PB4.1 (R-) L FB C Cg Figure 23. Full-Bridge Class-D Output Network—External MOSFETs Rev. 0.1 21 R8 4.99K R6 24.9K ADC_VREF Rev. 0.1 R11 10K V- V+ 1 U1A MC33204 Virtual_GND LEFT_CH RIGHT_CH 3 1 1 2 2 J1 AUDIO JACK MK1 MICROPHONE R1 2K 10uF C1 R16 100 R9 100 Virtual_GND 2.2uF C7 Virtual_GND 2.2uF C5 Virtual_GND 100K R18 R17 470K R_IN 100K R12 R10 470K L_IN 2.74K R4 R3 470K C3 10uF R5 R13 R19 280K 13 - U1D MC33204 12 + 280K 9 - 14 8 MGAIN+ 7 U1B MC33204 U1C MC33204 10 + 200K MGAIN- 6 - 5 + Figure 24. Utility Class-D ToolStick Board Schematic (1 of 3)—Revision 1.0 R14 5.11K 2 - 3 + C4 0.1uF +3.3V_VDD 4 22 11 ADC_VREF 21 R15 21 R7 21 R2 C8 0.47uF ADC_IN_JACK_2 C6 0.47uF ADC_IN_JACK_1 C2 0.47uF AN726 7. Schematics J6 Power Jack 5.0V_Wall 1 2 3 USB_5.0V_Debug VIN U4 C32 0.33uF 1 R50 D4B 0 D4A +V DD+ ID GND J3 DEBUG CN-USB-OTG USB_5.0V_Device +V DD+ ID GND J2 DEVICE CN-USB-OTG GND MC7805ABD2TG 3 VOUT DS7 GREEN R28 750 VIOHD VIOHD L1 C33 4.7uF 4.7uF C22 R+ L+ R- L- C17 0.1uF C24 1uF PB4.3 VSSHD VIOHD PB4.2 PB4.1 PB4.0 PB3.3 PB3.2 PB3.1 PB3.0 C25 0.1uF VDD_Debug SiM3U164-B-GM U2 7 6 5 4 3 2 1 1K R29 REGIN VDD VIO D- D+ GND GPIO 4.7uF C21 VDD_Debug 0.1uF C20 VDD_Debug UART0_RX UART0_TX 1 2 3 4 5 6 7 8 9 10 RESETb 30 29 28 27 26 25 24 23 22 21 SWDIO RESETb SWCLK PB0.4 PB0.5 PB0.6 PB0.7 PB0.8 PB0.9 SWCLK SWDIO PB0.10 PB0.11 LED1 LED0 C10 0.1uF U3 CF326-SX0261GM ADC_IN_MIC S1 0 NC NC NC LED_RUN NC NC NC CS Slider MODE 19 15 16 17 18 S2 C15 0.1uF R22 100 DS1 Blue +3.3V_VDD 4.7uF C14 ADC_VREF LED0 LED1 LED2 LED3 20 21 UART0_TX R49 1K +3.3V_VDD ADC_IN_JACK_1 R45 ADC_IN_JACK_1 SWCLK SWDIO UART0_RX LED2 LED3 R44 1K +3.3V_VDD ADC_IN_JACK_1 C11 4.7uF R23 100 DS2 Blue +3.3V_VDD R24 100 DS3 Blue +3.3V_VDD ERASE REC www.silabs.com/toolstick R25 100 DS4 Blue +3.3V_VDD Utility Class-D ToolStick Figure 25. Utility Class-D ToolStick Board Schematic (2 of 3)—Revision 1.0 4.7uF C18 C19 0.1uF I2S_RX_WS I2S_RX_SCK R20 1K +3.3V_VDD I2S_RX_SD +3.3V_VDD 0.1uF C23 DS8 RED PB3.3 R42 750 +3.3V_VDD USB_5.0V_Debug D3 SP0503BAHT 5.0V_Wall 0.68uH 0 R27 VREGIN_Device D1 SP0503BAHT C16 4.7uF VIOHD 28 TCK/SWCLK USB_5.0V_Device 40 39 38 37 36 35 34 33 32 31 RESET DD+ VBUS VREGIN VDD PB0.0 PB0.1 PB0.2 PB0.3 PB1.3 PB1.2 VIO VSS PB1.1 PB1.0 PB0.15 PB0.14 PB0.13 PB0.12 11 12 13 14 15 16 17 18 19 20 27 nSRST I2S_RX_SD I2S_RX_SCK I2S_RX_WS C13 0.1uF 1 C12 2 0.1uF 3 +3.3V_VDD 4 VREGIN_Device 22 GPIO/CTS SH SH 26 TMS/SWDIO C2D 10 5 +3.3V_VDD 4 25 TDI/TX SUSPEND 11 VBUS 8 24 TDO/SWO/RX LED_STOP 12 RSTb/C2CK 9 23 GPIO/RTS NC 13 NC 14 EPAD Rev. 0.1 29 PLAY R26 100 DS5 Blue +3.3V_VDD 6 4.7uF C9 R21 100 DS6 Blue +3.3V_VDD AN726 23 VIOHD 0 R48 24 P_PWR P_Power R+_pin Rev. 0.1 L+_pin L- L-_pin L+ R- R-_pin R+ R41 P_Power 47K R47 R38 R35 P_Power 47K R46 R32 L- P M2 NTR4171PT1G Q2 NTR4170NT1G L+ N R- P M1 NTR4171PT1G Q1 NTR4170NT1G R+ N 600 Ohm FB4 600 Ohm FB3 600 Ohm FB2 600 Ohm FB1 L-_I L+_I R-_I R+_I R34 R37 R40 3.3uH L5 0 3.3uH L4 0 3.3uH L3 0 3.3uH L2 R31 C31 0.022uF C29 0.022uF C28 0.022uF C26 0.022uF C30 2.2uF C27 2.2uF L+ R- R- L- R+ R+ 4 3 2 1 J4 R+ RL+ L- VIOHD Analog Header JP1 Figure 26. Utility Class-D ToolStick Board Schematic (3 of 3)—Revision 1.0 0 0 0 0 0 R- R+ 3 1 2 J5 AUDIO JACK Speaker LS1 AN726 AN726 8. Bill of Materials Table 6. Utility Class-D ToolStick Board Bill of Materials Reference Part Number Source Description C1, C3 C0603X5R6R3-106M Venkel 10 µF, 6.3 V ±r% X5R 0603 C2, C6, C8 C0603X7R250-474K Venkel 0.47 µF, 25 V ±10% X7R 0603 C24 C0603X7R100-105K Venkel 1 µF, 10 V ±10% X7R 0603 C26, C28, C29, C31 C1608X7R1H223M TDK Corporation 0.022 µF, 50 V ±20% X7R 0603 C4, C10, C12, C13, C15, C17, C19, C20, C23, C25 C0603X7R100-104K Venkel 0.1 µF, 10 V ±10% X7R 0603 C5, C7 C0603X7R100-225K Venkel 2.2 µF, 10 V ±10% X7R 0603 C9, C11, C14, C16, C18, C21, C22 C0603X5R6R3-475K Venkel 4.7 µF, 6.3 V ±10% X5R 0603 D1, D3 SP0503BAHTG Littlefuse USB Diodes 300 mW, 20 V TVS SOT143 D4 RB550EATR Rohm Semiconductor Diode 700 mA, 30 V Dual Schottky SOT5N DS1, DS2, DS3, DS4, DS5, DS6 LB Q39G-L2N2-35-1 OSRAM Opto Semiconductors Inc Blue 15 mA, 2.85 V SMT, ChipLED 0603 DS7 SML-LX0603SUGW LUMEX INC GREEN 25 mA 0603 DS8 SML-LX0603IW LUMEX INC RED 30 mA 0603 FB1, FB2, FB3, FB4 MPZ1608S601A TDK Corporation 600 , 1 A SMT 0603 J1, J5 SJ1-3543N CUI Inc Stereo Audio Jack J2, J3 UX60-MB-5ST HIROSE USB mini connector B J4 1729144 Phoenix Contact 1x4 Terminal Block JP1 TSW-102-07-T-S Samtec 1x2 Jumper Header L1 NLV25T-R68J-PF TDK 0.68 µH, 300 mA ±5% GP L2, L3, L4, L5 84332C Murata 3.3 µH, 1.5 A ±20% Unshielded LS1 GA0571H ALC Speaker 1 W Max MK1 CMA-4544PF-W CUI Inc MICROPHONE MIC-2.5X9.7MM-RAD R1 CR0603-10W-2001F Venkel 2 k, 1/10 W ±1% ThickFilm 0603 R11, R18 CR0603-10W-1003F Venkel 100 k, 1/10 W ±1% ThickFilm 0603 R12, R19 CR0603-16W-2803F Venkel 280 k, 1/16 W ±1% ThickFilm 0603 R13 CR0603-10W-1002F Venkel 10 k, 1/10 W ±1% ThickFilm 0603 R14 CR0603-8W-5111F Venkel 5.11 k, 1/8 W ±1% ThickFilm 0603 R2, R7, R15 CR0603-16W-21R0F Venkel 21 , 1/16 W ±1% ThickFilm 0603 R20, R29, R44, R49 CR0603-10W-1001F Venkel 1 k, 1/10 W ±1% ThickFilm 0603 R28, R42 CR0603-16W-7500F Venkel 750 , 1/10 W ±1% ThickFilm 0603 Rev. 0.1 25 AN726 Table 6. Utility Class-D ToolStick Board Bill of Materials (Continued) Reference Part Number Source Description R3, R10, R17 CR0603-10W-4703F Venkel 470 k, 1/10 W ±1% ThickFilm 0603 R31, R32, R34, R35, R37, R38, R40, R41, R48 CR0603-16W-000 Venkel 0 , 1 A ThickFilm 0603 R4 CR0603-16W-2741F Venkel 2.74 k, 1/16 W ±1% ThickFilm 0603 R5 CR0603-10W-2003F Venkel 200 k, 1/10 W ±1% ThickFilm 0603 R6 CR0603-10W-2492F Venkel 24.9 k, 1/10 W ±1% ThickFilm 0603 R8 CR0603-16W-4991F Venkel 4.99 k, 1/16 W ±1% ThickFilm 0603 R9, R16, R21, R22, R23, R24, R25, R26 CR0603-10W-1000F Venkel 100 , 1/10 W ±1% ThickFilm 0603 S1, S2 EVQ-PAD04M Panasonic Corp Momentary Tactile Switch 6.5x4.5 SC1, SC2, SC3, SC4 NSS-4-4-01 Richco Plastic Co 4-40 HDW SO1, SO2, SO3, SO4 2397 SPC Technology STANDOFF HDW U1 MC33204DR2 ON Semiconductor Quad Op-Amp U2 SiM3U164-B-GM Silicon Laboratories SiM3U164-B-GQ MCU QFN40 M6x6 P0.5 U3 CF326-SX0261GM Silicon Laboratories ToolStick Debug Adapter MCU Components Not Installed C27, C30 C0603X7R100-225K Venkel 2.2 µF, 10 V ±10% X7R 0603 Not Installed (NI) C32 C0603X7R100-334K Venkel 0.33 µF, 10 V ±10% X7R 0603 Not Installed (NI) C33 C0603X5R6R3-475K Venkel 4.7 µF, 6.3 V ±10% X7R 0603 Not Installed (NI) J6 RAPC722X Switchcraft Inc. 3-pin Power Jack 5A BARREL Not Installed (NI) M1, M2 NTR4171PT1G ON Semiconductor –3.5 A, –30 V Pchan SOT23 Not Installed (NI) Q1, Q2 NTR4170NT1G ON Semiconductor 3.2 A, 30 V Nchan SOT23 Not Installed (NI) R27, R45, R50 CR0603-16W-000 Venkel 0 ,1 A ThickFilm 0603 Not Installed (NI) R46, R47 CR0603-16W-4702F Venkel 47 k, 1/16 W ±1% ThickFilm 0603 Not Installed (NI) U4 MC7805ABD2TG ON Semiconductor 1 A max LDO D2PAK Not Installed (NI) 26 Rev. 0.1 AN726 NOTES: Rev. 0.1 27 AN726 CONTACT INFORMATION Silicon Laboratories Inc. 400 West Cesar Chavez Austin, TX 78701 Please visit the Silicon Labs Technical Support web page: http://www.silabs.com/support and register to submit a technical support request. Patent Notice Silicon Labs invests in research and development to help our customers differentiate in the market with innovative low-power, small size, analogintensive mixed-signal solutions. Silicon Labs' extensive patent portfolio is a testament to our unique approach and world-class engineering team. The information in this document is believed to be accurate in all respects at the time of publication but is subject to change without notice. Silicon Laboratories assumes no responsibility for errors and omissions, and disclaims responsibility for any consequences resulting from the use of information included herein. Additionally, Silicon Laboratories assumes no responsibility for the functioning of undescribed features or parameters. Silicon Laboratories reserves the right to make changes without further notice. Silicon Laboratories makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does Silicon Laboratories assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. Silicon Laboratories products are not designed, intended, or authorized for use in applications intended to support or sustain life, or for any other application in which the failure of the Silicon Laboratories product could create a situation where personal injury or death may occur. Should Buyer purchase or use Silicon Laboratories products for any such unintended or unauthorized application, Buyer shall indemnify and hold Silicon Laboratories harmless against all claims and damages. Silicon Laboratories and Silicon Labs are trademarks of Silicon Laboratories Inc. Other products or brandnames mentioned herein are trademarks or registered trademarks of their respective holders. 28 Rev. 0.1