]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/performance-audio-sr.git/blob - pasdk/test_dsp/application/itopo/evmk2g/io.c
Merge branch 'dev_pasdk_govind' into dev_pasdk_frank
[processor-sdk/performance-audio-sr.git] / pasdk / test_dsp / application / itopo / evmk2g / io.c
2 /*
3 Copyright (c) 2016, Texas Instruments Incorporated - http://www.ti.com/
4 All rights reserved.
6 * Redistribution and use in source and binary forms, with or without 
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the
16 * distribution.
17 *
18 * Neither the name of Texas Instruments Incorporated nor the names of
19 * its contributors may be used to endorse or promote products derived
20 * from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 *
34 */
36 //
37 // Input / output device configuration definitions
38 //
40 //#include <ti/procsdk_audio/procsdk_audio_typ.h>
41 #include <procsdk_audio_typ.h>
43 #include <acptype.h>
44 #include <acpbeta.h>
45 #include <pafstd_a.h>
46 #include <pafdec_a.h>
47 #include <pafenc_a.h>
48 #include <pafsio.h>
50 #include <alpha/pcm_a.h>
52 #include <inpbuf_a.h>
53 #include <outbuf_a.h>
55 #include <pa_i13_evmk2g_io_a.h> //<pa_i13_evmda830_io_a.h>
57 #ifndef SIMULATE_SIO
58 #include <sap_d10.h>
59 #else // SIMULATE_SIO
60 #include <dap_e17.h>
61 #endif // SIMULATE_SIO
63 #define  rb32DECSourceDecode 0xc024,0x0b81
64 #define  ob32DECSourceDecodeNone 0x0001,0x0000
66 #define  rb32IBSioSelect 0xc022,0x0581
67 #define  ob32IBSioSelect(X) (X)|0x0080,0x0000
69 #define  ob32OBSioSelect(X) (X)|0x0080,0x0000
70 #define  rb32DECSourceSelect_3 0xc024,0x09b1
71 #define  wb32DECSourceSelect_3 0xc024,0x09f1
73 #define writePA3Await(RB32,WB32) 0xcd0b,5+2,0x0204,200,10,WB32,RB32
75 // -----------------------------------------------------------------------------
76 //
77 // Input device configurations & shortcut definitions
78 //
80 #ifndef SIMULATE_SIO
81 const struct
82 {
83     Int n;
84     const PAF_SIO_Params *x[DEVINP_N];
85 } patchs_devinp[1] =
86 {
87     DEVINP_N,
88         // These values reflect the definitions DEVINP_* in pa*io_a.h:
89         NULL,                                               // InNone
90                 (const PAF_SIO_Params *) &SAP_D10_RX_HDMI_STEREO,    // InHDMIStereo
91                 (const PAF_SIO_Params *) &SAP_D10_RX_HDMI,          // InHDMI
92                 (const PAF_SIO_Params *) &SAP_D10_RX_DIR,           // InDigital
93                 (const PAF_SIO_Params *) &SAP_D10_RX_ADC_44100HZ,   // InAnalog
94 };
96 #else // SIMULATE_SIO
97 const struct
98 {
99     Int n;
100     const PAF_SIO_Params *x[DEVINP_N];
101 } patchs_devinp[1] =
103     DEVINP_N,
104         // These values reflect the definitions DEVINP_* in pa*io_a.h:
105         NULL,                                               // InNone
106         NULL, //(const PAF_SIO_Params *) &DAP_E17_RX_DIR,           // InDigital
107         (const PAF_SIO_Params *) &DAP_E17_RX_ADC_48000HZ,   // InAnalog
108         NULL, //(const PAF_SIO_Params *) &DAP_E17_RX_ADC_STEREO_48000HZ,    // InAnalogStereo
109         NULL, //(const PAF_SIO_Params *) &DAP_E17_RX_1394_STEREO,   // In1394Stereo
110         NULL, //(const PAF_SIO_Params *) &DAP_E17_RX_1394,          // In1394
111         NULL,                                                // InRingIO
112         NULL, //(const PAF_SIO_Params *) &DAP_E17_RX_HDMI,          // InHDMI
113         NULL, //(const PAF_SIO_Params *) &DAP_E17_RX_HDMI_STEREO    // InHDMIStereo
114 };
116 #endif // SIMULATE_SIO
118 // .............................................................................
119 // execPAIInNone
120 #define CUS_SIGMA32_S \
121     writeDECSourceSelectNone, \
122     writeIBSioSelectN(DEVINP_NULL), \
123     0xcdf0,execPAIInNone
125 #pragma DATA_SECTION(cus_sigma32_s0, ".none")
126 const ACP_Unit cus_sigma32_s0[] = {
127     0xc900 + 0 - 1,
128     CUS_SIGMA32_S,
129 };
131 const ACP_Unit cus_sigma32_s[] = {
132     0xc900 + sizeof (cus_sigma32_s0) / 2 - 1,
133     CUS_SIGMA32_S,
134 };
136 #ifndef SIMULATE_SIO
137 // execPAIInHDMIStereo
138 #define CUS_SIGMA33_S \
139     writeDECSourceSelectNone, \
140     writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
141         writePCMChannelConfigurationProgramStereoUnknown, \
142     writePCMScaleVolumeN(0), \
143     writeDECChannelMapFrom2(0,1), \
144     writeIBUnknownTimeoutN(8*1024), \
145     writeIBScanAtHighSampleRateModeEnable, \
146     writeIBEmphasisOverrideNo, \
147     writeIBPrecisionOverride24, \
148         writeIBSampleRateOverrideStandard, \
149     writeIBSioSelectN(DEVINP_HDMI_STEREO), \
150     wroteDECSourceProgramUnknown, \
151     writeDECSourceSelectAuto, \
152     0xcdf0,execPAIInHDMIStereo
154 #pragma DATA_SECTION(cus_sigma33_s0, ".none")
155 const ACP_Unit cus_sigma33_s0[] = {
156     0xc900 + 0 - 1,
157     CUS_SIGMA33_S,
158 };
160 const ACP_Unit cus_sigma33_s[] = {
161     0xc900 + sizeof (cus_sigma33_s0) / 2 - 1,
162     CUS_SIGMA33_S,
163 };
165 // execPAIInHDMI
166 #define CUS_SIGMA34_S \
167     writeDECSourceSelectNone, \
168     writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
169     writePCMChannelConfigurationProgramSurround4_1, \
170     writePCMScaleVolumeN(0), \
171     writeDECChannelMapFrom16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
172     writeIBUnknownTimeoutN(15*1024), \
173     writeIBScanAtHighSampleRateModeEnable, \
174     writeIBEmphasisOverrideNo, \
175     writeIBPrecisionOverride24, \
176     writeIBSampleRateOverrideStandard, \
177     writeIBSioSelectN(DEVINP_HDMI), \
178     wroteDECSourceProgramUnknown, \
179     writeDECSourceSelectAuto, \
180     0xcdf0,execPAIInHDMI
182 // writeDECChannelMapFrom16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
183 #pragma DATA_SECTION(cus_sigma34_s0, ".none")
184 const ACP_Unit cus_sigma34_s0[] = {
185     0xc900 + 0 - 1,
186     CUS_SIGMA34_S,
187 };
189 const ACP_Unit cus_sigma34_s[] = {
190     0xc900 + sizeof (cus_sigma34_s0) / 2 - 1,
191     CUS_SIGMA34_S,
192 };
194 // execPAIInDigital
195 #define CUS_SIGMA35_S \
196   writeDECSourceSelectNone, \
197     writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
198     writeIBUnknownTimeoutN(2*2048), \
199     writeIBScanAtHighSampleRateModeDisable, \
200     writePCMChannelConfigurationProgramStereoUnknown, \
201     writePCMScaleVolumeN(0), \
202     writeDECChannelMapFrom16(0,1,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3), \
203     writeIBEmphasisOverrideDisable, \
204     writeIBPrecisionDefaultOriginal, \
205     writeIBPrecisionOverrideDetect, \
206     writeIBSampleRateOverrideStandard, \
207     writeIBSioSelectN(DEVINP_DIR), \
208     wroteDECSourceProgramUnknown, \
209     writeDECSourceSelectAuto, \
210     0xcdf0,execPAIInDigital
212 #pragma DATA_SECTION(cus_sigma35_s0, ".none")
213 const ACP_Unit cus_sigma35_s0[] = {
214     0xc900 + 0 - 1,
215     CUS_SIGMA35_S,
216 };
218 const ACP_Unit cus_sigma35_s[] = {
219     0xc900 + sizeof (cus_sigma35_s0) / 2 - 1,
220     CUS_SIGMA35_S,
221 };
223 // execPAIInAnalog
224 #define CUS_SIGMA36_S \
225     writeDECSourceSelectNone, \
226     writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
227     writePCMChannelConfigurationProgramSurround4_1, \
228     writePCMScaleVolumeN(2*6), \
229     writeDECChannelMapFrom16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
230     writeIBEmphasisOverrideNo, \
231     writeIBPrecisionOverride24, \
232     writeIBSampleRateOverride44100Hz, \
233     writeIBSioSelectN(DEVINP_ADC), \
234     writeDECSourceSelectPCM,        \
235     0xcdf0,execPAIInAnalog
237 #pragma DATA_SECTION(cus_sigma36_s0, ".none")
238 const ACP_Unit cus_sigma36_s0[] = {
239     0xc900 + 0 - 1,
240     CUS_SIGMA36_S,
241 };
243 const ACP_Unit cus_sigma36_s[] = {
244     0xc900 + sizeof (cus_sigma36_s0) / 2 - 1,
245     CUS_SIGMA36_S,
246 };
248 #else // SIMULATE_SIO
249 // execPAIInDigital
250 #define CUS_SIGMA33_S \
251   writeDECSourceSelectNone, \
252     writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
253     writeIBUnknownTimeoutN(2*2048), \
254     writeIBScanAtHighSampleRateModeDisable, \
255     writePCMChannelConfigurationProgramStereoUnknown, \
256     writePCMScaleVolumeN(0), \
257     writeDECChannelMapFrom16(0,1,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3), \
258     writeIBEmphasisOverrideDisable, \
259     writeIBPrecisionDefaultOriginal, \
260     writeIBPrecisionOverrideDetect, \
261     writeIBSampleRateOverrideStandard, \
262     writeIBSioSelectN(DEVINP_DIR), \
263     wroteDECSourceProgramUnknown, \
264     writeDECSourceSelectAuto, \
265     0xcdf0,execPAIInDigital
267 #pragma DATA_SECTION(cus_sigma33_s0, ".none")
268 const ACP_Unit cus_sigma33_s0[] = {
269     0xc900 + 0 - 1,
270     CUS_SIGMA33_S,
271 };
273 const ACP_Unit cus_sigma33_s[] = {
274     0xc900 + sizeof (cus_sigma33_s0) / 2 - 1,
275     CUS_SIGMA33_S,
276 };
278 // execPAIInAnalog
279 #define CUS_SIGMA34_S \
280     writeDECSourceSelectNone, \
281     writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
282     writePCMChannelConfigurationProgramSurround4_1, \
283     writePCMScaleVolumeN(2*6), \
284     writeDECChannelMapFrom16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
285     writeIBEmphasisOverrideNo, \
286     writeIBPrecisionOverride24, \
287     writeIBSampleRateOverride48000Hz, \
288     writeIBSioSelectN(DEVINP_ADC1), \
289     writeDECSourceSelectPCM,        \
290     0xcdf0,execPAIInAnalog
292 #pragma DATA_SECTION(cus_sigma34_s0, ".none")
293 const ACP_Unit cus_sigma34_s0[] = {
294     0xc900 + 0 - 1,
295     CUS_SIGMA34_S,
296 };
298 const ACP_Unit cus_sigma34_s[] = {
299     0xc900 + sizeof (cus_sigma34_s0) / 2 - 1,
300     CUS_SIGMA34_S,
301 };
303 // execPAIInAnalogStereo
304 #define CUS_SIGMA35_S \
305     writeDECSourceSelectNone, \
306     writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
307     writePCMChannelConfigurationProgramStereoUnknown, \
308     writePCMScaleVolumeN(2*6), \
309     writeDECChannelMapFrom16(0,1,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3), \
310     writeIBEmphasisOverrideNo, \
311     writeIBPrecisionOverride24, \
312     writeIBSampleRateOverride48000Hz, \
313     writeIBSioSelectN(DEVINP_ADC_STEREO), \
314     writeDECSourceSelectPCM,                 \
315     0xcdf0,execPAIInAnalogStereo
317 #pragma DATA_SECTION(cus_sigma35_s0, ".none")
318 const ACP_Unit cus_sigma35_s0[] = {
319     0xc900 + 0 - 1,
320     CUS_SIGMA35_S,
321 };
323 const ACP_Unit cus_sigma35_s[] = {
324     0xc900 + sizeof (cus_sigma35_s0) / 2 - 1,
325     CUS_SIGMA35_S,
326 };
328 // execPAIInSing
329 #define CUS_SIGMA38_S \
330     writeDECSourceSelectNone, \
331     writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
332     writeIBEmphasisOverrideNo, \
333     writeIBPrecisionOverride24, \
334     writeIBSampleRateOverride48000Hz, \
335     writeIBSioSelectN(DEVINP_ADC1), \
336     writeDECSourceSelectSing, \
337     0xcdf0,execPAIInSing
339 #pragma DATA_SECTION(cus_sigma38_s0, ".none")
340 const ACP_Unit cus_sigma38_s0[] = {
341     0xc900 + 0 - 1,
342     CUS_SIGMA38_S,
343 };
345 const ACP_Unit cus_sigma38_s[] = {
346     0xc900 + sizeof (cus_sigma38_s0) / 2 - 1,
347     CUS_SIGMA38_S,
348 };
350 // execPAIInHDMI
351 #define CUS_SIGMA40_S \
352     writeDECSourceSelectNone, \
353     writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
354     writePCMChannelConfigurationProgramSurround4_1, \
355     writePCMScaleVolumeN(0), \
356     writeDECChannelMapFrom16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
357     writeIBUnknownTimeoutN(15*1024), \
358     writeIBScanAtHighSampleRateModeEnable, \
359     writeIBEmphasisOverrideNo, \
360     writeIBPrecisionOverride24, \
361     writeIBSampleRateOverrideStandard, \
362     writeIBSioSelectN(DEVINP_HDMI), \
363     wroteDECSourceProgramUnknown, \
364     writeDECSourceSelectAuto, \
365     0xcdf0,execPAIInHDMI
367 #pragma DATA_SECTION(cus_sigma40_s0, ".none")
368 const ACP_Unit cus_sigma40_s0[] = {
369     0xc900 + 0 - 1,
370     CUS_SIGMA40_S,
371 };
373 const ACP_Unit cus_sigma40_s[] = {
374     0xc900 + sizeof (cus_sigma40_s0) / 2 - 1,
375     CUS_SIGMA40_S,
376 };
378 // .............................................................................
379 // execPAIIn1394Stereo
380 #define CUS_SIGMA45_S \
381      writeDECSourceSelectNone, \
382     writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
383     writePCMChannelConfigurationProgramStereoUnknown, \
384     writePCMScaleVolumeN(0), \
385     writeDECChannelMapFrom2(0,1), \
386     writeIBUnknownTimeoutN(8*1024), \
387     writeIBScanAtHighSampleRateModeEnable, \
388     writeIBEmphasisOverrideNo, \
389     writeIBPrecisionOverride24, \
390     writeIBSampleRateOverrideStandard, \
391     writeIBSioSelectN(DEVINP_1394_STEREO), \
392     wroteDECSourceProgramUnknown, \
393     writeDECSourceSelectAuto, \
394     0xcdf0,execPAIIn1394Stereo
396 #pragma DATA_SECTION(cus_sigma45_s0, ".none")
397 const ACP_Unit cus_sigma45_s0[] = {
398     0xc900 + 0 - 1,
399     CUS_SIGMA45_S,
400 };
402 const ACP_Unit cus_sigma45_s[] = {
403     0xc900 + sizeof (cus_sigma45_s0) / 2 - 1,
404     CUS_SIGMA45_S,
405 };
408 // execPAIIn1394
409 #define CUS_SIGMA46_S \
410    writeDECSourceSelectNone, \
411     writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
412     writePCMChannelConfigurationProgramSurround4_1, \
413     writePCMScaleVolumeN(0), \
414     writeDECChannelMapFrom16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
415     writeIBUnknownTimeoutN(15*1024), \
416     writeIBScanAtHighSampleRateModeEnable, \
417     writeIBEmphasisOverrideNo, \
418     writeIBPrecisionOverride24, \
419     writeIBSampleRateOverrideStandard, \
420     writeIBSioSelectN(DEVINP_1394), \
421     wroteDECSourceProgramUnknown, \
422     writeDECSourceSelectAuto, \
423     0xcdf0,execPAIIn1394
425 #pragma DATA_SECTION(cus_sigma46_s0, ".none")
426 const ACP_Unit cus_sigma46_s0[] = {
427     0xc900 + 0 - 1,
428     CUS_SIGMA46_S,
429 };
431 const ACP_Unit cus_sigma46_s[] = {
432     0xc900 + sizeof (cus_sigma46_s0) / 2 - 1,
433     CUS_SIGMA46_S,
434 };
436 #endif // SIMULATE_SIO
439 // -----------------------------------------------------------------------------
440 //
441 // Output device configurations & shortcut definitions
442 //
444 #ifndef SIMULATE_SIO
445 const struct
447     Int n;
448     const PAF_SIO_Params *x[DEVOUT_N];
449 } patchs_devout[1] =
451     DEVOUT_N,
452         // These values reflect the definitions DEVOUT_* in pa*io_a.h:
453         NULL,                                               // OutNone
454         (const PAF_SIO_Params *) &SAP_D10_TX_DAC,           // OutAnalog
455                 (const PAF_SIO_Params *) &SAP_D10_TX_DAC_SLAVE,           // OutAnalogSlave
456                 (const PAF_SIO_Params *) &SAP_D10_TX_DAC_12CH,           // OutAnalog_12ch
457                 (const PAF_SIO_Params *) &SAP_D10_TX_DAC_16CH,           // OutAnalog_16ch
458 };
460 #else // SIMULATE_SIO
462 const struct
464     Int n;
465     const PAF_SIO_Params *x[DEVOUT_N];
466 } patchs_devout[1] =
468     DEVOUT_N,
469         // These values reflect the definitions DEVOUT_* in pa*io_a.h:
470         NULL,                                               // OutNone
471         (const PAF_SIO_Params *) &DAP_E17_TX_DAC,           // OutAnalog
472         NULL, //(const PAF_SIO_Params *) &DAP_E17_TX_DIT,           // OutDigital
473         NULL, //(const PAF_SIO_Params *) &DAP_E17_TX_DAC_SLAVE,     // OutAnalogSlave
474         NULL, //(const PAF_SIO_Params *) &DAP_E17_TX_STEREO_DAC_SLAVE,  // OutAnalogSlaveStereo
475         NULL, //(const PAF_SIO_Params *) &DAP_E17_TX_2STEREO_DAC_SLAVE, // OutAnalogSlave2Stereo
476         NULL,                // OutRingIO
477         NULL,               // OutRingIO
478         NULL,               // OutRingIO
479         NULL, //(const PAF_SIO_Params *) &DAP_E17_TX_4TDM,             // OutTdm4
480         NULL, //(const PAF_SIO_Params *) &DAP_E17_TX_8TDM,             // OutTdm8
481 };
483 #endif // SIMULATE_SIO
485 // .............................................................................
486 #if 0 // (***) FL: remove change in Dec sourceSelect since this will cause break in TaskAsip
487 // execPAIOutNone
488 #define CUS_SIGMA48_S \
489     rb32DECSourceSelect_3, \
490     writeDECSourceSelectNone, \
491     writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
492     writeOBSioSelectN(DEVOUT_NULL), \
493     wb32DECSourceSelect_3, \
494     0xcdf0,execPAIOutNone
495 #else
496 // execPAIOutNone
497 #define CUS_SIGMA48_S \
498     writeOBSioSelectN(DEVOUT_NULL), \
499     writePA3Await(rb32OBSioSelect,ob32OBSioSelect(DEVOUT_NULL)), \
500     0xcdf0,execPAIOutNone
501 #endif    
502     
503 #pragma DATA_SECTION(cus_sigma48_s0, ".none")
504 const ACP_Unit cus_sigma48_s0[] = {
505     0xc900 + 0 - 1,
506     CUS_SIGMA48_S,
507 };
509 const ACP_Unit cus_sigma48_s[] = {
510     0xc900 + sizeof (cus_sigma48_s0) / 2 - 1,
511     CUS_SIGMA48_S,
512 };
514 #ifndef SIMULATE_SIO
515 // .............................................................................
516 // execPAIOutAnalog
517     #ifdef TEST_MULTICHANNEL
518         #if 0  // (***) FL: remove change in Dec sourceSelect since this will cause break in TaskAsip
519         #define CUS_SIGMA49_S \
520             rb32DECSourceSelect_3, \
521             writeDECSourceSelectNone, \
522             writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
523             writeOBSioSelectN(DEVOUT_DAC), \
524             writeENCChannelMapTo16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
525             wb32DECSourceSelect_3, \
526             0xcdf0,execPAIOutAnalog
527         #else
528         #define CUS_SIGMA49_S \
529             writeOBSioSelectN(DEVOUT_DAC), \
530             writeENCChannelMapTo16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
531             0xcdf0,execPAIOutAnalog
532         #endif
533     #else // TEST_MULTICHANNEL
534         #define CUS_SIGMA49_S \
535             rb32DECSourceSelect_3, \
536             writeDECSourceSelectNone, \
537             writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
538             writeOBSioSelectN(2), \
539             writeENCChannelMapTo16(0,1,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3), \
540             wb32DECSourceSelect_3, \
541             0xcdf0,execPAIOutAnalog
542         #endif // TEST_MULTICHANNEL
544 #else // SIMULATE_SIO
545     #if 0 // (***) FL: remove change in Dec sourceSelect since this will cause break in TaskAsip
546     #define CUS_SIGMA49_S \
547         rb32DECSourceSelect_3, \
548         writeDECSourceSelectNone, \
549         writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
550         writeOBSioSelectN(1), \
551         writeENCChannelMapTo16(3,7,2,6,1,5,0,4,-3,-3,-3,-3,-3,-3,-3,-3), \
552         wb32DECSourceSelect_3, \
553         0xcdf0,execPAIOutAnalog
554     #else
555     #define CUS_SIGMA49_S \
556         writeOBSioSelectN(1), \
557         writePA3Await(rb32OBSioSelect,ob32OBSioSelect(1)), \
558         writeENCChannelMapTo16(3,7,2,6,1,5,0,4,-3,-3,-3,-3,-3,-3,-3,-3), \
559         0xcdf0,execPAIOutAnalog
560     #endif    
561     
562 #endif // SIMULATE_SIO
564 #pragma DATA_SECTION(cus_sigma49_s0, ".none")
565 const ACP_Unit cus_sigma49_s0[] = {
566     0xc900 + 0 - 1,
567     CUS_SIGMA49_S,
568 };
570 const ACP_Unit cus_sigma49_s[] = {
571     0xc900 + sizeof (cus_sigma49_s0) / 2 - 1,
572     CUS_SIGMA49_S,
573 };
576 // .............................................................................
577 // execPAIOutAnalogSlave
578 #if 0 // (***) FL: remove change in Dec sourceSelect since this will cause break in TaskAsip
579 #define CUS_SIGMA50_S \
580     rb32DECSourceSelect_3, \
581     writeDECSourceSelectNone, \
582     writePA3Await(rb32DECSourceDecode,ob32DECSourceDecodeNone), \
583     writeOBSioSelectN(DEVOUT_DAC_SLAVE), \
584         writeENCChannelMapTo16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
585     wb32DECSourceSelect_3, \
586     0xcdf0,execPAIOutAnalogSlave
587 #else
588 #define CUS_SIGMA50_S \
589     writeOBSioSelectN(DEVOUT_DAC_SLAVE), \
590         writeENCChannelMapTo16(0,4,1,5,2,6,3,7,-3,-3,-3,-3,-3,-3,-3,-3), \
591     0xcdf0,execPAIOutAnalogSlave
592 #endif    
594 #pragma DATA_SECTION(cus_sigma50_s0, ".none")
595 const ACP_Unit cus_sigma50_s0[] = {
596     0xc900 + 0 - 1,
597     CUS_SIGMA50_S,
598 };
600 const ACP_Unit cus_sigma50_s[] = {
601     0xc900 + sizeof (cus_sigma50_s0) / 2 - 1,
602     CUS_SIGMA50_S,
603 };
605 // .............................................................................
606 // execPAIOutAnalog12Ch
607 #define CUS_SIGMA51_S \
608     writeOBSioSelectN(DEVOUT_DAC_12CH), \
609         writeENCChannelMapTo16(0,6,1,7,2,8,3,9,4,10,5,11,-3,-3,-3,-3), \
610     0xcdf0,execPAIOutAnalog12Ch
612 #pragma DATA_SECTION(cus_sigma51_s0, ".none")
613 const ACP_Unit cus_sigma51_s0[] = {
614     0xc900 + 0 - 1,
615     CUS_SIGMA51_S,
616 };
618 const ACP_Unit cus_sigma51_s[] = {
619     0xc900 + sizeof (cus_sigma51_s0) / 2 - 1,
620     CUS_SIGMA51_S,
621 };
623 // .............................................................................
624 // execPAIOutAnalog16Ch
625 #define CUS_SIGMA52_S \
626     writeOBSioSelectN(DEVOUT_DAC_16CH), \
627         writeENCChannelMapTo16(0,8,1,9,2,10,3,11,4,12,5,13,6,14,7,15), \
628     0xcdf0,execPAIOutAnalog16Ch
630 #pragma DATA_SECTION(cus_sigma52_s0, ".none")
631 const ACP_Unit cus_sigma52_s0[] = {
632     0xc900 + 0 - 1,
633     CUS_SIGMA52_S,
634 };
636 const ACP_Unit cus_sigma52_s[] = {
637     0xc900 + sizeof (cus_sigma52_s0) / 2 - 1,
638     CUS_SIGMA52_S,
639 };
640 // EOF