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.

AWR1642BOOST: Is it possible to increase the number of LVDS user sw buffer?

Part Number: AWR1642BOOST
Other Parts Discussed in Thread: DCA1000EVM

Hi

What I am trying now is transmit 2D FFT output for all virtual antenna(for this case 8 antennas) through lvds.

With references from several e2e forums, I found that it is possible to send user data buffer upto 3 by adding

gMmwDssMCB.lvdsStream.swSessionEDMAChannelTable[2].chainChannelsId = MMW_LVDS_STREAM_SW_SESSION_EDMA_CH_2;
gMmwDssMCB.lvdsStream.swSessionEDMAChannelTable[2].shadowLinkChannelsId = MMW_LVDS_STREAM_SW_SESSION_EDMA_SHADOW_CH_2;

at dss_lvds_stream.c 

and changing MMWDEMO_LVDS_STREAM_SW_SESSION_MAX_EDMA_CHANNEL 2U to 3U at dss_lvds_stream.h

and adding 

#define MMW_LVDS_STREAM_SW_SESSION_EDMA_CH_2 EDMA_TPCC1_REQ_FREE_15
#define MMW_LVDS_STREAM_SW_SESSION_EDMA_SHADOW_CH_2 (EDMA_NUM_DMA_CHANNELS + 29U)

at dss_resources.h

However due to the size of 2D fft out for all virtual antennas exceeds the buffer limits of user lvds (rangebins*dopplerbins*virtualantennas*(8bytes)) I have to increase the number of user buffer

So what i've done until now is delete 15th of hw buffer and add that buffer to sw buffer, which does not take more memory.

//#define MMW_LVDS_STREAM_HW_SESSION_EDMA_CH_14 EDMA_TPCC1_REQ_FREE_14
/*SW Session*/
#define MMW_LVDS_STREAM_SW_SESSION_EDMA_CH_0 EDMA_TPCC1_REQ_FREE_14
#define MMW_LVDS_STREAM_SW_SESSION_EDMA_CH_1 EDMA_TPCC1_REQ_FREE_15
#define MMW_LVDS_STREAM_SW_SESSION_EDMA_CH_2 EDMA_TPCC1_REQ_FREE_16
#define MMW_LVDS_STREAM_SW_SESSION_EDMA_CH_3 EDMA_TPCC1_REQ_FREE_17

//#define MMW_LVDS_STREAM_HW_SESSION_EDMA_SHADOW_CH_14 (EDMA_NUM_DMA_CHANNELS + 28U)
/*SW Session*/
#define MMW_LVDS_STREAM_SW_SESSION_EDMA_SHADOW_CH_0 (EDMA_NUM_DMA_CHANNELS + 28U)
#define MMW_LVDS_STREAM_SW_SESSION_EDMA_SHADOW_CH_1 (EDMA_NUM_DMA_CHANNELS + 29U)
#define MMW_LVDS_STREAM_SW_SESSION_EDMA_SHADOW_CH_2 (EDMA_NUM_DMA_CHANNELS + 30U)
#define MMW_LVDS_STREAM_SW_SESSION_EDMA_SHADOW_CH_3 (EDMA_NUM_DMA_CHANNELS + 31U)

at dss_resources.h

and add

gMmwDssMCB.lvdsStream.swSessionEDMAChannelTable[3].chainChannelsId = MMW_LVDS_STREAM_SW_SESSION_EDMA_CH_3;
gMmwDssMCB.lvdsStream.swSessionEDMAChannelTable[3].shadowLinkChannelsId = MMW_LVDS_STREAM_SW_SESSION_EDMA_SHADOW_CH_3;

at dss_lvds_stream.c 

and changing MMWDEMO_LVDS_STREAM_SW_SESSION_MAX_EDMA_CHANNEL from 3U to 4U  while MMWDEMO_LVDS_STREAM_HW_SESSION_MAX_EDMA_CHANNEL to 14U at dss_lvds_stream.h

Also at cbuff.h

I change CBUFF_MAX_USER_BUFFER to 4U and at hsiprotocol.h HSI_HEADER_MAX_USER_BUFFER to 4U

However, when i check lvds result using wireshark and DCA1000EVM, it only transmit 3 buffers. 

Do I have to change more code to send more than 3 user buffers through lvds or is it absolutely impossible to send more user buffer?

Thanks a lot

Regards

Jinhyeong Kim

  • HI,
    Are you using SDK 2.1 demo as reference code?

    Thank you
    CEsar
  • The changes look o.k and complete on the surface (although cannot say for sure as we haven't attempted this ourselves). After the change in cbuff, did you recompile the cbuff driver and then build the application (which will link to the updated cbuff driver)? If you don't do this the change in cbuff will not take effect. With all these changes did you attempt to actually send 4 user buffers by setting in the application (during session creation) non zero size and addresses for the 4th buffer (you haven't quoted code in this area in your post so not sure). If there are no errors during the execution then it should be sending the total size you expect.

  • Yes, currently I am using SDK 2.1 demo for implementing
  • How do I recompile cbuff driver? Until now, I used 'gmake' by using setenv at 'C:\ti\mmwave_sdk_02_01_00_04\packages\scripts\windows'
    With this environment I could only use gmake function at mmw folder. Is there any method to recompile cbuff driver?
    Thanks
  • Oh, I missed that I could also use gmake at cbuff folder..
    Thanks a lot. ! I will try it
  • Good to know you figured out how to build the driver but just FYI, we have this documented in the user guide in section "Building drivers/control/alg components" [informing so that in future if you get stuck on something that is not intuitively obvious, you can open the user guide and do some searching].

    Another thing I want to let you know with respect to the LVDS problem is that an alternative to increasing the number of user buffers is to create and activate another session after the previous one is finished in real-time, I mentioned this alternative (b) in one of the forum posts that you seem to be referring : https://e2e.ti.com/support/sensors/f/1023/p/786483/2908571#2908571 .