查看: 34874
回复: 22
制作一款基于USB串口的I2C在线调试神器
那林
11
主题
52
回复
发表于2017-02-21 16:50:16 | 显示全部楼层
1# 电梯直达

制作一款基于USB串口的I2C在线调试神器

                     

1、作品简介

I2C总线,是NXP半导体(原PHILIPS)于20多年前发明的一种简单的双向二线制串行通信总线,也叫I2CIIC(Inter-Integrated Circuit,内部集成电路总线)

I2C总线是各种总线中使用信号线最少,电路简洁,并具有自动寻址、多主机时钟同步和仲裁等功能的总线。因此,基于I2C接口的各类芯片器件,

在实际市场中得到广泛应用。这些芯片例如:

 

24CXX系列的EEPROM,如24LC0824C0124C128等等

I2C总线8位并行IO口扩展芯片PCF8574/JLC1562

I2C接口时钟芯片DS1307/PCF8563/SD2000D/M41T80/ME901/ISL1208/

I2C ADC芯片ADS1110 (16bitADC)/ADS1112(16bitADC)/

I2C DAC芯片DAC5574(8bitDAC)/DAC6573(10bitDAC)/DAC8571(16bitDAC)/

I2C接口的温度传感器SHT30/SHT31/TMP101/TMP275/DS1621/MAX6625

 

为了评估这些芯片,通常的做法是使用一个单片机或ARM,自行编写I2C驱动代码,然后对这些器件进行读写操作,并把数据结果上传到PC机的方式进行展现。

然而,这样的做法较麻烦,因为单片机需要反复的烧录和调试,不是很直观和方便。为此,本人使用来自英国著名公司FTDI的高性能USB转串口芯片FT234XD芯片

+NXP公司的UARTI2C总线协议管理器芯片C18IM700制作了这款可在线实时读写I2C总线的调试利器、神器这款利器具有操作简单(会打字就行)、显示直观

地特点,大大提高了测试和评估各类I2C器件的工作效率。下面,请允许本人给大家介绍这款利器的设计过程和使用方法。

 

2、作品亮点

实现通过UART协议读写I2C协议的从器件或者传感器,不用写繁琐的I2C程序咯!

I2C的底层驱动由原发明人--NXP公司设计和提供,确保了I2C驱动的最佳时序!

采用业界公认的USB接口专家--FTDI公司出品的FT234XD作为USB转串口单元。

可高速通信,C18IM700UART支持到460KI2C支持到400K

接口信号:SCLSDAGND+5V+3.3V

本方案验证板采用USB BUS总线供电,评估I2C器件,无需额外再提供电源。

C18IM700的所用IO均引出,包括8GPIO端口和2个输入按键。

本方案验证板一分为二,即可单独用作USB转串口模块,也可以单独用在I2C读写模块。

2.3-3.6V供电,支持5V IO口的I2C电气接口。


3、系统构架图

系统解说: 本系统有二大部分组成,分别是:基于FT234XD的高性能USB转串口模块部分和基于NXPSC18IM700 I2C MASTER总线驱动模块部分。

 

4、原理图


原理图分为多个部分,下面逐个介绍:

第一部分: USB转串口模块部分

 

备注说明: 上图使用的是FTDI官方推荐的应用电路,其中U1FT234XD 负责实现USB转串口的芯片,C9C10R10R11组成了USB总线的信号匹配和防D+D-短路(过流)的电路,

FT234XD内置USB上拉电阻,所以无需额外在增加。U3USB总线的抗静电保护器件,采用的是美国力特LittelFuse公司出品的SP0503BAHTG, 可以根据需要焊接或不焊接。而R1

R2Q1C5组成用来一个软启动、VBUS(5V)电源输出的电路,以减轻对外部负载的电流冲击,进而影响到USB通信芯片 FT234XD的稳定性和可靠性。如果不需要这个软启动电路,

可以不焊接这些器件,同时用一个零欧姆的电阻跳过该功能。类似地,R18C14是接到USB连接器的外壳,用于增加外壳的ESD防护能力,可根据需要焊接或不焊接。

 

第二部分:系统的供电电源部分


 

备注说明: 如上图所示,本方案验证板模块,可对外提供+5V+3.3V电源,其中 +3.3V电源由LDO芯片采用台湾Holtek 公司的 HT7233SOT-89封装,最大可提供300mA的驱动

能力,这个基本能覆盖绝大部分的I2C器件的评估需求。

 

第三部分: I2C总线驱动模块部分

 

备注说明: 如上图所示,I2C总控制器采用NXPSC18IM700这个芯片,它的RX TX引脚分别交叉接到USB转串口芯片的TXDRXD端口。这样以来,上位机软件(如串口助手之类的

就可以直接控制SC18IM700进行I2C总线的读写操作了。此外,图中的S1轻触开关是用来复位芯片的,如果I2C操作出现异常或者觉得有必要,用户可以按下此开关,进行I2C总线的初始化。

S2是用来唤醒芯片的,当SC18IM700被设置进入SLEEP状态时。


5、材料清单(BOM列表)

以下是这个电子制作的BOM列表,器件全部采购来自立创商城http://www.szlcsc.com,PCB板的制造在深圳嘉立创完成。除了插件的器件外,SMT也是嘉立创完成滴。


6、软件部分的描述

软件部分,这个应用方案模块,不需要编写任何代码,纯硬件电路实现,正常焊接即可使用。

 

7PCB实物图





8、调试过程和应用实例

第一步: 准备工作

根据上面的BOM表焊接好PCBA后,如果焊接正常的话,通过MicroUSB数据线将它插入到PC机的USB串口后,接着安装FT234XD的串口驱动程序,随后即可进入工作状态。


第二步: 测试PCBA是否焊接正常?

打开USB串口软件(本人用的是SSCOM3.3串口助手),按这个常见的波特率进行设置:(9600,N,8,1, 这个波特率也是SC18IM700的默认波特率,如需修改后面还可以通过相应寄存器

进行设置)。接着,将短接帽JP1JP2接入,即把USB转串口芯片的TX&RXSC18IM700的串口线TX&RX连接起来;随后,用手去按下S1复位一下SC18IM700芯片。此时,如果在串口助手

看到有字符“OK“显示,表示PCBA功能基本正常。

 

第三步:进一步测试TXRX的连线是否正常

上一步,只是初步测试了串口RX的接收情况,没有测试TX功能。测试TX功能,可以通过读写SC18IM700内部寄存器的方式进行判断,这些寄存器的地址和复位默认值如下:

测试方法,比如我们要读写SC18IM70000 01 号寄存器的上电复位默认值,只需在串口助手软件上,以HEX发送的方式,输入“52 00 01 50”即可,如果硬件和连接一切正常的话,

串口助手的接收端(HEX格式接收)会显示“F0 02 “

 

第四步:应用实例1 点亮或熄灭SC18IM700GPIO端口上外接的一个LED指示灯。

首先,需要给大家说明的是,所有对I2C 总线控制器 SC18IM700的读写和控制,即在线调试,都是通过USB转串口跟芯片SC18IM700之间的交互完成的。这些交互指令,如下:

 

SC18IM700本身带有8GPIO接口,每个GPIO可以设置成四种模式(输入或输出),假设一个LED指示灯接到了GPIO.0 这个PIN上,为了点亮或熄灭这个LED 指示灯,我们首先可

直接在串口助手上,发出"4F00 50"或者“4F 01 50" 即可。

第四步:应用实例2:读写EEPROM 芯片24C02

为了,读写EEPROM,我们需要根据SC18IM700的以下这个指令格式,进行操作。

具体地,

为了读取16个默认地址的数据,我们只需要在串口助手里输入和发送“53 XX 10 50”。

其中,XX24C02I2C地址(最低字节要为1,表示读),10是表明要读16个数据。

 


为了写入默认地址的8个字节数据,我们只需要在串口助手里输入和发送“53 YY 08 D1 D2 D3 D4 D5 D6 D7 D8 50”。其中,YY24C02I2C地址(最低字节要为0,表示写),

08是表明要写入8个数据。

 

因篇幅所限,SC18IM的其它功能在此就不在展现,比如为了设置I2C的读写时钟,我们可通过设置SC18IM700内部0708号的寄存器值,来改变。也可以通过修改SC18IM700内部

09号的寄存器值,来设置或禁止I2C总线的读写信号的时间限定值。通过读取SC18IM700内部0A号的寄存器值,来获取I2C总线执行的结果,通过设置0001号寄存器进行串口波特

率速度的调整等等。


9、总结

只使用两个芯片SC18IM700SC18IM700,我们便制作出了这款可在线实时读写I2C总线的调试利器、神器!使用它,我们只需要在串口助手软件上,直接根据I2C的读写格式,

发出相关的操作命令即可对I2C器件进行读写操作,而无需编写任何头疼的I2C代码,也不用反复烧录单片机的调试代码,而是重心放在如何应用I2C器件方面,大大提高了测试

和评估各类I2C器件的工作效率!

此作品以方案验证板的形式出现,并得到了立创商城的赞助,在此表示非常感谢!顺此,授权立创商城对本作品进行宣传和开源!


本内容系原创,首发于《立创快报》第4期,目前仅授权【立创商城】公众号(微信号:szlcsc)及其相关平台转载。

其它任何媒体或个人,未经本作者许可、不得引用。

 

厚积薄发,再创辉煌!
YeeRay
7
主题
215
回复
发表于2017-02-23 17:34:41   |  显示全部楼层
8#
这个不错啊,立创有卖吗?

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部