xilinx z7系列上通过spi驱动awr2243 软件移植问题

Other Parts Discussed in Thread: AWR2243, AWR2243BOOST, DCA1000EVM, MMWCAS-DSP-EVM, MMWCAS-RF-EVM, AWR1243

需求:AWR2243+ZYNQ 7系列

问题:我在移植的过程中,比如接口函数rlsGetDeviceCtx 这个我需要怎么实现呢?即我需要实现哪些功能??我看你这个函数是在mmwl_port_fdti.lib中实现的

由于MMWL_SOPControl这个函数中会使用到这个库函数的接口,我不太明白,我移植到z7系列的时候,这个函数需要实现什么功能???才能驱动awr2243

  • 你好,

    你看的代码时dfp包里的单芯片的example的吧。你可以先看看mmwave_dfp_user_guide.pdf,这个单芯片的例程是基于AWR2243BOOST+DCA1000EVM的。

    以mmWaveLink_SingleChip_Example为例,从user guide里面你可以得知,不同的SOP设置,使用不同的接口下载firmware。所以MMWL_SOPControl是用于SOP设置的。但是对于一个产品,SOP的值是用电阻上下拉固定好的,是不需要用软件配置的。你的系统如果是产品,这个接口函数理论上是不需要的。

    从user guide里面你也可以看到下面的信息。
    10. Additional dependency
    This mmWaveLink example application on windows PC uses the following libraries to communicate with AWR2243.
    1. mmwl_port_ftdi.lib: For single chip systems
    2. mmwl_port_ethernet.lib: For cascade chip systems
    The libraries provide implementation of all the platform dependent routines required by TI mmWaveLink framework. Broadly it implements below platform interfaces as mentioned in mmWaveLink porting guide.
     Communication Interface
     Device Control Interface
     OS Interface

    port guid在文档file:///C:/ti/mmwave_dfp_02_02_02_01/ti/control/mmwavelink/docs/doxygen/html/index.html里面,请参考相关内容。
  • 疑问1:意思是mmwl_port_ftdi.lib这个库可以直接在zynq上直接使用???

    疑问2:假如我用zynq通过spi驱动awr2243,我还是需要做什么?比如指定spi的read write函数????

  • clientCtx.devCtrlCb.rlDeviceDisable = Host_disableDevice;
    clientCtx.devCtrlCb.rlDeviceEnable = Host_enableDevice;
    clientCtx.devCtrlCb.rlDeviceMaskHostIrq = Host_spiIRQMask;
    clientCtx.devCtrlCb.rlDeviceUnMaskHostIrq = Host_spiIRQUnMask;
    clientCtx.devCtrlCb.rlRegisterInterruptHandler = Host_registerInterruptHandler;
    clientCtx.devCtrlCb.rlDeviceWaitIrqStatus = Host_deviceWaitIrqStatus
    比如Host_disableDevice这些接口中,我需要做什么?有没有参考例程?如搭配你们的tda2x. 即假如我购买你们的awr2243和tda2x的两个开发板,连接后,直接跑那个example可以直接测试???
    不知道我这样描述是否清楚??
  • yude wang 说:
    疑问1:意思是mmwl_port_ftdi.lib这个库可以直接在zynq上直接使用???

    当然不是,这个代码是和硬件相关的。请问你是有自己的FPGA+AWR2243板子么?如果是,你应该直接用FPGA的spi口来和AWR2243通信。

    yude wang 说:
    疑问2:假如我用zynq通过spi驱动awr2243,我还是需要做什么?比如指定spi的read write函数????

    我建议你先看看DFP包里doc目录下的mmWave-Radar-Interface-Control.pdf里的3.2 Communication Sequence内容,理解一下外部host是如何让mmwave芯片,例如awr2243,开始工作的。

  • yude wang 说:
    即假如我购买你们的awr2243和tda2x的两个开发板,连接后,直接跑那个example可以直接测试???

    4片级联的MMWCAS-RF-EVM+MMWCAS-DSP-EVM,如果是独立运行,请下载processor sdk for radar。

    如果是仅仅PC采集原始数据,请使用mmave studio软件。

    请问你的系统是级联的还是单片AWR2243?processor sdk for radar也有单片awr1243+TDA3x的软件例程。

    我还是建议先理解一下host+AWR2243工作原理。

  • 我在移植软件到zynq7000上,编译的时候出现上述的错误!!改如何解决呢???

    这个就是我上述想表达的意思,个人理解上述的函数应该是在example\platform\mmwl_ftdi\mmwl_port_ftdi.lib这个库中实现的,难道我移植到zynq7000上,需要自己来实现这个库吗???

    ps:我在编译的时候添加这个库也是不行的?(你这个库应该用于x86或者x64平台的吧,不是arm平台的)

  • 你好,

    请参考:C:\ti\mmwave_studio_03_00_00_14\mmWaveStudio\ReferenceCode\FTDILib\SourceCode。
  • 另外问下:ReferenceCode下面有三个文件夹DCA1000、EthernetLib、FTDILib三个文件夹有什么区别??(或者介绍的资料,告诉我一下路径或者提供一下,我自己看下)
  • 你好,

    reference code下DCA1000目录下是用命令行控制mmwave studio的CLI相关信息。
    另外两个,请参考下面文档里的图:
    file:///C:/ti/mmwave_studio_03_00_00_14/mmWaveStudio/ReferenceCode/FTDILib/Docs/Doxygen/html/index.html
  • 我看资料上面介绍是用以太网连接的,我现在想做的是直接spi驱动awr2243?这种该如何做呢?

  • 上面我所理解的架构图是:PC通过ethernet来驱动tda2xx,然后简介来驱动awr2243(通过tda2xx的spi接口)。我现在需要的就是去掉pc这个部分,直接再zynq7000系列上驱动awr2243,该如何做???不知道我这样理解是否正确??
  • 你好,

    你是要FPGA控制多片AWR2243么?如果是,你可以看看processor sdk for radar里的TDA2x的相关代码。

    我之前也回复过:
    4片级联的MMWCAS-RF-EVM+MMWCAS-DSP-EVM,如果是独立运行,请下载processor sdk for radar。
  • 你好,

    你的硬件具体是如何的,能描述一下么?
  • 这个是我大概简单描述一下我们的硬件架构。主要就是想在zynq7上驱动awr2243

  • 你好,

    如果是单片AWR2243的支持,就是看DEVPACK/DCA1000EVM那个分支。
  • 1.我看这个分支的文档,还是没有找到一只的相关指导手册。且看底层发送cmd还是通过以太网。如我cmd发送start_record这个命令,最终底层还是通过网口发送相关数据包的???而和我上述描述的还是不一样????

    2.在这个参考代码中根本没有看见类似的如之前的Port文档中描述的port的步骤

    看能否提供一些比较简单或者自己的文档给我们进行移植吗?

    3.另外我说理解的应该我们只需要提供相应的spi的读写和中断等类似的函数就可以了,具体你们应该会进行相应的通讯部分的封装,然后通过callback的方式使用我们提供的spi的操作函数,发送给awr2243,从而来实现驱动他??不知是否是这样的一个流程

  • 你好,

    DEVPACK/DCA1000那个分支,支持的是单片的AWR1243/AWR2243的操作。控制通过FTDI来控制SPI的操作,包括命令发送/firmware下载等。对于DCA1000EVM,还可以通过网口把原始数据送到PC存储。对于配置,只需要DCA1000EVM上的FTDI芯片转换工作,不需要上面的网口。你不需要看DCA1000EVM的代码。

    对于host+AWR1243/2243,除了DFP包里的example这个例子外,就只有processor sdk for radar里的TDA3x+AWR1243的demo,但processor sdk的代码结构也比较复杂。
  • 换个问法:是否有直接的代码,比如通过spi发送什么命令可以重启awr2243???通过spi发送什么命令可以配置awr2243如chirp长度周期等???通过spi发送什么命令可以重启启动awr2243???
    或者有协议文档提供也行,我根据这个自己来实现????
  • 你好,

    DFP包里的mmWave-Radar-Interface-Control.pdf里面有所有相关支持的命令。

    关于移植,英文论坛上的信息,和我们上面讨论的也是类似的。
    e2e.ti.com/.../825562
    e2e.ti.com/.../302149
  • 在咨询两个awr启动的问题,如图

    1.是不是芯片供电且NRST这个管脚有效后,awr就开始工作了,并且自身初始化完成后会通过i2c或者spi发送消息给host???

    2.awr是如何判断是通过i2c还是spi来发送消息的

    3.host收到awr启动完成后,文件下载是否是必须的????

  • yude wang 说:
    1.是不是芯片供电且NRST这个管脚有效后,awr就开始工作了,并且自身初始化完成后会通过i2c或者spi发送消息给host???

    是的。请参考数据手册里的power on sequence。

    yude wang 说:
    2.awr是如何判断是通过i2c还是spi来发送消息的

    通过SOP的电平读取信息。在awr2243的数据手册里,你可以找到下面的信息。

    [SOP2 SOP1 SOP0] = [0 0 1] -> Functional SPI mode
    [SOP2 SOP1 SOP0] = [1 1 1] -> Functional I2C mode

    yude wang 说:
    3.host收到awr启动完成后,文件下载是否是必须的????

    如果没有外部flash就是必须的,bss/mss相关补丁需要下载下去。

    你还可以参考下面的应用文档AWR2243 Bootloader Flow

    www.ti.com/.../spracr5.pdf