搜索
bottom↓
回复: 21

【分享】使用STM32F1x或4x系列的硬件SMI配置KSZ8863时需慎重考虑

[复制链接]

出0入0汤圆

发表于 2017-8-9 16:37:03 | 显示全部楼层 |阅读模式
如果你要使用STM32F107或407/429等系列的硬件SMI去管理KSZ8863的寄存器时需慎重考虑,因为这个片子不支持操作码(OP code)配置,只有读写控制位,读时操作码默认为:10,写为01,这个10或01是无法修改的。

由于标准的MIIM=SMI协议中,PHY和REG地址都是5bit的,最多寻址32个寄存器。但是像KSZ8863这样的switch的寄存器有100多个,超出了标准PHY的寄存器个数,这样就不能使用标准的SMI协议来读取了。
标准的SMI格式如下:


KSZ8863采用了修改操作码+修改PHY地址实现了可以寻址8位即256个地址的寄存器方案。操作码修改成了:00,标准SMI是没有00操作码的,像stm32f407这类片子,不支持配置操作码,所以也就无法使用硬件SMI接口读取100多个寄存器啦。
KSZ8863提供的标准MIIM接口,只能读16个寄存器值。原本PHY状态寄存器是在这16个寄存器中的(其他PHY芯片都是这样做的),但是它却把它放到了扩展寄存器中,导致407无法读取PHY的状态,



KSZ8863提供的扩做SMI接口,可以读取198个寄存器,这些寄存器中的某些位包含了前面16个寄存器中的所有位。但是不是所有的MCU的硬件SMI都支持读的。



后又看了下其他的MCU的SMI管理寄存器中操作码是否可以更改,发现飞思卡尔常用系列的单片机都有这个功能,ST的只有H7系列有,LPC的17xx,18xx都没有,详细情况见下图所示:
















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-8-9 16:41:08 | 显示全部楼层
感谢楼主分享,正打算用这片子呢。

出0入0汤圆

发表于 2017-8-9 17:02:28 | 显示全部楼层
我原来以为 直接 接交换芯片就好了 结果还有这么多内涵 长知识了

出0入4汤圆

发表于 2017-8-9 17:13:44 | 显示全部楼层
用bigbang,就是io模拟smi协议,microchip官网有例程

出0入0汤圆

 楼主| 发表于 2017-8-9 17:57:57 | 显示全部楼层
richards 发表于 2017-8-9 17:02
我原来以为 直接 接交换芯片就好了 结果还有这么多内涵 长知识了


寄存器比简单的PHY多好多,如PHY有32个寄存器,这货就就198个

不过多数都不用配置,默认就行。

出0入0汤圆

 楼主| 发表于 2017-8-9 21:17:01 | 显示全部楼层
本帖最后由 guxingganyue 于 2017-8-9 21:27 编辑
ibichao 发表于 2017-8-9 17:13
用bigbang,就是io模拟smi协议,microchip官网有例程


嗯,谢谢提醒。正打算模拟一个呢,有的寄存器还是必须得读写下啊

出0入0汤圆

 楼主| 发表于 2017-8-9 23:27:33 | 显示全部楼层
ibichao 发表于 2017-8-9 17:13
用bigbang,就是io模拟smi协议,microchip官网有例程

你说的是这个吧,linux下的驱动,看了下,内容好复杂啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-8-9 23:28:20 来自手机 | 显示全部楼层
模拟就好了!就是写个软驱动。

出0入0汤圆

 楼主| 发表于 2017-8-9 23:30:42 | 显示全部楼层
lingdianhao 发表于 2017-8-9 23:28
模拟就好了!就是写个软驱动。

决定这么做了,,正在找楼上那位说的bigbang代码

出0入4汤圆

发表于 2017-8-10 08:12:10 | 显示全部楼层
guxingganyue 发表于 2017-8-9 23:30
决定这么做了,,正在找楼上那位说的bigbang代码

在在个文件中 KSZ8863MLL_FLL_RLL_DP1.7

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2017-8-10 09:04:22 | 显示全部楼层
ibichao 发表于 2017-8-10 08:12
在在个文件中 KSZ8863MLL_FLL_RLL_DP1.7

谢谢

我把整个包传上来供需要的人下载吧
下载地址:http://www.microchip.com/wwwproducts/cn/ksz8863


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入13汤圆

发表于 2017-8-10 09:27:52 | 显示全部楼层
来学习下,谢谢分享

出100入101汤圆

发表于 2017-8-10 10:01:36 | 显示全部楼层
198个寄存器,复杂!

出0入0汤圆

 楼主| 发表于 2017-8-10 12:21:25 | 显示全部楼层
fengyunyu 发表于 2017-8-10 10:01
198个寄存器,复杂!

还行,,带管理型的switch、多口的那种寄存器更多呢

出0入0汤圆

发表于 2018-4-6 17:30:45 | 显示全部楼层
如果不管理交换芯片,当一般的phy芯片用,能否只访问32个基础器就足够了呢?

出90入4汤圆

发表于 2018-4-6 23:52:03 来自手机 | 显示全部楼层
ljq77402 发表于 2018-4-6 17:30
如果不管理交换芯片,当一般的phy芯片用,能否只访问32个基础器就足够了呢? ...

当然可以。默认值,直接用,也可以软件模拟smi

出0入0汤圆

发表于 2018-4-12 08:42:27 | 显示全部楼层
john78 发表于 2018-4-6 23:52
当然可以。默认值,直接用,也可以软件模拟smi

请问,能否用SPI接口访问KSZ8863的所有寄存器?

出0入0汤圆

发表于 2018-4-12 12:04:42 | 显示全部楼层
楼主实现了VLAN 功能吗?  VLAN可以实现两个独立网卡功能。



出0入0汤圆

 楼主| 发表于 2018-4-12 13:13:05 | 显示全部楼层
ljt80158015 发表于 2018-4-12 12:04
楼主实现了VLAN 功能吗?  VLAN可以实现两个独立网卡功能。

这个没有实现啊,只用了交换功能

出0入0汤圆

 楼主| 发表于 2018-4-12 13:14:49 | 显示全部楼层
本帖最后由 guxingganyue 于 2018-4-12 16:44 编辑
Stargazer-1986 发表于 2018-4-12 08:42
请问,能否用SPI接口访问KSZ8863的所有寄存器?


理论上应该可以的,你可以试试。

不过模拟的smi也非常好用

出0入0汤圆

发表于 2020-3-23 09:54:27 | 显示全部楼层
学习了,谢谢!!

出0入0汤圆

发表于 2020-9-21 15:07:49 | 显示全部楼层
对照着bitbang写的软件模拟SMI,一直无法有效读写,有什么需要注意的问题嘛。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-5 11:38

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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