初识STM32F765/F767 SPI从机问题请教 分享一个镁光(MT25驱动程序)

2019-07-20 11:54发布

本帖最后由 scf7begin 于 2017-9-18 23:16 编辑
使用STM32F7一个多月,之前一直用的M3/M4,这里分享一下近期的成果和遇到的问题,希望路过的兄弟们帮忙给看看遇到的问题。
因为项目上需要使用F7来作为控制器,本次使用到的外设有SDRAM、QSPI-FLASH(镁光 MT25QL01GBBB,这货不好买)、SPI从机、和一些驱动器什么的。

硬件环境: STM32F767BIT6 STM32F765BIT6 (都是208脚的),QSPI<-->MT25QL01GBBB,FMC<-->W9825G6KH-6。

PCB:6层 2地 1电源 3信号层


1、SDRAM采用的是原子的例程修改的,使用的型号和原子767开发板子用的一样,原子的历程很详细,赞一个。2、QSPI的驱动已经移植好了,和原子的WQ25差不太多,在网上偶然找到一大神的N25Q256/N25Q512,对照着技术文档,修改一下,已经搞定啦,需要的下载。【附件只有驱动部分,完整代码请私聊

3、SPI这个这个看来简单的外设花了好多时间来处理。也是目前最头疼的一个模块,遇到的问题也比较奇怪。这里我整理一些出来,看看有没有人遇到过相同的情况的,求路过的兄弟们给点建议或者解决方案。

a SPI需要做从机,主机是FPGA,通信时钟频率10-20MHZ。
b 主机SPI时序已经经过验证(示波器,逻辑分依仪都测试过,确保OK)
c 单片机代码使用cube生成,做了小改动。


第一次使用SPI2 映射到 PB12 PB13 PB14 PB15 四个管脚。能够正常接收到数据,但是会存在非周期性的丢包,大约1秒1-2字节,寻找原因过程中发现:
PB14 PB15两只脚作为普通IO口时无法输出高电平。原因未知,SPI丢包硬件上原因可能较大。但不明确。


然后将PB14 PB15两只引脚映射到PI2 PI3 后,持续工作未见异常。(约一个月,临时飞线解决)


因PI口作为其他功能使用,所以第二版将SPI口调整到SPI1上(PD7 PG9 PG10 PG11)四个引脚。结果又发现问题,SPI1的中断位 (SPI_IT_RXNE|SPI_IT_ERR )如果同时打开,则无限次进入中断,只打开SPI_IT_RXNE 能够收到少量数据,约30% (发送端发送100字节,通过中断能够接收到30字节左右,确实是发送端发出的字节)。测试传输波形良好。


然后一路排查发现两个SPI的差异发现,SPI1的BSY标志始终为1,而正常接受到数据的SPI2不会有这个情况。程序配置见附件,基本上就是cube生成的代码。
<这里的问题我是真的不明白是什么原因了,希望集思广益来解决这个问题。>




期间还发现的问题:
PA11 PA12 两只引脚无法输出高电平。后增加上拉电阻后有改善,但是没有根本解决。具体表现为上升时间(正常PP OD输出上升时间大概在5-20ns之间,而这3两只引脚大概在us 切上升过程不明原因异常,单片机引脚和其他电路已断开,IO口无负载。如图


邮箱:guangqiang.t@qq.com  QQ:909193161 非公司保密代码可共享交流。
--------------------------------------------------------------------------------------------------------------->>>>>>>>>>>>>
谢谢!





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
scf7begin
1楼-- · 2019-07-20 14:19
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-20 18:47
帮顶
zsl666888
3楼-- · 2019-07-20 21:01
 精彩回答 2  元偷偷看……
scf7begin
4楼-- · 2019-07-20 23:57

一周热门 更多>