|
悬赏5RD币未解决
请教一下,目前需要使用展讯SC6531的SIM2对应的SPI,在主mk中开启单卡,或者开启三卡,在打开SPI之前关闭SIM2都不行,
出错是在spi_phy_v5.c中的1169行SCI_PASSERT (0, ("SPI TIME OUT!"));
从报错的情况看是有地方在使用这组SPI。但是搜索整个代码并没有使用这组SPI的迹象。
最后折中改配置成GPIO模拟SPI,通信倒也正常,问题在最后发现模拟SPI速度还是跟不上,而且很耗CPU资源。
因此急需要解决使用这组SPI的方案,问过展讯的FAE了,给了各种trace信息后,只给出一句请使用我们参考设计。。。
目前代码中pinmap配置,SPI的操作确认是没有问题的,因为飞线使用SPI0_3 是ok的。
使用这组SPI需要关闭SIM之前的LDO值,改使用LDO3V。
代码如下:
LDO_VOLT_LEVEL_E volt_level;
#ifdef CHIP_VER_6531 //open 3V LDO
volt_level = LDO_VOLT_LEVEL1;
#else
volt_level = LDO_VOLT_LEVEL2;
#endif
LDO_SetVoltLevel(LDO_LDO_SIM2, volt_level);
LDO_TurnOnLDO(LDO_LDO_SIM2);
尝试在打开之前重新配置pinmap,以及先关闭这组SPI均告失败。
重新配置pinmap
CHIP_REG_AND(PIN_SIMDA2_REG,0);
CHIP_REG_AND(PIN_SIMRST2_REG,0);
CHIP_REG_AND(PIN_SIMCLK2_REG,0);
CHIP_REG_AND(PIN_SPI1_0_CS0_REG,0);
CHIP_REG_OR(PIN_SIMDA2_REG,( PIN_SLP_O | PIN_SPX_EN | PIN_SPO_X | PIN_FUNC_1 | PIN_FPX_EN | PIN_DS_1 | PIN_FPC_EN));
CHIP_REG_OR(PIN_SIMRST2_REG,( PIN_SLP_I | PIN_SPX_EN | PIN_SPO_X | PIN_FUNC_1 | PIN_FPX_EN | PIN_DS_1 | PIN_FPC_EN));
CHIP_REG_OR(PIN_SIMCLK2_REG,( PIN_SLP_O | PIN_SPX_EN | PIN_SPO_X | PIN_FUNC_1 | PIN_FPX_EN | PIN_DS_1 | PIN_FPC_EN));
CHIP_REG_OR(PIN_SPI1_0_CS0_REG,( PIN_SLP_O | PIN_SPU_EN | PIN_SPO_X | PIN_FUNC_0 | PIN_FPU_EN | PIN_DS_1 | PIN_FPC_EN));
关闭这组SPI
SPI_HAL_Close(SPI1_0_CS0);
希望熟悉这块的大侠不吝赐教,谢谢!
|
附件: 您需要 登录 才可以下载或查看,没有账号?注册
|