打印
[方案讨论]

HK32F030C8硬件SPI踩坑与填坑

[复制链接]
10821|79
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sp@cai|  楼主 | 2020-10-30 15:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sp@cai 于 2020-10-30 16:34 编辑

我们公司有一款产品原先用的STM32F030C8,出货很久了,因某些原因改用了航顺的HK32F030C8。结果发现显示屏无显示,程序是一样的,于是接逻辑分析议看看。发现下面这段代码在STM上没问题,但在HK上有问题:
while((SPI1->SR & SPI_SR_BSY) > 0);
My_GPIO_WriteLow(DisplayCS_P);
SPI1->DR = 0x11;
while((SPI1->SR & SPI_SR_BSY) > 0);
My_GPIO_WriteHigh(DisplayCS_P);
在HK上的结果:

可见DR刚写入马上读SPI_SR_BSY标志,结果是空闲!
试了几个方法,都不太理想,最后将while((SPI1->SR & SPI_SR_BSY) > 0);改为while((SPI1->SR & (SPI_SR_BSY | SPI_SR_FTLVL)) > 0);问题解决!
正确时序:

不知道各位有没有遇到过这个问题?最后是怎么解决的呢?

使用特权

评论回复

相关帖子

沙发
HSXP063| | 2020-11-1 13:02 | 只看该作者
不理解为什么(SPI_SR_BSY | SPI_SR_FTLVL))   这个就可以,   你与上SPI_SR_FTLVL 这个和原来SPI1->SR & SPI_SR_BSY)  没区别吧

使用特权

评论回复
板凳
sp@cai|  楼主 | 2020-11-24 17:23 | 只看该作者
本帖最后由 sp@cai 于 2020-11-24 17:33 编辑
HSXP063 发表于 2020-11-1 13:02
不理解为什么(SPI_SR_BSY | SPI_SR_FTLVL))   这个就可以,   你与上SPI_SR_FTLVL 这个和原来SPI1->SR & SP ...

实践测试就是这样,我使用最高主频运行的,可能是运行速度太快,航顺MCU的SPI_SR_BSY标志更新慢了一点,而SPI_SR_FTLVL更新快。没有试过降低主频测试,你可以试试。

使用特权

评论回复
地板
chenjun89| | 2020-11-25 08:23 | 只看该作者
有些坑总需要有人去踩,厂家才能进步。

使用特权

评论回复
5
两只袜子| | 2020-11-25 09:11 | 只看该作者
哈哈哈,楼上的人说的太经典了,确实是这样的,多踩坑厂家才能进步

使用特权

评论回复
6
jcky001| | 2020-11-25 09:14 | 只看该作者
一边踩坑一边填坑,楼主收获不小啊

使用特权

评论回复
7
jackzhang0519| | 2020-11-26 09:45 | 只看该作者
您好!我司有代理一款CKS-中科芯的国产MCU,可以PTP软硬兼容STM32F103,030,031,051,072系列相关MCU,需要样品及技术支持可以联系我,张生: 158 1409 1680,(仅支持终端,供货稳定),感谢支持

使用特权

评论回复
8
steelen| | 2020-12-2 12:09 | 只看该作者
sp@cai 发表于 2020-11-24 17:23
实践测试就是这样,我使用最高主频运行的,可能是运行速度太快,航顺MCU的SPI_SR_BSY标志更新慢了一点,而 ...

估计是航顺MCU的SPI_SR_BSY是以SPI_CLK时钟更新的

使用特权

评论回复
9
sp@cai|  楼主 | 2020-12-7 15:32 | 只看该作者
steelen 发表于 2020-12-2 12:09
估计是航顺MCU的SPI_SR_BSY是以SPI_CLK时钟更新的

这个只有厂家知道了。这个问题在大部分的应用是没有影响的,只有在单次片选只发送一个字节数据时才会出现。

使用特权

评论回复
10
嵌入小菜菜| | 2020-12-8 21:40 | 只看该作者
软件模拟吧,我认为软件模拟也是可以的。

使用特权

评论回复
11
yangxiaor520| | 2020-12-9 08:23 | 只看该作者
现在国产MCU不论是芯片还是软件上都是仿隔壁家的,没有自己的创新,有些问题可能厂家自己都不知道,只有等用户去找bug。

使用特权

评论回复
评论
sp@cai 2020-12-12 15:58 回复TA
软件模拟的效率太低,而且数据速率也做不高。 比如我使用的TFT屏,若速率低了画面不流畅。 
12
sp@cai|  楼主 | 2020-12-12 15:48 | 只看该作者
yangxiaor520 发表于 2020-12-9 08:23
现在国产MCU不论是芯片还是软件上都是仿隔壁家的,没有自己的创新,有些问题可能厂家自己都不知道,只有等 ...

国外芯片也很多BUG,看一下意法的STM32系MCU的勘误表,填了很多坑。
国内的“后发优势”反而没有那么多BUG。
国产MCU虽然很多“仿”制,但是有些厂家一直尝试着创新,看着像是一样的,其实有些细节方面也加入了自己的特色。

使用特权

评论回复
13
sp@cai|  楼主 | 2020-12-12 15:59 | 只看该作者
嵌入小菜菜 发表于 2020-12-8 21:40
软件模拟吧,我认为软件模拟也是可以的。

软件模拟的效率太低,而且数据速率也做不高。 比如我使用的TFT屏,若速率低了画面不流畅。

使用特权

评论回复
14
名字是啥样| | 2020-12-12 16:52 | 只看该作者
感谢分享,不错的帖子,很棒。

使用特权

评论回复
15
便携手到老| | 2020-12-12 17:23 | 只看该作者
感谢楼主的分享,我好像也入坑了。哈哈

使用特权

评论回复
16
fuqinyyy| | 2020-12-13 17:25 | 只看该作者
踩的坑越多,成长得越快啊。

使用特权

评论回复
17
wangjunzhuyu| | 2020-12-16 17:11 | 只看该作者
我们是航顺原厂技术支持,麻烦留一个微信,我们确认一下。

使用特权

评论回复
18
wangjunzhuyu| | 2020-12-16 17:14 | 只看该作者
请告知一下,HSE+PLL还是HSI+PLL,   工作频率是72MHz吗? SPI 工作频率呐?

使用特权

评论回复
19
明天真的好| | 2020-12-17 20:12 | 只看该作者
感谢楼主的分享,这个技术贴收藏了。

使用特权

评论回复
20
sp@cai|  楼主 | 2020-12-29 11:57 | 只看该作者
wangjunzhuyu 发表于 2020-12-16 17:14
请告知一下,HSE+PLL还是HSI+PLL,   工作频率是72MHz吗? SPI 工作频率呐?

使用HSI+PLL,主频16MHz,SPI频率8MHz

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

27

帖子

1

粉丝