Post Go back to editing

ADAS1000 TESTTONE output

Category: Choose a category

I'm using the ADAS1000SDZ Eval board interfaced with a ATSAME54 Xplained pro microcontroller.

I'm using the No OS driver from the official example code. Using the example to generate the TESTTONE 150Hz sine wave.

I'm using the same register values used in the example code. Framerate is initialized to 16KHz.

I'm able to get the same output as shown in the example code. What I'm expecting according to Table.22 of the ADAS1000 datasheet is a 12word frame. But the example shows 24 words. And I'm only able to see the sine wave in LL(Lead2), in the 15th word. The first 12 words do not contain expected data.

I'm also not able to get a proper square wave when trying to plot the 1Hz square wave output in excel.

Can someone help me with understanding the TESTTONE output of the No OS driver example.

Parents Reply Children
  •  https://wiki.analog.com/resources/tools-software/uc-drivers/renesas/adas1000?do=#dokuwiki__top

    I'm using the example from the above link. And I'm getting the same output shown above from the example.

    With the datasheet example 4 settings I'm stuck while Reading data, which is not my primary concern at the moment. 

    I would like to understand the above data printed on the terminal.

    This is the piece of code from the example printing on the terminal.

    //Ouput the on the UART the frames read from the ADAS1000
    	for(frame = 0; frame < 24000; frame++)
    	{
    		decimalToAscii(dataBuffer[frame], ascii);
    		SCI_Write((unsigned char*)&ascii[0], 1);
    		SCI_Write((unsigned char*)&ascii[1], 1);
    		SCI_Write((unsigned char*)&ascii[2], 1);
    		character = 0x2C;	// , (comma)
    		SCI_Write((unsigned char*)&character, 1);
    		character = 0x20;	// SP  (Space)
    		SCI_Write((unsigned char*)&character, 1);
    		if ((frame + 1) % 24 == 0)
    		{
    			character = 0x0D; // CR (Carriage Return).
    			SCI_Write((unsigned char*)&character, 1);
    			character = 0x0A; // LF (Line Feed).
    			SCI_Write((unsigned char*)&character, 1);
    		}
    	}

    This is my modified code from which I got the above output.

    for(Frame=0;Frame<(24*ADAS1000_FRAME_READ_NO);Frame++)
    	{
    		decimalToAscii(Data_Buffer[Frame], Ascii);
    		PRINT("%c",Ascii[0]);
    		PRINT("%c",Ascii[1]);
    		PRINT("%c  ",Ascii[2]);
    		if((Frame + 1) % 24 == 0)
    		{
    			PRINT("\n\r");
    		}
    	}

  • Hi,

    Please refer to Data Frames/Packets section of ADAS1000/ADAS1000-1/ADAS1000-2 (Rev. C) (analog.com) datasheet for details on how the frames are sent. This will be dependent on how the Frame Control register is configured.

    regards,

    Mark