Xiaojie雷达之路---TI实战笔记---ADCBuf的配置

本篇文章是基于automated_parking这个demo对ADCBuf驱动配置的源码解析

首先要明确ADCBuf是在DSS程序中进行的配置,因为它是C674x的外设。还有就是内存大小为32KB,如下图:
在这里插入图片描述
接下来就就行源码的解析,源码如下图:
在这里插入图片描述

上面这段程序就完成了对ADCBuf驱动的配置以及启用

  1. 首先是ADCBuf_init(),只要调用ADCBuf驱动,这个函数必须出现在最前面,完成的任务初始化ADCBuf

  2. ADCBuf_Params_init(&adcBufParams);这个函数中的参数是一个输出参数,ADCBuf_Params_init函数就是对adcBufParams进行赋值,完成参数初始化,下面的图片是对参数adcBufParams进行的配置
    在这里插入图片描述
    而479行~481行,这三行是对参数进行再一次的设置,在这里其实没有必要进行设置

  3. ADCBuf_open(0, &adcBufParams)实现了ADCBuf驱动的打开,会返回一个ADCBuf_Handle

  4. 然后就要进入这篇文章重点介绍的部分MRR_DSS_dssDataPathConfigAdcBuf ();进入这个函数,下面两张图是源程序:在这里插入图片描述在这里插入图片描述
    1000行,offset = ((32 * 1024)/4);这句话将ADCBuf的内存分为4个块,后面要分别对应于4根接收天线1012行,将4根接收天线都关闭
    1020行,对ADCBuf的数据格式进行了设置,现在要看一下dataFormat参数的设置

        dataFormat.adcOutFormat = adcFmt;    
        dataFormat.channelInterleave = chInterleave;    
        dataFormat.sampleInterleave = sampleInterleave;
    

    而adcFmt、chInterleave、sampleInterleave前面的赋值分别为0、1、1,这就说明了ADC输出数据的格式是Complex Data,channel interleave使用的是non-interleaved,sampleInterleave 使用的是Q(代表虚部)存储在LSB,I(代表实部)存储在MSB。

    从1032行~1047行,接收天线进行开启,并将ADCBuf的内存与4根接收天线对应,下面的图说明了4根接收天线的存储以及non-interleaved格式中的存储方式:相同的接收天线接收回来的数据都要放在连续的存储区,比如RX0接收回来的数据放在[0KB,8KB),RX1接收回来的数据放在[8KB,16KB),RX2接收回来的数据放在[16KB,24KB),RX3接收回来的数据放在[24KB,32KB)在这里插入图片描述
    1050行~1060行对chirp的阈值进行了设置,值为1,ADCBuf中的每个内存对应着最多可以存放一个chirp。
    到了这里,对ADCBuf的配置已经完成。

猜你喜欢

转载自blog.csdn.net/Xiao_Jie123/article/details/111238418