This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

IWR6843ISK: DMM Interface - Playback Implementation

Part Number: IWR6843ISK
Other Parts Discussed in Thread: IWR6843

Hi Team,

We are trying to implement the Playback of raw ADC data via DMM interface in IWR6843ISK using FPGA board.

Reference to this query: https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/861828/iwr6843isk-dmm-interface-pin-muxing#pi320995=2

Reference document: /cfs-file/__key/communityserver-discussions-components-files/1023/DMM_5F00_Configuration_5F00_Psudo_5F00_code_5F00_rev2.pdf

1. Unable to understand the steps 5, 6, 7, 15, 16, 17 in the pseudo code. Attached code for your reference.

 
1. DMM1_TRACE_WRITE (DEST0, 0xFF73C, 0x5000_xxxx) 
2. DMM1_TRACE_WRITE (DEST0, 0xFF740, 0x9) 
3. DMM1_TRACE_WRITE (DEST0, 0xFF74C, 0xFFFF_xxxx) 
4. DMM1_TRACE_WRITE (DEST0, 0xFF750, 0x9) 
/* Configuring PING buffer */ 
/* PING value , 0x420000 
PONG value 0x634000 */ 
Current buffer = PING 
5. DMM1_TRACE_WRITE (DEST1, 0x660, Current buffer) 

/* 2 idle clock cycles would be required */ 
/* (Set Ping pong interrupt Sel and frame start interrupt sel) */ 
6. DMM1_TRACE_WRITE (DEST2, 0xFF954, 0x880) 

/* (Set Frame start interrupt) */ 
7. DMM1_TRACE_WRITE (DEST2, 0xFF94C, 0x080) 

/* 2 idle clock cycles would be required */ 
/* DMM2 reset */ 
8. DMM2_WRITE (0xFCFFF600, 0x00010000) 
9. DMM2_WRITE (0xFCFFF600, 0x00000000) 

/* DMM2 Configuration in Functional Mode */ 
10. DMM2_WRITE (0xFCFFF66C, 0x0007FFFF) 
11. DMM2_WRITE (0xFCFFF68C, 0x0007FFFF) 

/* DMM2 Configuration in DDM Mode 32 DDM_WIDTH assumed */ 
12. DMM2_WRITE (0xFCFFF600, 0x0004050A) 

/* configure ADC buffer with the fixed block size of 32k for each chirip */ 
• ADDR:DDMDEST -> DATA: 0x5209_xxxx 
• ADDR:DDMBL -> DATA: 0xB 

13. DMM1_TRACE_WRITE (DEST0, 0xFF61C, 0x52090000) 
14. DMM1_TRACE_WRITE (DEST0, 0xFF620, 0xB) 

/* Now as there is a transition from Trace to DDM mode, 2 idle clock cycles would be required. 
DMM_MUX (PAD_BC) should be driven to value “1” to use DMM2 (Direct data Mode). 
After this activity transfer data 
/* Now as there is a transition from DDM to TRACE mode, 2 idle clock cycles would be required. 
DMM_MUX (PAD_BC) should be driven to value “0” to use DMM1 (Trace mode). 
/* If the current buffer = PING next buffer = Pong 
Else next buffer =PING 
/* Configuring PONG buffer */ 
15. DMM1_TRACE_WRITE (DEST1, 0x660, NEXT Buffer) 

Current buffer =Next Buffer 
/* The PING PONG interrupt is set to give the Chirp Available Interrupt by writing to the following register using the DMM1 trace mode with DEST2 to indicate that one chirp data is available for processing */ 
/* Set Ping pong interrupt Sel */ 
16. DMM1_TRACE_WRITE (DEST2, 0xFF954, 0x880) 

/* Set Ping pong interrupt */ 
17. DMM1_TRACE_WRITE (DEST2, 0xFF94C, 0x800) 

/* Add inter chip data/delay if needed */ 
/* At each chirp repeat the above steps from 8 using the DMM interface until the entire frame data is transferred. */ 
/* After all the chirps have been transferred add inter frame data/delay if needed */ 
/* And at each frame repeat the above steps from 6 using the DMM interface until the entire data is transferred. */a

1a. What is the 32 bit address for Step 5, 6, 7, 15, 16, 17 ?

1b. For setting the ping/pong interrupt and frame start interrupt, which register needs to be configured?

1c. Why is the base address written in the block size register in the Configuring PING buffer step?

1d. ADC Buffer PING Base Address is given as 0x52000000. But 0x52000000 is reserved as per the TRM.

2. In DMMGLBCTRL register, what happens when we write Ah and 5h into the LSB 4 bits?

3. Explain indetail the flow need to be followed to implement DMM interface.

Attached Analysis sheet for your reference. 

IWR6843_DMM_analysis_sheet.xlsx

Regards

Mohan

  • Hi

    1a. DEST1, DEST2, DEST3 correspond to the registers inside DMM IP. Its address for DMM1 would be 0xFCFFF73C, 0xFCFFF74C, 0xFCFFF75C

    1b. You will have to configure DMMSWINT0(0xFFFFF948) register in MSS_GPCFG to make sure that you select the interrupt from DMM and not from radar internal frame 

    1c. In DMM interface, part of the address is determined by the DMM IP and the rest is by the DMM packety

    1d. ADC buffer address of 0x52000000 is reserved for internal logic but only DMM interface can write into this address 

    2. Writing 0xA into DMMGLBCTRL lsb enables DMM interface. DMM interface can receive the packets after enabling the DMM interface. Any other value would disable the interface

    3.The pseudo code that you referenced above is correct

    Regards