OpenEdv-开源电子网

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

STM32F2/4 以太网 PTP功能

[复制链接]

13

主题

49

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
315
金钱
315
注册时间
2012-8-28
在线时间
22 小时
发表于 2017-11-15 14:28:15 | 显示全部楼层 |阅读模式
10金钱
最近上手IEEE1588协议,使用STM32F207芯片,LwIP 协议栈实现了TCP/IP通信,PTP协议使用ST官网的例程(例程是基于STM32F107的)移植到我的板子上来,基本上就是修改时钟,IO配置,DP83640 PHY配置(RMII接口),MAC/DMA几乎一样,另外PTP 系统时间校准使用细调方式(按照公式设置了加数寄存器的值和常量值),设置IP和MAC地址  板子和PC在一个局域网内,使用静态IP设置PC和板子处于同一个网段,交换机支持PTP转发俩接好板子,上电,PC可以ping通板子的IP(延迟均<1ms),PC端安装抓包软件,可以看到
1212.png
有 Sync Follow_up Announce  Delay_Req等消息,说明消息是真的有发送出去,打印处理的PTP状态,由开始的侦听状态,变为未校准状态,并且一直保持在这种状态,STM32也开始陷入无限的中断里面(时间戳中断,这个中断是系统时间>目标时间产生的)

程序卡死在这里!  一进中断给就目标寄存器的值在系统时间的基础上+1s,用仿真器查看目标寄存器ETH_PTPTHR 和 ETH_PTPTLR的值为0x0000000D,0x00000000  并没有更新,如果鼠标点击一下寄存器的值目标寄存器的值会更新,同时也不会在无限中断。
用这种方法使两块板不会卡死在中断里面,网络上仍然有上述同步,对时消息,可是网络上的主时钟并不能同步从时钟的本地时间,设备一直处于为校准状态。
查看F107和F207寄存器有一些差异,通过对比主要是,ETH_PTPTSCR F207有一些增加位,F207多了一些寄存器ETH_PTPTSSR, ETH_PTPPPSCR, ETH_MACDBGR, ETH_DMABMR, ETH_DMARSWTR
瞧了好久没瞧明白,有没有大神在F4或者F2平台上移植这个代码的,帮帮忙!! 急用!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2017-11-16 01:23:28 | 显示全部楼层
回复

使用道具 举报

13

主题

49

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
315
金钱
315
注册时间
2012-8-28
在线时间
22 小时
 楼主| 发表于 2017-11-18 17:24:26 | 显示全部楼层
没人帮帮的么?
经过几天的调试,结果还是没好。
退而求次,使用STM32F107,同步精度在+/-100ns之内了!!虽然不爽,项目急用也只能这样了,
不过还是会继续调207(207和407一样的寄存器)!!
回复

使用道具 举报

7

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2017-6-23
在线时间
21 小时
发表于 2017-12-24 09:17:57 | 显示全部楼层
为什么我这样时间戳初始化失败,兄弟能帮忙解答下吗? 谢谢!


ETH_PTPTimeStampCmd(ENABLE);               //使能ptp时间戳
ETH_SetPTPSubSecondIncrement(43);                //亚秒累加器值设置
ETH_PTPUpdateMethodConfig(ETH_PTP_CoarseUpdate);        //粗调模式   
ETH_SetPTPTimeStampUpdate(0,0,0);  //设置更新寄存器值  
ETH_InitializePTPTimeStamp();     //初始化
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2018-3-25
在线时间
4 小时
发表于 2018-3-25 16:34:02 | 显示全部楼层
你好,请问问题解决了吗,我需要移植到407上面,同样出现了问题?
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2018-3-25
在线时间
4 小时
发表于 2018-3-25 16:38:41 | 显示全部楼层
2420163103 发表于 2017-12-24 09:17
为什么我这样时间戳初始化失败,兄弟能帮忙解答下吗? 谢谢!

107和407,时间戳这块不一样,不能用官网的107的示例代码
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2018-5-24
在线时间
12 小时
发表于 2018-5-24 20:53:08 | 显示全部楼层
aabbme 发表于 2018-3-25 16:34
你好,请问问题解决了吗,我需要移植到407上面,同样出现了问题?

兄弟。我也是需要移植到407上,要不要加扣扣讨论一下,QQ1228073706,也希望有移植成功的大佬们能分享一下源码,大恩不言谢
回复

使用道具 举报

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-8-10
在线时间
4 小时
发表于 2018-8-10 15:10:33 | 显示全部楼层
雁落无殇 发表于 2018-5-24 20:53
兄弟。我也是需要移植到407上,要不要加扣扣讨论一下,QQ1228073706,也希望有移植成功的大佬们能分享一 ...

我也是需要移植到407的,大哥有源码么?
回复

使用道具 举报

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-8-10
在线时间
4 小时
发表于 2018-8-10 15:11:01 | 显示全部楼层
大哥,能分享一下源码么?
回复

使用道具 举报

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-8-10
在线时间
4 小时
发表于 2018-8-10 15:11:28 | 显示全部楼层
aabbme 发表于 2018-3-25 16:38
107和407,时间戳这块不一样,不能用官网的107的示例代码

官网有103的源码?
回复

使用道具 举报

11

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
235
金钱
235
注册时间
2018-5-4
在线时间
78 小时
发表于 2020-3-9 15:56:29 | 显示全部楼层
能不能发一份资料呢,谢谢。782982381@qq.com
回复

使用道具 举报

11

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
235
金钱
235
注册时间
2018-5-4
在线时间
78 小时
发表于 2020-3-9 16:03:24 | 显示全部楼层
aabbme 发表于 2018-3-25 16:34
你好,请问问题解决了吗,我需要移植到407上面,同样出现了问题?

弄好了吗,老铁,给我发一份呗,谢谢782982381@qq.com
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-9-16
在线时间
1 小时
发表于 2020-6-24 10:33:58 | 显示全部楼层
在STM32F407上怎么配置才能在PB5或者PG8输出PPS秒脉冲。看库函数里没有找到的ETH_PTPPPSCR在哪里?
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-9-16
在线时间
1 小时
发表于 2020-6-24 10:37:55 | 显示全部楼层
aabbme 发表于 2018-3-25 16:38
107和407,时间戳这块不一样,不能用官网的107的示例代码

PTP基本功能是通了,有个问题请教在F407上,如何配置秒脉冲的输出呢?与定时器TIM2有关联吗?还是复用PB5或者PG8,打开PPS输出就行?越来越糊涂,标准库函数也没有找到
ETH_PPS配置的函数?

回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2020-6-19
在线时间
7 小时
发表于 2020-9-10 10:20:07 | 显示全部楼层
@nmtccbj 大佬,407怎么实现PTP,能给一份源码,学习一下吗
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2020-10-13
在线时间
1 小时
发表于 2020-10-13 13:14:01 | 显示全部楼层
nmtccbj 发表于 2020-6-24 10:37
PTP基本功能是通了,有个问题请教在F407上,如何配置秒脉冲的输出呢?与定时器TIM2有关联吗?还是复用PB5 ...

大佬可以分享下PTP源码吗
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2018-5-24
在线时间
12 小时
发表于 2020-10-13 13:28:49 | 显示全部楼层
本帖最后由 雁落无殇 于 2020-10-13 13:30 编辑
雁落无殇 发表于 2018-5-24 20:53
兄弟。我也是需要移植到407上,要不要加扣扣讨论一下,也希望有移植成功的大佬们能分享一 ...

最后没搞出来,现在已经毕业了,不搞了,期间一直有道友加QQ,在这回复一下。而且有些东西年久失修,现在已经不搞STM32了,QQ我删除了。
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2020-4-25
在线时间
9 小时
发表于 2020-12-9 11:39:27 | 显示全部楼层
初始化不正确吧,寄存器的配置。
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2020-4-2
在线时间
2 小时
发表于 2021-1-21 20:52:07 | 显示全部楼层
nmtccbj 发表于 2020-6-24 10:37
PTP基本功能是通了,有个问题请教在F407上,如何配置秒脉冲的输出呢?与定时器TIM2有关联吗?还是复用PB5 ...

大佬可以发源码给我参考吗  感激不尽   754774038@qq.com
回复

使用道具 举报

2

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2020-11-10
在线时间
15 小时
发表于 2021-5-8 09:37:59 | 显示全部楼层
nmtccbj 发表于 2020-6-24 10:37
PTP基本功能是通了,有个问题请教在F407上,如何配置秒脉冲的输出呢?与定时器TIM2有关联吗?还是复用PB5 ...

大佬,我现在刚接手407的ptp,能求一份源码吗,参开一下1300616391@qq.com
回复

使用道具 举报

2

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2020-11-10
在线时间
15 小时
发表于 2021-9-6 09:28:16 | 显示全部楼层
nmtccbj 发表于 2020-6-24 10:33
在STM32F407上怎么配置才能在PB5或者PG8输出PPS秒脉冲。看库函数里没有找到的ETH_PTPPPSCR在哪里?

请问您现在解决了吗,秒脉冲的输出,我现在也在用407的板子,不知道咋输出秒脉冲
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-6-9 08:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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