打印
[Kinetis]

【Kinetis分享】+智能电表的设计

[复制链接]
2506|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wlzxzq|  楼主 | 2014-12-22 15:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式


  gprs信号保护电路设计       dp83848电路  
这个是我用K60做的智能电表总体设计。

1,功能描述
本设计通过使用k60一个cortexM内核的高效性能完成智能电表的设计。1、采用K60内置的mac层与外置的PHY层通过MII通信方式完成以太网的硬件连接,通过移植LWIP完成对以太网通信的软件部分;2、通过采用三相计量芯片ADE7878完成电表的主要功能,对电压、电流、功率、频率等等多参数的采集以及计算(这个是智能电表的核心);3、采用外置看门狗芯片完成对K60芯片组的管理以及监督;4、通过外置FLASH模组完成对信息的存储;5、通过采用恩智浦以及ad公司芯片完成对数据传输的保护性以及可靠性上,采用HYM8025以及恩智浦芯片完成对gprs和usb等数据的通信。

2,部分程序设计
case Init_State:
                feeddog();//1S喂外加硬狗
                ETH_Level_Config();
                ucLinkTimeCount = 0;
                SimpleStateMachineState = Link_State;
                break;
        case Link_State:
                feeddog();//1S喂外加硬狗
                if(ucLinkTimeCount>100)
                {
                        ucLinkTimeCount = 0;
                        uwLinkStatus = ETH_ReadPHYRegister(ucPHY_Addr, PHY_BSR);
                        if( (uwLinkStatus!= ETH_ERROR)&&(uwLinkStatus!= 0xFFFF)&&(uwLinkStatus & PHY_Linked_Status))
                        {
                                        SimpleStateMachineState = Init_MAC;       
                                        ucLinkDownCount = 0;
                        }
                        else
                        {
                                if(ucLinkDownCount++>=3)
                                {
                                        GPIOE->BSRRH = GPIO_Pin_6 ;//PHYRST拉低       
                                }       
                        }

                }
                else if((ucLinkTimeCount>20)&&(ucLinkDownCount>=4))
                {
                        GPIOE->BSRRL = GPIO_Pin_6 ;//PHYRST拉高
                        ucEthernetConnectFlag = 0;
                        ucLinkDownCount = 0;
                            //        OffErrLight ();
                }
                break;
        case Init_MAC:
                feeddog();//1S喂外加硬狗
                ETH_BSP_Config();       
                LwIP_Init();       

                RingBufInit(&stEthernetRcvBuffer, ucRcvBuffer, sizeof(ucRcvBuffer));
                SimpleStateMachineState = GetIPAddress_State;
                return;


3、此设计还在完善,不断调试。继续努力。

相关帖子

沙发
fengkou6| | 2015-6-11 21:11 | 只看该作者

使用特权

评论回复
板凳
Luis德华| | 2015-6-12 08:58 | 只看该作者
赞一个
楼主上些做完板子的图片吧

使用特权

评论回复
地板
大黄蜂韩国| | 2016-8-9 20:59 | 只看该作者
的顶顶顶顶顶

使用特权

评论回复
5
17621371235| | 2018-7-16 13:48 | 只看该作者
您好,可以将ADE7878驱动采样程序发一下吗,邮箱934088431@qq.com,非常感谢

使用特权

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

本版积分规则

13

主题

177

帖子

1

粉丝