南京沁恒微CH395Q以太网芯片调试详解

本文详细介绍南京沁恒微电CH395Q调试过程以及步骤,并且将踩到的坑进行说明

背景介绍:

单片机采用STM32F407VET6,通过串口的方式与CH395Q进行通讯,利用CH395Q芯片建立客户端并且连接电脑建立的服务器,系统采用FreeRtos,通过给CH395Q配置IP,子网掩码,网关,端口号以及目标IP,目标端口号并且使能socket进行连接。

初始化步骤

CH395支持三种通讯模式,SPI、串口以及并口,具体要用哪种模式需要通过外部引脚进行配置,指令都是一样的,区别只是通讯方式不同,串口再多两个同步码而已,这个参考CH395的手册就可以。
CH395采用类似应答的模式进行通讯,在串口通讯中需要先设置串口的波特率,CH395提供了三个外部引脚对波特率进行设置,并且支持动态波特率设置,这点需要清楚,串口通讯模式下,在发送指令之前需要发送两个字节的同步码,为0x57,0xAB,必须先发送这两个同步码后再发送CMD指令
在这里插入图片描述

  1. 当在硬件上配置好了CH395之后,第一步先测试单片机与CH395芯片连接状态,需要通过串口发送0x57,0xAB,0x06,0xXX,XX表示任意的16进制数据,当发送了06指令后,CH395就会将XX数据按位取反之后发送给单片机,单片机检测回传回来的数据就可以检测到单片机与CH395是否连接正常,若正常,则进行下一步操作,若不正常,首先检查波特率是否一致,引脚是否配置为串口模式,检查单片机串口配置是否正常等。在这里插入图片描述
    重点来了,请注意!!!
    CH395手册上说的很清楚,所有的数据发送都是以小端在前的格式进行发送,注意注意是小端,若端口号为8080,那么实际对应的16进制应该是0x1F90,所以在发送的时候要发送0x90,0x1F,切记不能发反,否则CH395会提示指令发送成功但是实际数据是不对的!更要注意的是发送IP地址的发送,IP地址假如是192.168.1.64,此时,手册也说的很清楚,先发送192再发送168然后是1然后是64,请务必认真一字一句读下面这张图
    请务必认真一字一句读下面这张图!!!
    在这里插入图片描述

  2. 若检测到单片机和CH395连接正常之后,先不要着急初始化,首先要配置CH395的IP地址,子网掩码和网关地址,配置完成之后再进行初始化。
    在这里插入图片描述

  3. 设置本机地址ip与子网掩码,网关地址的方式就是定义成数组,然后通过指针++的方式进行发送,但是要记得每次发送指令前都要加同步码,在发送指令之后要等待CH395返回数据,0x00表示操作成功,也有对应的故障码,可看下图
    在这里插入图片描述

  4. 在发送完数据之后要等待CH395的响应方可进行下一步操作,这也是CH395我觉得最不好的地方,效率太低。完成上述所有步骤之后C395即可建立客户端并尝试连接服务器,我们在电脑上利用网络调试助手建立服务器就可看到CH395连接成功,下面就是数据的收发过程。
    建立连接之后就可以进行数据发送,但是要切记,发送完数据之后一定要再发送查询命令之后才能再次发送!也就是0x30这个指令,当发送了一帧数据之后INT中断引脚就会自动有下降沿的中断,此时检测到中断后发送查询命令0x30进行查询,这个查询返回码有一张表,对应这张表就可得出ch395当前状态,这张表的值都是或的关系,即在同一时间可以存在很多种状态,所以我们需要与的方式查看对应的状态,当时我发送一帧数据之后死活再也发不出去,最后排查才发现需要发送这个查询码才可以
    在这里插入图片描述

  5. 当发送一帧数据之后INT中断引脚就会产生下降沿,触发单片机外部中断,此时就要查询状态来做出判断,比如说发送了一帧数据之后INT产生中断,发送查询指令后返回值为0x03,那么就对应图上的发送缓冲区空闲和发送成功状态,当发送一帧数据之后必须查询发送缓冲区非空才能继续发送,否则TCP连接就会断开,当TCP连接断开时,就要重新打开socket和重新连接,所以操作时尽量谨慎。发送的最大字节数也有限制,这个需要仔细查看手册。CH395支持8个socket,但是默认是给前四个socket分配了发送缓冲器和接收缓冲区,若要用后四个,则需要通过指令配置缓冲区,这个如果用到就查看手册,照猫画虎即可。
    在这里插入图片描述

  6. 如果要建立UDP或者TCP的服务器,按照手册最后的流程一步一步就行,在最后如果谁需要驱动程序直接在南京沁恒微的官网上搜索CH395就能下载到技术手册以及例程,在例程种有readme,里面是对所有例程的介绍,在最后一个文档中有ch395的c和h文件,直接调用即可。
    在这里插入图片描述
    在这里插入图片描述
    用这个CH395之后的感受就是,这个芯片的优点是集成了TCP/IP协议栈,并且集成了mac和phy,对于新手或者不是很懂计算机网络的程序员比较友好,属于把难的问题麻烦化,缺点是发热比较猛,而且如果能用spi或者并口的尽量使用spi或者并口,因为速度会快很多,这个芯片需要中断和应答,所以通讯起来效率比较低,发送数据还要查询,而且要写一个高内聚低耦合的驱动程序也需要费点心思,有种类似AT指令操作的味道
    总结
    你用我推荐,真用我不用

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
CH395Q芯片手册是关于CH395Q芯片的详细说明书。CH395Q芯片是一款由某家芯片公司生产的单片机芯片,它具有强大的功能和广泛的应用领域。 手册首先介绍了CH395Q芯片的概述,包括其主要特点、应用场景以及技术规格。然后详细介绍了该芯片的主要功能模块和接口,如GPIO、定时器、串口等。手册还提供了芯片的引脚图和外围电路设计指南,帮助用户正确连接和使用CH395Q芯片。 在功能模块的介绍中,手册详细说明了每个模块的工作原理、寄存器配置和使用方法。例如,GPIO模块可以用来控制外部设备的输入和输出,手册介绍了如何配置GPIO口的工作模式、输出电平以及中断功能的使用。定时器模块可以用来实现精确的时间计数和定时任务,手册详细说明了定时器的工作原理、寄存器配置和中断处理方法。 此外,手册还提供了一些典型应用示例,帮助用户更好地理解和应用CH395Q芯片。这些示例包括LED闪烁、蜂鸣器控制、温度传感器读取等,用户可以根据手册的指引实现这些功能。 最后,手册还提供了关于软件开发和调试的指南,帮助用户在使用CH395Q芯片进行软件开发时遇到问题的解决方法。手册中还提供了相关开发工具的下载链接和使用说明,方便用户进行开发和调试工作。 总之,CH395Q芯片手册是用户使用和开发CH395Q芯片的重要参考资料,通过阅读手册可以全面了解该芯片的特性、功能和应用方法,帮助用户正确使用和开发CH395Q芯片
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值