83 #define MAJOR_REVISION 1
84 #define MINOR_REVISION 0
105 u8
font[1024] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
106 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
107 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
108 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
109 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
110 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
111 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
112 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
113 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
114 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
115 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
116 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
117 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
118 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
119 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
120 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
121 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
122 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
123 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
124 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
125 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
126 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
127 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
128 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
129 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
130 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
131 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
132 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
133 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
134 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
135 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
136 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
137 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
138 0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x00,
139 0x00,0x00,0x03,0x00,0x03,0x00,0x00,0x00,
140 0x64,0x3c,0x26,0x64,0x3c,0x26,0x24,0x00,
141 0x26,0x49,0x49,0x7f,0x49,0x49,0x32,0x00,
142 0x42,0x25,0x12,0x08,0x24,0x52,0x21,0x00,
143 0x20,0x50,0x4e,0x55,0x22,0x58,0x28,0x00,
144 0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,
145 0x00,0x00,0x1c,0x22,0x41,0x00,0x00,0x00,
146 0x00,0x00,0x00,0x41,0x22,0x1c,0x00,0x00,
147 0x00,0x15,0x15,0x0e,0x0e,0x15,0x15,0x00,
148 0x00,0x08,0x08,0x3e,0x08,0x08,0x00,0x00,
149 0x00,0x00,0x00,0x50,0x30,0x00,0x00,0x00,
150 0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x00,
151 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,
152 0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00,
153 0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00,
154 0x00,0x00,0x41,0x7f,0x40,0x00,0x00,0x00,
155 0x00,0x42,0x61,0x51,0x49,0x6e,0x00,0x00,
156 0x00,0x22,0x41,0x49,0x49,0x36,0x00,0x00,
157 0x00,0x18,0x14,0x12,0x7f,0x10,0x00,0x00,
158 0x00,0x27,0x49,0x49,0x49,0x71,0x00,0x00,
159 0x00,0x3c,0x4a,0x49,0x48,0x70,0x00,0x00,
160 0x00,0x43,0x21,0x11,0x0d,0x03,0x00,0x00,
161 0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00,
162 0x00,0x06,0x09,0x49,0x29,0x1e,0x00,0x00,
163 0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,
164 0x00,0x00,0x00,0x52,0x30,0x00,0x00,0x00,
165 0x00,0x00,0x08,0x14,0x14,0x22,0x00,0x00,
166 0x00,0x14,0x14,0x14,0x14,0x14,0x14,0x00,
167 0x00,0x00,0x22,0x14,0x14,0x08,0x00,0x00,
168 0x00,0x02,0x01,0x59,0x05,0x02,0x00,0x00,
169 0x3e,0x41,0x5d,0x55,0x4d,0x51,0x2e,0x00,
170 0x40,0x7c,0x4a,0x09,0x4a,0x7c,0x40,0x00,
171 0x41,0x7f,0x49,0x49,0x49,0x49,0x36,0x00,
172 0x1c,0x22,0x41,0x41,0x41,0x41,0x22,0x00,
173 0x41,0x7f,0x41,0x41,0x41,0x22,0x1c,0x00,
174 0x41,0x7f,0x49,0x49,0x5d,0x41,0x63,0x00,
175 0x41,0x7f,0x49,0x09,0x1d,0x01,0x03,0x00,
176 0x1c,0x22,0x41,0x49,0x49,0x3a,0x08,0x00,
177 0x41,0x7f,0x08,0x08,0x08,0x7f,0x41,0x00,
178 0x00,0x41,0x41,0x7F,0x41,0x41,0x00,0x00,
179 0x30,0x40,0x41,0x41,0x3F,0x01,0x01,0x00,
180 0x41,0x7f,0x08,0x0c,0x12,0x61,0x41,0x00,
181 0x41,0x7f,0x41,0x40,0x40,0x40,0x60,0x00,
182 0x41,0x7f,0x42,0x0c,0x42,0x7f,0x41,0x00,
183 0x41,0x7f,0x42,0x0c,0x11,0x7f,0x01,0x00,
184 0x1c,0x22,0x41,0x41,0x41,0x22,0x1c,0x00,
185 0x41,0x7f,0x49,0x09,0x09,0x09,0x06,0x00,
186 0x0c,0x12,0x21,0x21,0x61,0x52,0x4c,0x00,
187 0x41,0x7f,0x09,0x09,0x19,0x69,0x46,0x00,
188 0x66,0x49,0x49,0x49,0x49,0x49,0x33,0x00,
189 0x03,0x01,0x41,0x7f,0x41,0x01,0x03,0x00,
190 0x01,0x3f,0x41,0x40,0x41,0x3f,0x01,0x00,
191 0x01,0x0f,0x31,0x40,0x31,0x0f,0x01,0x00,
192 0x01,0x1f,0x61,0x14,0x61,0x1f,0x01,0x00,
193 0x41,0x41,0x36,0x08,0x36,0x41,0x41,0x00,
194 0x01,0x03,0x44,0x78,0x44,0x03,0x01,0x00,
195 0x43,0x61,0x51,0x49,0x45,0x43,0x61,0x00,
196 0x00,0x00,0x7f,0x41,0x41,0x00,0x00,0x00,
197 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x00,
198 0x00,0x00,0x41,0x41,0x7f,0x00,0x00,0x00,
199 0x00,0x04,0x02,0x01,0x01,0x02,0x04,0x00,
200 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
201 0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,
202 0x00,0x34,0x4a,0x4a,0x4a,0x3c,0x40,0x00,
203 0x00,0x41,0x3f,0x48,0x48,0x48,0x30,0x00,
204 0x00,0x3c,0x42,0x42,0x42,0x24,0x00,0x00,
205 0x00,0x30,0x48,0x48,0x49,0x3f,0x40,0x00,
206 0x00,0x3c,0x4a,0x4a,0x4a,0x2c,0x00,0x00,
207 0x00,0x00,0x48,0x7e,0x49,0x09,0x00,0x00,
208 0x00,0x26,0x49,0x49,0x49,0x3f,0x01,0x00,
209 0x41,0x7f,0x48,0x04,0x44,0x78,0x40,0x00,
210 0x00,0x00,0x44,0x7d,0x40,0x00,0x00,0x00,
211 0x00,0x00,0x40,0x44,0x3d,0x00,0x00,0x00,
212 0x41,0x7f,0x10,0x18,0x24,0x42,0x42,0x00,
213 0x00,0x40,0x41,0x7f,0x40,0x40,0x00,0x00,
214 0x42,0x7e,0x02,0x7c,0x02,0x7e,0x40,0x00,
215 0x42,0x7e,0x44,0x02,0x42,0x7c,0x40,0x00,
216 0x00,0x3c,0x42,0x42,0x42,0x3c,0x00,0x00,
217 0x00,0x41,0x7f,0x49,0x09,0x09,0x06,0x00,
218 0x00,0x06,0x09,0x09,0x49,0x7f,0x41,0x00,
219 0x00,0x42,0x7e,0x44,0x02,0x02,0x04,0x00,
220 0x00,0x64,0x4a,0x4a,0x4a,0x36,0x00,0x00,
221 0x00,0x04,0x3f,0x44,0x44,0x20,0x00,0x00,
222 0x00,0x02,0x3e,0x40,0x40,0x22,0x7e,0x40,
223 0x02,0x0e,0x32,0x40,0x32,0x0e,0x02,0x00,
224 0x02,0x1e,0x62,0x18,0x62,0x1e,0x02,0x00,
225 0x42,0x62,0x14,0x08,0x14,0x62,0x42,0x00,
226 0x01,0x43,0x45,0x38,0x05,0x03,0x01,0x00,
227 0x00,0x46,0x62,0x52,0x4a,0x46,0x62,0x00,
228 0x00,0x00,0x08,0x36,0x41,0x00,0x00,0x00,
229 0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x00,
230 0x00,0x00,0x00,0x41,0x36,0x08,0x00,0x00,
231 0x00,0x18,0x08,0x08,0x10,0x10,0x18,0x00,
232 0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55
251 char tempString[256];
256 XUartLite uartPortA,uartPortB,uartPortC,uartPortD;
267 XUartLite_Initialize(&uartPortA,XPAR_AXI_UARTLITE_0_DEVICE_ID);
268 XUartLite_ResetFifos(&uartPortA);
269 XUartLite_Initialize(&uartPortB,XPAR_AXI_UARTLITE_1_DEVICE_ID);
270 XUartLite_ResetFifos(&uartPortB);
271 XUartLite_Initialize(&uartPortC,XPAR_AXI_UARTLITE_2_DEVICE_ID);
272 XUartLite_ResetFifos(&uartPortC);
273 XUartLite_Initialize(&uartPortD,XPAR_AXI_UARTLITE_3_DEVICE_ID);
274 XUartLite_ResetFifos(&uartPortD);
278 XGpio_Initialize(&
g_xGpioLed, XPAR_AXI_GPIO_LED_DEVICE_ID);
279 XGpio_SetDataDirection(&
g_xGpioLed, 1, 0x00000000);
287 sprintf(tempString,
"MAXIM CARMEL");
289 sprintf(tempString,
"REFERENCE DESIGN");
322 printf(
"Maxim Carmel (MAXREFDES18#) for the ZedBoard\r\n");
328 uchMOSIBuffer[0]=0x42;
329 uchMOSIBuffer[1]=0x80;
330 uchMOSIBuffer[2]=0x00;
347 printf(
"%c\r\n",uchInput+48);
364 printf(
"%c\r\n",uchInput+48);
382 printf(
"Mode 1: Bipolar current +/-20mA.\r\n");
383 printf(
"IdealIout = 0.5 * (VAIN - 0.5 * VREFIN)/Rsense.\r\n");
384 printf(
"Where Rsense = 42.2OHM for 20%% OVERRANGE, Rsense = 48.7OHM for 5%% OVERRANGE.\r\n");
385 printf(
"VAIN = 4.096V * DAC_CODE/65536.\r\n");
386 printf(
"VREFIN = 4.096V.\r\n");
392 uchMOSIBuffer[0]=0x23;
393 uchMOSIBuffer[1]=0x60;
398 uchMOSIBuffer[0]=0x10 + ((DAC_CODE >> 12) & 0xF);
399 uchMOSIBuffer[1]=(DAC_CODE >> 4) & 0xFF;
400 uchMOSIBuffer[2]=(DAC_CODE << 4) & 0xF0;
409 printf(
"Mode 2: Unipolar current 0 to 20mA.\r\n");
410 printf(
"IdealIout = 0.2625 * (VAIN - 0.05 * VREFIN)/Rsense.\r\n");
411 printf(
"Where Rsense = 42.2OHM for 20%% OVERRANGE, Rsense = 48.7OHM for 5%% OVERRANGE.\r\n");
412 printf(
"VAIN = 4.096V * DAC_CODE/65536.\r\n");
413 printf(
"VREFIN = 4.096V.\r\n");
419 uchMOSIBuffer[0]=0x25;
420 uchMOSIBuffer[1]=0x60;
425 uchMOSIBuffer[0]=0x10 + ((DAC_CODE >> 12) & 0xF);
426 uchMOSIBuffer[1]=(DAC_CODE >> 4) & 0xFF;
427 uchMOSIBuffer[2]=(DAC_CODE << 4) & 0xF0;
436 printf(
"Mode 3: Unipolar current 4 to 20mA.\r\n");
437 printf(
"IdealIout = 0.2625 * (VAIN - 0.05 * VREFIN)/Rsense.\r\n");
438 printf(
"Where Rsense = 42.2OHM for 20%% OVERRANGE, Rsense = 48.7OHM for 5%% OVERRANGE.\r\n");
439 printf(
"VAIN = 4.096V * DAC_CODE/65536.\r\n");
440 printf(
"VREFIN = 4.096V.\r\n");
446 uchMOSIBuffer[0]=0x27;
447 uchMOSIBuffer[1]=0x60;
452 uchMOSIBuffer[0]=0x10 + ((DAC_CODE >> 12) & 0xF);
453 uchMOSIBuffer[1]=(DAC_CODE >> 4) & 0xFF;
454 uchMOSIBuffer[2]=(DAC_CODE << 4) & 0xF0;
467 printf(
"%c\r\n",uchInput+48);
485 printf(
"Mode 5: Bipolar voltage +/-10V.\r\n");
486 printf(
"IdealVout = IdealGain * (VAIN - 0.5 * VREFIN).\r\n");
487 printf(
"Where IdealGain = 6 for 20%% OVERRANGE, IdealGain = 5.25 for 5%% OVERRANGE.\r\n");
488 printf(
"VAIN = 4.096V * DAC_CODE/65536.\r\n");
489 printf(
"VREFIN = 4.096V.\r\n");
495 uchMOSIBuffer[0]=0x2B;
496 uchMOSIBuffer[1]=0x60;
501 uchMOSIBuffer[0]=0x10 + ((DAC_CODE >> 12) & 0xF);
502 uchMOSIBuffer[1]=(DAC_CODE >> 4) & 0xFF;
503 uchMOSIBuffer[2]=(DAC_CODE << 4) & 0xF0;
513 printf(
"Mode 6: Unipolar voltage 0 to 10V.\r\n");
514 printf(
"IdealVout = IdealGain * (VAIN - 0.05 * VREFIN).\r\n");
515 printf(
"Where IdealGain = 3.125 for 20%% OVERRANGE, IdealGain = 2.75 for 5%% OVERRANGE.\r\n");
516 printf(
"VAIN = 4.096V * DAC_CODE/65536.\r\n");
517 printf(
"VREFIN = 4.096V.\r\n");
523 uchMOSIBuffer[0]=0x2D;
524 uchMOSIBuffer[1]=0x60;
529 uchMOSIBuffer[0]=0x10 + ((DAC_CODE >> 12) & 0xF);
530 uchMOSIBuffer[1]=(DAC_CODE >> 4) & 0xFF;
531 uchMOSIBuffer[2]=(DAC_CODE << 4) & 0xF0;
541 printf(
"Mode 7: Unipolar voltage 0 to 5V.\r\n");
542 printf(
"IdealVout = IdealGain * (VAIN - 0.05 * VREFIN).\r\n");
543 printf(
"Where IdealGain = 1.5625 for 20%% OVERRANGE, IdealGain = 1.375 for 5%% OVERRANGE.\r\n");
544 printf(
"VAIN = 4.096V * DAC_CODE/65536.\r\n");
545 printf(
"VREFIN = 4.096V.\r\n");
551 uchMOSIBuffer[0]=0x2F;
552 uchMOSIBuffer[1]=0x60;
557 uchMOSIBuffer[0]=0x10 + ((DAC_CODE >> 12) & 0xF);
558 uchMOSIBuffer[1]=(DAC_CODE >> 4) & 0xFF;
559 uchMOSIBuffer[2]=(DAC_CODE << 4) & 0xF0;