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.

AWR2944EVM: ADC原始数据采集基于“使用低速串行总线的实时 ADC原始数据采集方法”

Part Number: AWR2944EVM
Other Parts Discussed in Thread: AWR2944

你好:

  我按照“使用低速串行总线的实时 ADC原始数据采集方法”这篇文章,使用AWR2944EVM开发板使用串口对adc原始数据进行输出,可以成功输出数据,现在对adc输出的数据量和数据是否为原始数据有疑问, 使用的工程是out_of_box_2944。 

 问题一:

  我的配置是4TX,4RX,一秒一帧,一帧128个chirp,每个chirp采样点数为128个,ADC为16位

  通过串口拿到的数据量是这样计算吗?

128 * 128 * 4 * 2 = 131072

 但是我实际拿到的数据只有65535,少了一半,我这个计算是有问题吗,还是那里出错了。

问题二:

根据使用低速串行总线的实时 ADC原始数据采集方法”这篇文章,adc数据在HWA之前被处理成1DFFT数据,在代码中需要将 fftEn 和  windowEn置0,并重新编译,但是我在修改这里的时候,故意打了中文在代码里,并对工程重新编译,发现没有报错,这是我疑惑的地方,这段代码是没有被调用吗?

  

  • 你好。

    问题一中,一帧中128个chirps是不对的。chirp数量的计算方法是frameCfg中的(<chirp end index> - <chirp start index> + 1)*<number of loops>。其中<chirp end index>对应frameCfg中的第2个数字,也就是3; <chirp start index>对应frameCfg中的第一个数字,也就是0; <number of loops>对应于frameCfg中的第三个数字,也就是16。

    经过计算可得,一帧中有64个chirps,一帧对应的字节数是 : 64(number of chirps per frame) * 128(number of samples) * 1(real data) * 2(16bit) * 4(number of RX antenna) = 65536(bytes)。所以数据大小是没有错的。

    问题二中,对于您说的"打了中文在代码里", 按照我的理解,您是写了一个肯定会报错的内容在代码里,但是程序没有报错是吗?

    根据文章使用低速串行总线的实时 ADC原始数据采集方法”,作者在2.5节对datapath/dpu/rangeproc/下的rangeprochwa.c文件进行了修改

    对于您这种情况,很可能是该源文件没有参与编译, datapath/dpu/ 文件夹下还有rangeprocDDMA.  请检查一下你的工程使用的是哪一个。

    如果检查无误,可以试着移除此前编译得到的二进制文件,再重新编译。

    谢谢。

  • 非常感谢您的回复,对于问题二我验证了我的工程是使用rangeprochwa.c这个文件,删除了二进制文件还是无法解决,该文件好像还是没有被调用,这个文件在sdk里面,我的sdk版本是 mmwave_mcuplus_sdk_04_03_00_01 ,按照这个版本的 user_guide 第4.7节 Developing using SDK

    这里提到,对lib里的文件重新编译,需要通过gmake对makefile进行操作,使用这个方法是可以对rangeprochwa.c这个文件重新编译的吗?但是window没有gmake命令,我尝试使用make命令进行调试,但没有调通,会有各种路径问题?请问还有其他方法吗?

    如果没有办法将 fftEn 和  windowEn置0,那串口拿到的数据就是1DFFT的数据,这些数据有手册说明是怎么排布的吗?

  • 您好。

    CCS IDE里面自带gmake.exe,您可以在ti\ccs12xx\ccs\utils\bin里找到。首先需要将这个路径设置到环境变量path中,您可以参考ti\mmwave_mcuplus_sdk_<version>\mcu_plus_sdk_awr294x_09_00_00_15\ 下的 README_FIRST_AWR294X.html。在Using SDK with Makefiles小节有进行介绍。

    除此之外,为了对rangeprochwa.c进行重新编译,您需要启动命令行(假设您的操作系统是windows) 到C:\ti\mmwave_mcuplus_sdk_<version>\scripts\windows 下运行setenv.bat。 在运行setenv.bat之前,请修改其中的内容set MMWAVE_SDK_DEVICE=am273x,am273x是默认设备,您使用awr2944需要修改成awr2944,除此之外,最好在检查一下CCS的版本是否一致。

    运行完setenv.bat后环境变量被设置,再次使用命令行到\ti\datapath\dpu\rangeproc下使用命令行输入:gmake all.进行编译