STM32F405的SPI时钟问题
大家周末好,有个问题请教一下,最近发现STM32F405的SPI在片选信号有效后,需要等1us左右的延时才能发出CLK时钟信号;结束的情况也有类似延时。用的是HAL库。请问这两段时间能缩小或者取消掉么?详见示波器图。在图上标了一下 是用硬件控制CS吗,可能是为了使外设和对端设备稳定吧。可以改变一下通讯频率试试,还可以试试SPI 的mode0 mode1 mode2 mode3。具体的只能看看参考手册和数据手册。不过这1us也没什么影响吧 陌路夕颜 发表于 2020-8-17 12:09
是用硬件控制CS吗,可能是为了使外设和对端设备稳定吧。可以改变一下通讯频率试试,还可以试试SPI 的mode0...
软件CS,测试了下这两段时间跟通讯频率没关系;目前结束时的延时,找到原因了, 程序在 Check Busy flag
if(SPI_CheckFlag_BSY(hspi, Timeout, tickstart) != HAL_OK)
{
errorcode = HAL_ERROR;
hspi->ErrorCode = HAL_SPI_ERROR_FLAG;
goto error;
}
但是开始那段延时还没找到原因,手册上没找到。。。目前这段时间勉强够用。 天越萍踪 发表于 2020-8-17 18:05
软件CS,测试了下这两段时间跟通讯频率没关系;目前结束时的延时,找到原因了, 程序在 Check Busy flag...
可以试试硬件CS 是主机双向吗?你是用中断发送还是DMA发的? 乐天乐 发表于 2020-8-18 09:15
是主机双向吗?你是用中断发送还是DMA发的?
在单片机主中断50us里读取编码器位置,软件方式,调用的HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout); 陌路夕颜 发表于 2020-8-18 08:45
可以试试硬件CS
硬件NSS没引出来,下次再测试一下这个吧。 1us都不能接受吗?时序要求这么高? 乐天乐 发表于 2020-8-18 14:14
1us都不能接受吗?时序要求这么高?
暂时可以接受。后面在看看改为DMA的方式读取能缩短时间不。
页:
[1]