Part Number:IWR6843ISK
尝试6843作为SPI主机,引脚使用如下:
/* SPIA_MOSI */
Pinmux_Set_OverrideCtrl(SOC_XWR68XX_PIND13_PADAD, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);
Pinmux_Set_FuncSel(SOC_XWR68XX_PIND13_PADAD, SOC_XWR68XX_PIND13_PADAD_SPIA_MOSI);
/* SPIA_MISO */
Pinmux_Set_OverrideCtrl(SOC_XWR68XX_PINE14_PADAE, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);
Pinmux_Set_FuncSel(SOC_XWR68XX_PINE14_PADAE, SOC_XWR68XX_PINE14_PADAE_SPIA_MISO);
/* SPIA_CLK */
Pinmux_Set_OverrideCtrl(SOC_XWR68XX_PINE13_PADAF, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);
Pinmux_Set_FuncSel(SOC_XWR68XX_PINE13_PADAF, SOC_XWR68XX_PINE13_PADAF_SPIA_CLK);
// /* SPIA_CS */
Pinmux_Set_OverrideCtrl(SOC_XWR68XX_PINE15_PADAG, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);
Pinmux_Set_FuncSel(SOC_XWR68XX_PINE15_PADAG, SOC_XWR68XX_PINE15_PADAG_SPIA_CSN);
主机配置:
params.mode = SPI_MASTER;
/* Enable DMA and set DMA channels */
params.u.masterParams.bitRate = 1*100*1000U;
params.u.masterParams.numSlaves = 1;
params.u.masterParams.slaveProf[0].chipSelect = 0;
params.u.masterParams.slaveProf[0].ramBufLen = MIBSPI_RAM_MAX_ELEM;
params.u.masterParams.slaveProf[0].dmaCfg.txDmaChanNum =1U;
params.u.masterParams.slaveProf[0].dmaCfg.rxDmaChanNum =2U;
params.u.masterParams.c2tDelay = 0x20;
params.u.masterParams.t2cDelay = 0x20;
params.u.masterParams.wDelay = 0;
params.dmaEnable = 1;
params.dmaHandle = gDmaHandle;
params.frameFormat = SPI_POL0_PHA0;
params.shiftFormat = SPI_MSB_FIRST;
params.pinMode = SPI_PINMODE_4PIN_CS;
esp32从机接收数据不对,只有前两个字节,后面基本为0;
尝试过6843与6843进行主机从机测试,发现程序本身没问题,能够正常通信。esp32s3与esp32s3进行主机从机测试,也是能够正常通信的。
用示波器采集了SPI通信波形,
发现6843SPI通信发送64字节时,MOSI是由低拉高的,CS角每两个字节有个明显的跳变,CLK引脚也是在CS跳变时有个空闲
如下图黄色为CS,紫色为CLK:

esp32S3SPI通信发送64字节时是,MOSI由高拉低的,CS和CLK是整体持续的,没有空闲跳变
这种现象是6843哪里配置有问题吗?
Lydia:
感谢您对TI产品的关注!关于你的咨询,我们正在确认你的问题,稍后回复您。
,
feng yang:
请问下这个有进展吗?
,
Ken Zhang:
Hi Feng
请检查6843 和esp32设置SPI的POL和PHA是否匹配,SPI外设的相位和极性设置需要匹配后才可以通讯成功。
Ken
,
feng yang:
这个尝试过,4种模式都进行枚举过,不行才去看的SPI通信波形差异,发现6843与6843通信就是会有上诉说的波形差异,这个是正常的吗?设置的发送64字节,每两个字节就有个空闲
,
Ken Zhang:
Hi
SPI每16bits作为一个基本的传输单元,因此CS在之间上升是正常的,
请尝试增加wDelay(这会增加传输之间CS高电平的时间,使得CS更稳定),并配置你的Slave也将一次通讯接收的数据控制在16bits.
Ken
,
feng yang:
哦,好的,谢谢,我尝试一下
TI中文支持网