登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP网盘
VIP申请
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
S32K148+LAN8720+lwip移植+modbus-tcpip调试
S32K148+LAN8720+lwip移植+modbus-tcpip调试
[ 复制链接 ]
第璋胁
2025-8-1 15:35:55
计划一个月写一篇技术博客的,七月份又忘了,最近忙着调试新的硬件平台和移植新的功能,今天把七月份内容补上。
主要内容:S32K148+LAN8720+lwip移植+modbus调试
本次调试难点:
1)基于S32K148芯片调试lwip内容网上资料特别少,大部分底层知识需要自己查资料,看datasheet,查官方论坛;
2)S32K148+LAN8720这种组合更少,网上资料90%内容都是STM32+LAN8720,但是这部分内容需要参考学习,对于新平台有很大的帮助;
3)需要了解lwip硬件实施架构,phy电路,lwip协议栈知识以及软件移植;
4)modbus-tcpip协议基础知识
其中第3点和第4点,我觉得可以找到很详细的资料学习,第1点和第2点更多涉及硬件电路,需要较强的能力和经验,也是本次调试耗时最长的部分。
接下来我从硬件电路和软件移植两个大方面总结记录整个过程。
1 S32K148硬件电路
这部分主要定义好ENET的引脚资源,主要包括RMII接口或MII接口、SMI接口,这里需要注意一个引脚RMII_REF_CLK,这个引脚我找了好久在datasheet上一个角落发现,它把RMII_TX_CLK复用为RMII_REF_CLK
其实这部分电路也涉及到PHY电路,因为tcpip通信有一个重要信号就是时钟信号,这个时钟信号和RMII/MII接口,100M/10M网速有关,也和PHY芯片有关。本次时钟信号采用的PHY信号输出到S32K148,并把它作为RMII_REF_CLK。
2 LAN8720电路
2.1 RMII接口;
根据引脚引脚定义分别连接S32K148和LAN8720
2.2 电源部分主要包含3.3V和1.2V
3.3V电源都是常规电路,主电源LDO输出一个3.3V给LAN8720,
1.2V电源非常重要,涉及到你是采用外部1.2V,还是内部1.2V,绝大多数设计都是采取8720本身自带的1内部1.2V稳压。这里面就涉及到如果采用内部1.2V,8720的LED1引脚需要下拉接地,注意VDDCR可以直接悬空
2.3 时钟信号+晶振电路
RMII接口输出100M数据信号需要一个50M的时钟信号,8720本身可以通过25M晶振倍频到50M,然后在输出给S32K148,这部分可参考别的资料。
2.4 LED电路
LED1引脚下拉接地或上拉接电源,涉及1.2V电源使用选择,我们直接拉地
LED2引脚下拉接地或上拉接电源,涉及CLK_IN_mode和CLK_OUT_mode,我们直接拉地
2.5 SMI接口
MDC和MDIO按照引脚连接
2.6 RJ45接口
根据项目需求,选好RJ45插座
2.7 硬件复位
复位引脚连到S32K148的一个gpio
2.8 PHY地址
3 软件准备
3.1 开发环境
S32DS for ARM
3.2 基础配置
3.2.1引脚
3.2.2时钟
3.2 lwip移植
S32K148使用S32DS for ARM开发环境可以直接配置外设,其中包括配置ENET和TCPIP中间件,
3.2.1 ENET配置跟着官方教程即可
3.2.2 tcpip配置
本次调试使用裸机配置,删除FreeRTOS组件即可切换成裸机配置,后续Datalink、IP Network、Transport都可参考官方例程,IP层有一个ICMP协议需要打勾,后续调试ping的原理就是根据ICMP协议自动收发的
app中你可以选择UDP_ECHO(UDP回环),或者TCP_ECHO
3.3初始化
初次调试,可直接参考官方test.c文件,学习里面初始化过程,调用哪些函数(需要具备lwip基础知识才能看懂),后续再根据自己实际项目,重新做一个初始化函数
重点函数netif_add();enet_ethernetif_init();enetif_low_level_init();
SMI介质接口管理主要就是读取PHY寄存器和写入PHY寄存器,这部分很简单
3.4 调用函数
本次可以直接调用官方例程函数,先调试通,后续博客章节我在慢慢梳理这部分内容,包括初始化函数、tcpip服务器模式、tcpip客户端模式
3.5 lwip测试
根据你的IP地址,ping 192.168.100
4 modbus协议
其实熟悉modbus-rtu协议之后,调试modbus-tcpip会非常简单,之前博客我写过modbus-rtu的移植过程,但是此次modbus-tcpip我会换一种思路
我用modbus-poll做的测试,右下角就是IP地址和modbus-tcpip的端口
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
第璋胁
2025-8-1 15:35:55
关注
0
粉丝关注
11
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
黎瑞芝
9990
杭环
9988
4
猷咎
9988
5
凶契帽
9988
6
接快背
9988
7
氛疵
9988
8
恐肩
9986
9
虽裘侪
9986
10
里豳朝
9986
查看更多