%PDF-1.4
%
1 0 obj
<<
/PageMode /UseOutlines
/Names 2 0 R
/Metadata 3 0 R
/Type /Catalog
/Outlines 4 0 R
/Pages 5 0 R
>>
endobj
6 0 obj
<<
/Keywords (AN4369, audio, audio output, DMA, PWM, DAC, I2S, I2S Audio bus, Direct memory access, digital filtering, Signal dithering, SAI, play, player, playback, recorder, record, reproduction, voice output, voice, wav, double buffer, ping-pong buffer, TWR-K60N512, TWR-ELEV, TWR-PROTO, Tower, Application note, guidelines, Kinetis, microcontroller, MCU)
/Creator (AH Formatter V5.2 MR1 \(5,2,2010,1221\) for Linux64)
/ModDate (D:20150217180752-06'00')
/Trapped (False)
/CreationDate (D:20120222095012-06'00')
/Producer <416E74656E6E6120486F75736520504446204F7574707574204C69627261727920322E362E3020284C696E75783634293B206D6F646966696564207573696E67206954657874AE20352E352E3420A9323030302D323031342069546578742047726F7570204E5620284147504C2D76657273696F6E29>
/Subject (This Application Note describes the basic methods of implementing audio outputs using DMA and PWM, DAC or I2S Audio bus on Kinetis microcontrollers \(MCU\))
/Author (Freescale Semiconductor Inc.)
/Title (Audio Output for Kinetis MCUs using DMA/PWM, DAC or I2S)
>>
endobj
2 0 obj
<<
/Dests 7 0 R
>>
endobj
3 0 obj
<<
/Subtype /XML
/Type /Metadata
/Length 5009
>>
stream
AN4369
audio
audio output
DMA
PWM
DAC
I2S
I2S Audio bus
Direct memory access
digital filtering
Signal dithering
SAI
play
player
playback
recorder
record
reproduction
voice output
voice
wav
double buffer
ping-pong buffer
TWR-K60N512
TWR-ELEV
TWR-PROTO
Tower
Application note
guidelines
Kinetis
microcontroller
MCU
This Application Note describes the basic methods of implementing audio outputs using DMA and PWM, DAC or I2S Audio bus on Kinetis microcontrollers (MCU)
Freescale Semiconductor Inc.
Audio Output for Kinetis MCUs using DMA/PWM, DAC or I2S
endstream
endobj
4 0 obj
<<
/Type /Outlines
/Count 9
/First 8 0 R
/Last 9 0 R
>>
endobj
5 0 obj
<<
/Kids [10 0 R]
/BleedBox [0 0 595.27563 841.88977]
/Type /Pages
/Count 17
/CropBox [0 0 595.27563 841.88977]
/MediaBox [0 0 595.27563 841.88977]
>>
endobj
7 0 obj
<<
/Kids [11 0 R]
>>
endobj
8 0 obj
<<
/A <<
/S /GoTo
/D (d5e3a1310_d4e43)
>>
/C [0 0 0]
/Count 1
/Next 12 0 R
/Title (Introduction)
/Parent 4 0 R
/First 13 0 R
/Last 13 0 R
>>
endobj
9 0 obj
<<
/A <<
/S /GoTo
/D (d63e3a1310_d4e519)
>>
/C [0 0 0]
/Title (References)
/Parent 4 0 R
/Prev 14 0 R
>>
endobj
10 0 obj
<<
/Kids [15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R
25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R]
/Type /Pages
/Count 17
/Parent 5 0 R
>>
endobj
11 0 obj
<<
/Names [(back-page) 32 0 R (d16e3a1310_d4e168) 33 0 R (d17e3a1310_d4e168) 34 0 R (d18e3a1310_d4e168) 35 0 R (d19e3a1310_d4e243) 36 0 R
(d20e3a1310_d4e243) 37 0 R (d21e3a1310_d4e243) 38 0 R (d22e3a1310_d4e243) 39 0 R (d22e44a1310) 40 0 R (d38e3a1310_d4e343) 41 0 R
(d42e3a1310_d4e368) 42 0 R (d43e3a1310_d4e368) 43 0 R (d44e3a1310_d4e368) 44 0 R (d45e3a1310_d4e368) 45 0 R (d5e3a1310_d4e43) 46 0 R
(d61e3a1310_d4e468) 47 0 R (d62e3a1310_d4e493) 48 0 R (d63e3a1310_d4e519) 49 0 R (d6e3a1310_d4e43) 50 0 R (d7e3a1310_d4e93) 51 0 R
(d8e3a1310_d4e93) 52 0 R (d9e3a1310_d4e93) 53 0 R (d9e43a1310) 54 0 R (d9e47a1310) 55 0 R]
/Limits [(back-page) (d9e47a1310)]
>>
endobj
12 0 obj
<<
/A <<
/S /GoTo
/D (d7e3a1310_d4e93)
>>
/C [0 0 0]
/Count 2
/Next 56 0 R
/Title (Double-buffering and DMA)
/Parent 4 0 R
/First 57 0 R
/Prev 8 0 R
/Last 58 0 R
>>
endobj
13 0 obj
<<
/A <<
/S /GoTo
/D (d6e3a1310_d4e43)
>>
/C [0 0 0]
/Title (Abstract)
/Parent 8 0 R
>>
endobj
14 0 obj
<<
/A <<
/S /GoTo
/D (d62e3a1310_d4e493)
>>
/C [0 0 0]
/Next 9 0 R
/Title (Testing and validation)
/Parent 4 0 R
/Prev 59 0 R
>>
endobj
15 0 obj
<<
/Contents [60 0 R 61 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
>>
/XObject <<
/Im1 65 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/Annots [66 0 R 67 0 R 68 0 R 69 0 R 70 0 R 71 0 R 72 0 R 73 0 R 74 0 R 75 0 R
76 0 R 77 0 R 78 0 R 79 0 R 80 0 R 81 0 R 82 0 R 83 0 R]
/MediaBox [0 0 612 777.60004]
>>
endobj
16 0 obj
<<
/Contents [84 0 R 85 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
>>
/XObject <<
/Im1 86 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/Annots [87 0 R 88 0 R]
/MediaBox [0 0 612 777.60004]
>>
endobj
17 0 obj
<<
/Contents [89 0 R 90 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
>>
/XObject <<
/I1 91 0 R
/Im2 92 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/Annots [93 0 R]
/MediaBox [0 0 612 777.60004]
>>
endobj
18 0 obj
<<
/Contents [94 0 R 95 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
>>
/XObject <<
/I1 96 0 R
/Im2 97 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/MediaBox [0 0 612 777.60004]
>>
endobj
19 0 obj
<<
/Contents [98 0 R 99 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
/F3 100 0 R
/F4 101 0 R
>>
/XObject <<
/Im1 102 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/MediaBox [0 0 612 777.60004]
>>
endobj
20 0 obj
<<
/Contents [103 0 R 104 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
/F3 100 0 R
>>
/XObject <<
/Im1 105 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/MediaBox [0 0 612 777.60004]
>>
endobj
21 0 obj
<<
/Contents [106 0 R 107 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageB /ImageC]
/Font <<
/F0 62 0 R
/F2 64 0 R
>>
/XObject <<
/I1 108 0 R
/Im2 109 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/MediaBox [0 0 612 777.60004]
>>
endobj
22 0 obj
<<
/Contents [110 0 R 111 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageB /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
>>
/XObject <<
/I1 112 0 R
/Im2 113 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/MediaBox [0 0 612 777.60004]
>>
endobj
23 0 obj
<<
/Contents [114 0 R 115 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageB /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
>>
/XObject <<
/I1 116 0 R
/Im2 117 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/Annots [118 0 R]
/MediaBox [0 0 612 777.60004]
>>
endobj
24 0 obj
<<
/Contents [119 0 R 120 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageB /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
>>
/XObject <<
/I1 121 0 R
/Im2 122 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/MediaBox [0 0 612 777.60004]
>>
endobj
25 0 obj
<<
/Contents [123 0 R 124 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageC]
/Font <<
/F0 62 0 R
/F2 64 0 R
>>
/XObject <<
/I1 125 0 R
/Im2 126 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/MediaBox [0 0 612 777.60004]
>>
endobj
26 0 obj
<<
/Contents [127 0 R 128 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
/F3 100 0 R
>>
/XObject <<
/Im1 129 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/MediaBox [0 0 612 777.60004]
>>
endobj
27 0 obj
<<
/Contents [130 0 R 131 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
>>
/XObject <<
/I1 132 0 R
/Im2 133 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/MediaBox [0 0 612 777.60004]
>>
endobj
28 0 obj
<<
/Contents [134 0 R 135 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
>>
/XObject <<
/I1 136 0 R
/Im2 137 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/MediaBox [0 0 612 777.60004]
>>
endobj
29 0 obj
<<
/Contents [138 0 R 139 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageB /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
>>
/XObject <<
/I1 140 0 R
/Im2 141 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/MediaBox [0 0 612 777.60004]
>>
endobj
30 0 obj
<<
/Contents [142 0 R 143 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
/F3 100 0 R
>>
/XObject <<
/Im1 144 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/MediaBox [0 0 612 777.60004]
>>
endobj
31 0 obj
<<
/Contents [145 0 R 146 0 R]
/BleedBox [0 0 612 777.60004]
/Type /Page
/Resources <<
/ProcSet [/PDF /Text /ImageC]
/Font <<
/F0 62 0 R
/F1 63 0 R
/F2 64 0 R
/F5 147 0 R
>>
/XObject <<
/Im1 148 0 R
>>
>>
/Parent 10 0 R
/CropBox [0 0 612 777.60004]
/MediaBox [0 0 612 777.60004]
>>
endobj
32 0 obj
<<
/D [31 0 R /XYZ null 777.60004 null]
>>
endobj
33 0 obj
<<
/D [18 0 R /XYZ null 298.36508 null]
>>
endobj
34 0 obj
<<
/D [18 0 R /XYZ null 133.86505 null]
>>
endobj
35 0 obj
<<
/D [19 0 R /XYZ null 573.10004 null]
>>
endobj
36 0 obj
<<
/D [19 0 R /XYZ null 138.80005 null]
>>
endobj
37 0 obj
<<
/D [20 0 R /XYZ null 677.10004 null]
>>
endobj
38 0 obj
<<
/D [20 0 R /XYZ null 541.10004 null]
>>
endobj
39 0 obj
<<
/D [22 0 R /XYZ null 302.16132 null]
>>
endobj
40 0 obj
<<
/D [24 0 R /XYZ null 723.60004 null]
>>
endobj
41 0 obj
<<
/D [24 0 R /XYZ null 436.55005 null]
>>
endobj
42 0 obj
<<
/D [26 0 R /XYZ null 706.80005 null]
>>
endobj
43 0 obj
<<
/D [26 0 R /XYZ null 624.30005 null]
>>
endobj
44 0 obj
<<
/D [27 0 R /XYZ null 358.39032 null]
>>
endobj
45 0 obj
<<
/D [28 0 R /XYZ null 382.01135 null]
>>
endobj
46 0 obj
<<
/D [15 0 R /XYZ null 462.80005 null]
>>
endobj
47 0 obj
<<
/D [29 0 R /XYZ null 426.69171 null]
>>
endobj
48 0 obj
<<
/D [29 0 R /XYZ null 315.89172 null]
>>
endobj
49 0 obj
<<
/D [29 0 R /XYZ null 119.09174 null]
>>
endobj
50 0 obj
<<
/D [15 0 R /XYZ null 308.30005 null]
>>
endobj
51 0 obj
<<
/D [16 0 R /XYZ null 546.80005 null]
>>
endobj
52 0 obj
<<
/D [16 0 R /XYZ null 464.30005 null]
>>
endobj
53 0 obj
<<
/D [16 0 R /XYZ null 370.30005 null]
>>
endobj
54 0 obj
<<
/D [17 0 R /XYZ null 655.60004 null]
>>
endobj
55 0 obj
<<
/D [18 0 R /XYZ null 723.60004 null]
>>
endobj
56 0 obj
<<
/A <<
/S /GoTo
/D (d16e3a1310_d4e168)
>>
/C [0 0 0]
/Count 2
/Next 149 0 R
/Title (Audio output options)
/Parent 4 0 R
/First 150 0 R
/Prev 12 0 R
/Last 151 0 R
>>
endobj
57 0 obj
<<
/A <<
/S /GoTo
/D (d8e3a1310_d4e93)
>>
/C [0 0 0]
/Next 58 0 R
/Title (Ping-pong buffers)
/Parent 12 0 R
>>
endobj
58 0 obj
<<
/A <<
/S /GoTo
/D (d9e3a1310_d4e93)
>>
/C [0 0 0]
/Title (Direct memory access \(DMA\))
/Parent 12 0 R
/Prev 57 0 R
>>
endobj
59 0 obj
<<
/A <<
/S /GoTo
/D (d61e3a1310_d4e468)
>>
/C [0 0 0]
/Next 14 0 R
/Title (Conclusion)
/Parent 4 0 R
/Prev 152 0 R
>>
endobj
60 0 obj
<<
/Filter /FlateDecode
/Length 4721
>>
stream
xڭ[vG}G:7qϑI~(Bꯟ{#k@mXn܈*sꨵjUv1*xe2E@+\\-KtEԟ%vuc'wUǺ:`gnw:Wz;v3S71`j6*:njWI-}o[ة~8-v'u8Vm` u}Z+߬zRw
~ m^+
+]ukݏn#l(^-_V
_".Rzw>EQ[njժ=.QZ~qt_ݴvwZ~DVz^y"5zמGuخ7[-7V?ۇz
5x.}{Xߵņz3c6.~jUׇڮwN6ULۿNdAC[4A~3$JHw97G'5}x:,Ma?Q[̀_LZp|@? HAwb$GYD0!C_,ln!|^^G130;,!{1 dm#vq*u.KcvՃimQnOZ,G°j{Ԁڡ|˹]`˶T^
FL=푑 Ja =, .CVӂ*p9f;
,5tmR@Rb%%Cֿ gZrdWkaRY7-&16)W\!G~ͷ?`?Wghj|,(SuoO3qcb6jouꤾ{!>7h`{/uLvC.vH]s0"M/?Q_}]ln8e/H"9 -M
{K͏{ā7o_*ml1_T)RX?l@:]]Lp*TGVׯT_J8;V=pl%.홦NRKkL~`^wv]lV~'B{nssًwԫcŧ3VwM{%3.aiHVO 9WOiziTj9k}xtx,.2di_v2 i* u-?m鄳.L