T1 在启用SPI的前提下,将P17/P15 IO口当普通IO输出控制的问题

Wi-Fi 设备、蜂窝设备、WuKongAI、开发板、TuyaOS 移植等


Post Reply
feige2023
Posts: 40

背景说明:
【1】我们用P16的SPI-MOSI作为WS28XX灯带的驱动,而P17/15用于控制指示灯

目前发现现象如下:
【1】当我们使用配置好P17/P15,直接用命令控制该IO,电平控制正常。
【2】当我们启用SPI功能,然后将P17/P15配置为输出,用命令控制IO后,总是会在下一次刷灯(执行tkl_spi_send)的时候,该IO被SPI接管。参考

SPI-P17&P15问题
SPI-P17&P15问题

部分关键配置如下:

// spi配置
const TUYA_SPI_BASE_CFG_T spi_cfg={
.mode = TUYA_SPI_MODE0,
.freq_hz = CONFIG_BSP_SPI_WS28XX_BAUDRATE,
.databits = TUYA_SPI_DATA_BIT16,
.bitorder = TUYA_SPI_ORDER_LSB2MSB,
.type = TUYA_SPI_AUTO_TYPE,
.role = TUYA_SPI_ROLE_MASTER_SIMPLEX,//TUYA_SPI_ROLE_MASTER,
.spi_dma_flags = 1,


};
ret = tkl_spi_init(TUYA_SPI_NUM_0,&spi_cfg);

// gpio配置
TUYA_GPIO_BASE_CFG_T gpio_output_cfg={
.direct = TUYA_GPIO_OUTPUT,
.level = TUYA_GPIO_LEVEL_LOW,
.mode = TUYA_GPIO_PUSH_PULL
};
tkl_gpio_init(TUYA_GPIO_NUM_15,(CONST TUYA_GPIO_BASE_CFG_T *)&gpio_output_cfg);
tkl_gpio_init(TUYA_GPIO_NUM_17,(CONST TUYA_GPIO_BASE_CFG_T *)&gpio_output_cfg);

问题:
需要如何解决SPI强制接管P17/P15 IO的问题?

heixia.wang@tuya.com
Posts: 10

Re: T1 在启用SPI的前提下,将P17/P15 IO口当普通IO输出控制的问题

您好,spi如要正常工作必须控制所述cs、MISO引脚,否则无法与外设完成通信,建议普通gpio功能使用其他暂不使用的引脚替代

feige2023
Posts: 40

Re: T1 在启用SPI的前提下,将P17/P15 IO口当普通IO输出控制的问题

您好,我只是用SPI的MOSI的时序驱动WS28XX灯带,不需要通讯。

heixia.wang@tuya.com
Posts: 10

Re: T1 在启用SPI的前提下,将P17/P15 IO口当普通IO输出控制的问题

驱动灯带可以用gpio模拟1wire的方式完成吗?这样就不必控制spi发送数据,只需要一根线即可

heixia.wang@tuya.com
Posts: 10

Re: T1 在启用SPI的前提下,将P17/P15 IO口当普通IO输出控制的问题

spi引脚当前是绑定控制的,没有办法拆分控制

Post Reply