完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
想使用外部的GPS秒脉冲给MASTER做为基准时钟,然后通过1588协议让其他SLAVE同步.我下载了官网例程,但不知道怎么把GPS的秒脉冲和1588的时钟关联起来.使用ETH_PTPtime_SetTime在秒脉冲中断中每秒设置一次时间?感觉不太对.
|
|
相关推荐
1个回答
|
|
要在STM32F107上使用外部时钟(如GPS秒脉冲)作为基准时钟,并通过1588协议让其他从设备(SLAVE)同步,您需要按照以下步骤操作:
1. 配置GPIO:首先,您需要将STM32F107的一个GPIO引脚配置为输入,用于接收GPS的秒脉冲信号。 2. 设置中断:为该GPIO引脚设置中断,以便在接收到秒脉冲时触发中断。 3. 在中断服务程序中,使用ETH_PTPTime_SetTime函数设置PTP时钟的时间。您需要将GPS秒脉冲的计数器值转换为PTP时钟的时间格式。这通常涉及到将秒脉冲计数器的值与PTP时钟的起始时间相加。 4. 配置1588协议:在STM32F107上启用1588协议,并配置为MASTER模式。这通常涉及到配置以太网接口、PTP时钟和相关参数。 5. 同步从设备:通过发送1588协议的同步消息(如Sync和Follow_Up消息),将MASTER的PTP时钟时间同步到从设备。 6. 校准和调整:根据实际应用需求,可能需要对时钟进行校准和调整,以确保从设备与MASTER的时钟同步精度。 关于您提到的“使用ETH_PTPTime_SetTime在秒脉冲中断中每秒设置一次时间”,这种方法可能不是最佳实践。因为1588协议的同步精度通常在亚微秒级别,而每秒设置一次时间可能导致同步精度降低。相反,您应该在接收到GPS秒脉冲时,根据秒脉冲计数器的值和PTP时钟的起始时间计算出准确的PTP时钟时间,并使用ETH_PTPTime_SetTime函数设置。 总之,要实现STM32F107使用外部GPS秒脉冲作为基准时钟并通过1588协议同步从设备,您需要配置GPIO、设置中断、在中断服务程序中设置PTP时钟时间、配置1588协议并同步从设备。在实际应用中,可能还需要对时钟进行校准和调整以满足同步精度要求。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1614 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1541 浏览 1 评论
970 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
682 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1592 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 21:14 , Processed in 0.827125 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号