OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4001|回复: 4

求大佬帮忙处理SPI问题,大佬请进!

[复制链接]

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2020-6-30
在线时间
19 小时
发表于 2020-12-23 14:43:14 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 18844992537 于 2020-12-24 10:32 编辑

我在调试一个私有SPI,非标准模式的。1MHZ。
通讯图如下:
$PX6F%7U}JPG2(ZOUTZ2DSM.png
我这边控制的是从机,这个SPI在发送接收完8位数据之后,主机会把时钟线释放掉,我需要拉低时钟线告诉主机我正在处理数据,等我从机处理完之后再上拉,准备接收下一帧。
这个我可以实现,我把时钟线接两个引脚,一个用来通讯,一个负责上下拉,可以实现。
同时,这个SPI要求MISO在空闲时为高电平。我是从机。因为1MHZ,用中断模拟SPI会导致中断进入过快。我想用硬件SPI实现,但是实在不知道怎么控制MISO的空闲电平,加上拉电阻也不行。
我看到HAL库中MISO被配置成了推挽输出模式。总是保持上一帧数据的最后一个电平。无法控制。
请问我该如何处理,跪谢大佬下面是我做的波形,一旦从新初始化复用模式之后MISO又变成低电平了
YHH`8@6OP(M7U8]H26F3LJG.png

最佳答案

查看完整内容[请看2#楼]

这样可以在本帧结束之后拉高,但是下一帧来临之前还是需要设置MISO为复用模式,这样会不会又拉低了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2020-6-30
在线时间
19 小时
 楼主| 发表于 2020-12-23 14:43:15 | 显示全部楼层
正点原子 发表于 2020-12-23 23:24
和你设置SPI的片选脚一样,你设置MISO,不是复用功能就可以了,设置为你要的上拉

这样可以在本帧结束之后拉高,但是下一帧来临之前还是需要设置MISO为复用模式,这样会不会又拉低了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-12-23 23:24:51 | 显示全部楼层
和你设置SPI的片选脚一样,你设置MISO,不是复用功能就可以了,设置为你要的上拉
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-12-25 00:10:43 | 显示全部楼层
18844992537 发表于 2020-12-24 09:28
这样可以在本帧结束之后拉高,但是下一帧来临之前还是需要设置MISO为复用模式,这样会不会又拉低了

这个不影响了吧,都开始接受数据了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2020-6-30
在线时间
19 小时
 楼主| 发表于 2020-12-25 18:20:32 | 显示全部楼层
正点原子 发表于 2020-12-25 00:10
这个不影响了吧,都开始接受数据了

搞定了,再本帧结束之后拉高,把CLK同时接到另外一个引脚上做外部中断,当中断触发时,代表下一帧数据要来了,这时候再设置复用模式。无缝衔接,72M CPU 最大可以做到1MHZ
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-24 15:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表