你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F405的SPI时钟问题

[复制链接]
heiyewuyue 提问时间:2020-8-15 14:54 /
大家周末好,有个问题请教一下,最近发现STM32F405的SPI在片选信号有效后,需要等1us左右的延时才能发出CLK时钟信号;结束的情况也有类似延时。用的是HAL库。请问这两段时间能缩小或者取消掉么?详见示波器图。

黄色为CS,紫色为CLK

黄色为CS,紫色为CLK
收藏 评论9 发布时间:2020-8-15 14:54

举报

9个回答
heiyewuyue 回答时间:2020-8-15 14:57:41
在图上标了一下

红色部分为延时

红色部分为延时
陌路夕颜 回答时间:2020-8-17 12:09:41
是用硬件控制CS吗,可能是为了使外设和对端设备稳定吧。可以改变一下通讯频率试试,还可以试试SPI 的mode0 mode1 mode2 mode3。具体的只能看看参考手册和数据手册。不过这1us也没什么影响吧

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

heiyewuyue 回答时间:2020-8-17 18:05:14
陌路夕颜 发表于 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-18 08:45:22
天越萍踪 发表于 2020-8-17 18:05
软件CS,测试了下这两段时间跟通讯频率没关系;目前结束时的延时,找到原因了,        程序在 Check Busy flag  ...

可以试试硬件CS
goyhuan 回答时间:2020-8-18 09:15:33
是主机双向吗?你是用中断发送还是DMA发的?
heiyewuyue 回答时间:2020-8-18 13:20:25
乐天乐 发表于 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);
heiyewuyue 回答时间:2020-8-18 13:22:43

硬件NSS没引出来,下次再测试一下这个吧。
goyhuan 回答时间:2020-8-18 14:14:47
1us都不能接受吗?时序要求这么高?
heiyewuyue 回答时间:2020-8-18 14:48:14
乐天乐 发表于 2020-8-18 14:14
1us都不能接受吗?时序要求这么高?

暂时可以接受。后面在看看改为DMA的方式读取能缩短时间不。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版