
Version 1.0
Page 43 of 44
SMT370v2 User Manual
printf("Address BufferC : %08x\n ", BufferC);
printf("Address BufferD : %08x\n ", BufferD);
printf("Make sure buffers are in Internal Memory - allow better performance\n");
printf("\n SMT370 \n");
printf(" ================\n");
printf("Loading Registers \n");
link_out_word(REGISTER_0,
COMM_PORT0);
link_out_word(REGISTER_1,
COMM_PORT0);
link_out_word(REGISTER_2,
COMM_PORT0);
link_out_word(REGISTER_3,
COMM_PORT0);
link_out_word(REGISTER_4,
COMM_PORT0);
link_out_word(REGISTER_5,
COMM_PORT0);
link_out_word(REGISTER_6,
COMM_PORT0);
link_out_word(REGISTERPATTERN_SIZE, COMM_PORT0);
printf("Passing Register values to DAC and clock synthesizers \n");
link_out_word(REGISTER_F,
COMM_PORT0);
par_printf("Reading Back DAC SPI Registers \n");
link_out_word(REGISTER_E,
COMM_PORT0);
index=0;
printf("Waiting for words \n");
printf("CP0 status : %08x\n ", (*SMT365CP0_STAT));
while( ((*SMT365CP0_STAT) & (CP0_STAT_IFE)) != 0x00000000 ) {
link_in_word(&ReadBackWord,
COMM_PORT0);
printf("CP0 status : %08x \tWord %d \t: %08x \n ", (*SMT365CP0_STAT), index, ReadBackWord);
index++;
}
printf("Generating sine waves with DAC\n");
printf("Filling up Buffer A and B\n");
for (i=0;i<PATTERN_SIZE;i++)
*(i)=((int)(32*1024*(sin(2*3.14*(2*i)/(PATTERN_SIZE/SINE_RATIO)))))
+ (((int)(32*1024*(sin(2*3.14*(2*i+1)/(PATTERN_SIZE/SINE_RATIO)))))<<16);
for (i=0;i<PATTERN_SIZE;i++)
*(i)=((int)(32*1024*(sin(2*3.14*(2*i)/(PATTERN_SIZE/SINE_RATIO)))))
+ (((int)(32*1024*(sin(2*3.14*(2*i+1)/(PATTERN_SIZE/SINE_RATIO)))))<<16);
printf("Loading pattern into memory SMT370\n");
printf("Clearing outgoing SDB Fifos and setting SDB clock to 100MHz\n");
SMT_SDB_Control(Sdb2,
SDB_CLROF|SDB_CLK);
SMT_SDB_Control(Sdb3,
SDB_CLROF|SDB_CLK);
SMT_SDB_Write (Sdb3, PATTERN_SIZE, BufferA);
SMT_SDB_Write (Sdb2, PATTERN_SIZE, BufferB);
printf("Starting Pattern Generator\n");