qipp
2025-11-07 744722688187eb4991c72464e2bb5e06b244fee7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
 
#include "global.h"
#include <sru.h>
 
asm("#include <def21489.h>");
    
void clearDAIpins(void)
{
//------------------------------------------------------------------------
//  Tie the pin buffer inputs LOW for all DAI pins.  Even though
//    these pins are inputs to the SHARC, tying unused pin buffer inputs
//    LOW is "good coding style" to eliminate the possibility of
//    termination artifacts internal to the IC.  Note that signal
//    integrity is degraded only with a few specific SRU combinations.
//    In practice, this occurs VERY rarely, and these connections are
//    typically unnecessary.  This is GROUP D
    SRU(LOW, DAI_PB01_I);
    SRU(LOW, DAI_PB02_I);
    SRU(LOW, DAI_PB03_I);
    SRU(LOW, DAI_PB04_I);
    SRU(LOW, DAI_PB05_I);
    SRU(LOW, DAI_PB06_I);
    SRU(LOW, DAI_PB07_I);
    SRU(LOW, DAI_PB08_I);
    SRU(LOW, DAI_PB09_I);
    SRU(LOW, DAI_PB10_I);
    SRU(LOW, DAI_PB11_I);
    SRU(LOW, DAI_PB12_I);
    SRU(LOW, DAI_PB13_I);
    SRU(LOW, DAI_PB14_I);
    SRU(LOW, DAI_PB15_I);
    SRU(LOW, DAI_PB16_I);
    SRU(LOW, DAI_PB17_I);
    SRU(LOW, DAI_PB18_I);
    SRU(LOW, DAI_PB19_I);
    SRU(LOW, DAI_PB20_I);
 
//------------------------------------------------------------------------
//  Tie the pin buffer enable inputs LOW for all DAI pins so
//  that they are always input pins.  This is GROUP F.
    SRU(LOW, PBEN01_I);
    SRU(LOW, PBEN02_I);
    SRU(LOW, PBEN03_I);
    SRU(LOW, PBEN04_I);
    SRU(LOW, PBEN05_I);
    SRU(LOW, PBEN06_I);
    SRU(LOW, PBEN07_I);
    SRU(LOW, PBEN08_I);
    SRU(LOW, PBEN09_I);
    SRU(LOW, PBEN10_I);
    SRU(LOW, PBEN11_I);
    SRU(LOW, PBEN12_I);
    SRU(LOW, PBEN13_I);
    SRU(LOW, PBEN14_I);
    SRU(LOW, PBEN15_I);
    SRU(LOW, PBEN16_I);
    SRU(LOW, PBEN17_I);
    SRU(LOW, PBEN18_I);
    SRU(LOW, PBEN19_I);
    SRU(LOW, PBEN20_I);
}
 
 
 
void InitDAI()
{
    clearDAIpins();
    
#if defined(DSP818V2) 
    SRU(DAI_PB15_O, SPORT1_CLK_I);   // DAIP7 (ABCLK) to SPORT1 CLK (RCLK)
    SRU(DAI_PB15_O, SPORT0_CLK_I);   // DAIP7 (ABCLK) to SPORT0 CLK (TCLK)
    SRU(DAI_PB15_O, SPORT2_CLK_I);   // DAIP7 (ABCLK) to SPORT2 CLK (TCLK)
     SRU(DAI_PB15_O, SPORT3_CLK_I);   // DAIP7 (ABCLK) to SPORT2 CLK (TCLK)   
     
    SRU(DAI_PB16_O, SPORT1_FS_I);    // DAIP8 (ALRCLK) to SPORT1 FS (RFS1)
    SRU(DAI_PB16_O, SPORT0_FS_I);    // DAIP8 (ALRCLK) to SPORT0 FS (TFS0)
    SRU(DAI_PB16_O, SPORT2_FS_I);    // DAIP8 (ALRCLK) to SPORT2 FS (TFS2)
    SRU(DAI_PB16_O, SPORT3_FS_I);    // DAIP8 (ALRCLK) to SPORT2 FS (TFS2)
 
    //For Dante CLK
    SRU(DAI_PB15_O, SPORT4_CLK_I);   
    SRU(DAI_PB15_O, SPORT5_CLK_I);  
    SRU(DAI_PB15_O, SPORT6_CLK_I);   
     SRU(DAI_PB15_O, SPORT7_CLK_I);      
 
     //FOR Dante FS
    SRU(DAI_PB16_O, SPORT4_FS_I);   
    SRU(DAI_PB16_O, SPORT5_FS_I);   
    SRU(DAI_PB16_O, SPORT6_FS_I);   
    SRU(DAI_PB16_O, SPORT7_FS_I);    
    
     //FOR Dante RX
    SRU(DAI_PB17_O, SPORT5_DA_I);    
    SRU(DAI_PB18_O, SPORT5_DB_I); 
    SRU(DAI_PB14_O, SPORT7_DA_I);   
    SRU(DAI_PB20_O, SPORT7_DB_I);     
    
    //FOR Dante TX
    SRU(HIGH, PBEN13_I);
    SRU(SPORT4_DA_O, DAI_PB13_I);    // DAIP12 (DSDATA1) to SPORT0 DA (TX)
    SRU(HIGH, PBEN19_I);
    SRU(SPORT4_DB_O, DAI_PB19_I);    // DAIP11 (DSDATA2) to SPORT0 DB (TX) 
    
  
    SRU(HIGH, PBEN01_I);              
    SRU(SPORT6_DA_O, DAI_PB01_I);    // DAIP10 (DSDATA3) to SPORT2 DA (TX)
    SRU(HIGH, PBEN02_I);
    SRU(SPORT6_DB_O, DAI_PB02_I);    // DAIP09 (DSDATA4) to SPORT2 DB (TX) 
#else
    SRU(DAI_PB07_O, SPORT1_CLK_I);   // DAIP7 (ABCLK) to SPORT1 CLK (RCLK)
    SRU(DAI_PB07_O, SPORT0_CLK_I);   // DAIP7 (ABCLK) to SPORT0 CLK (TCLK)
    SRU(DAI_PB07_O, SPORT2_CLK_I);   // DAIP7 (ABCLK) to SPORT2 CLK (TCLK)
     SRU(DAI_PB07_O, SPORT3_CLK_I);   // DAIP7 (ABCLK) to SPORT2 CLK (TCLK)   
 
   
    
    SRU(DAI_PB08_O, SPORT1_FS_I);    // DAIP8 (ALRCLK) to SPORT1 FS (RFS1)
    SRU(DAI_PB08_O, SPORT0_FS_I);    // DAIP8 (ALRCLK) to SPORT0 FS (TFS0)
    SRU(DAI_PB08_O, SPORT2_FS_I);    // DAIP8 (ALRCLK) to SPORT2 FS (TFS2)
    SRU(DAI_PB08_O, SPORT3_FS_I);    // DAIP8 (ALRCLK) to SPORT2 FS (TFS2)
    
#endif 
 
    SRU(DAI_PB05_O, SPORT1_DA_I);    // DAIP5 (ASDATA1) to SPORT1 DA (RX1A)
    SRU(DAI_PB06_O, SPORT1_DB_I);    // DAIP6 (ASDATA2) to SPORT1 DB (RX1B)
 
    SRU(DAI_PB03_O, SPORT3_DA_I);    // DAIP5 (ASDATA1) to SPORT1 DA (RX1A)
    SRU(DAI_PB04_O, SPORT3_DB_I);    // DAIP6 (ASDATA2) to SPORT1 DB (RX1B)
    
 
    SRU(HIGH, PBEN12_I);
    SRU(SPORT0_DA_O, DAI_PB12_I);    // DAIP12 (DSDATA1) to SPORT0 DA (TX)
    SRU(HIGH, PBEN11_I);
    SRU(SPORT0_DB_O, DAI_PB11_I);    // DAIP11 (DSDATA2) to SPORT0 DB (TX) 
    
  
    SRU(HIGH, PBEN10_I);              
    SRU(SPORT2_DA_O, DAI_PB10_I);    // DAIP10 (DSDATA3) to SPORT2 DA (TX)
    SRU(HIGH, PBEN09_I);
    SRU(SPORT2_DB_O, DAI_PB09_I);    // DAIP09 (DSDATA4) to SPORT2 DB (TX)
 
#ifdef DEMO_BOARD
//--------------------------------------------------------------------------
// Route SPI signals to AD1939 Control Port.
    SRU(SPI_MOSI_O, DPI_PB01_I);     //Connect MOSI to DPI PB1.
    SRU(DPI_PB02_O, SPI_MISO_I);     //Connect DPI PB2 to MISO.
    SRU(SPI_CLK_O, DPI_PB03_I);      //Connect SPI CLK to DPI PB3.
    SRU(SPI_FLG0_O, DPI_PB04_I);     //Connect SPI FLAG0 to DPI PB4.
 
    SRU(SPI_MOSI_PBEN_O, DPI_PBEN01_I);
    SRU(SPI_MISO_PBEN_O, DPI_PBEN02_I);
    SRU(SPI_CLK_PBEN_O, DPI_PBEN03_I);
    SRU(SPI_FLG0_PBEN_O, DPI_PBEN04_I);
#elif defined(DSP818V1)
    SRU(DAI_PB13_O,PCG_EXTA_I);
    SRU(HIGH, PBEN07_I);
    SRU(PCG_CLKA_O,DAI_PB07_I);
    SRU(HIGH, PBEN08_I);
    SRU(PCG_FSA_O,DAI_PB08_I);
#elif defined(DSP818V2) && !defined(HAS_DANTE)
     //route PCG
     SRU(HIGH, PBEN08_I);
     SRU(DAI_PB07_O,DAI_PB08_I);
     SRU(DAI_PB07_O,PCG_EXTA_I);
     SRU(HIGH, PBEN15_I);
     SRU(PCG_CLKA_O,DAI_PB15_I);
     SRU(HIGH, PBEN16_I);
     SRU(PCG_FSA_O,DAI_PB16_I);
#endif    
 
   //spiB route.
 
    
    SRU (LOW, DPI_PBEN07_I); 
    SRU (HIGH, DPI_PBEN08_I); 
    SRU (LOW, DPI_PBEN09_I); 
    SRU (LOW, DPI_PBEN10_I); 
    
  //  SRU(SPIB_MOSI_PBEN_O, DPI_PBEN07_I);
  //  SRU(SPIB_MISO_PBEN_O, DPI_PBEN08_I);
  //  SRU(SPIB_CLK_PBEN_O, DPI_PBEN09_I);
  //  SRU(SPIB_FLG0_PBEN_O, DPI_PBEN10_I);
    
    SRU(DPI_PB07_O,SPIB_MOSI_I);
    SRU(SPIB_MISO_O,DPI_PB08_I);     //Connect DPI PB2 to MISO.
    SRU(DPI_PB09_O,SPIB_CLK_I);      //Connect SPI CLK to DPI PB3.
    SRU(DPI_PB10_O,SPIB_DS_I);
 
}