
通讯系统之中,IIC和UART以及SPI是最主要的三种方式。IIC只有两根线,一根是数据线SDA,一根是时钟线SCL,有IIC接口的器件都会拥有一个地址,主机作为发送端,当发送的地址与接收端地址匹配后,接收端会返回一个应答信号,然后才会继续传送数据。在近距离的数据传输中,IIC应用最为广泛。
本次使用的芯片是13年和15年国赛指定的型号为RL78G13100lea芯片,建议读者先对瑞萨MCU的Datasheet都进行一次阅读,以及包括配套板子的原理图。阅读本文前建议先阅读上两期文章。
接下来分析IIC协议以及程序的编写
IIC的总线在主机与各器件中通常是这样子连接的,上接了电阻接到电源,则在IIC空闲时会显示高电平,连接到器件的任一信号出现了低电平将使总线信号变低。在本次课程中,也依然需要这样两个上拉电阻,否则信号会一直显示低电平,不能显现波形:

在传输过程当中,当时钟线SCL为高电平期间,数据线SDA上的数据要保持稳定,这样的数据才是有效的。时钟线为低电平,数据线上数据才允许变化。

时钟线为高点平期间,数据线从高电平变到低电平则表示传输开始,数据线从低电平变到高电平则表示传输结束。

IIC传送的字长都是8位,传输的过程中需要接受一端的器件向主机返回应答信号,主机才会继续传输数据,否则将终止信号的传输。
我们分析一下程序的编写,本次程序使用的是IICA0。在这个程序里,首先赋予地址add的值为0xA0,这是因为这个例程里外围的EEPROM的地址就是0xA0,之后传输的是4个数据,分别是0x00,0x11,0x22,0x33,调用IIC发送函数数据,并做简单延时,只后再次发送一个数据,将地址指针恢复,之后再调用一个接收函数。

下来使用逻辑分析仪软件模拟IIC协议的波形并分析
同样的,在不接入外围的逻辑分析仪时,打开逻辑分析仪软件,添加IIC协议,使用默认方式。模拟得到如下波形,通过该波形我们可以看到红色矩形标示框表明起始位的分析与上述一致。

接下来使用瑞萨产生IIC通讯并用逻辑分析仪捕获信号
首先是硬件间的连接,通过光盘自带的mcu原理图我们可以看到,IICA0使用的接口是17引脚的SCLA0以及18引脚的SDAA0,分别接入CH1和CH0通道。

同时,这两个引脚需要接入外部上拉电阻,如图形式,上拉电阻可以选10k等。

因为只是为了测试信号,我们可以使用面包板来布设这样的一个简单电路,如下图示。由于跳线过多,需要认真检查连线是否正确。实际过程中IIC为了减少干扰,最好是在电路板上发送与接收端直连且越近越好。

将程序烧写到板子上,启动逻辑分析仪并运行程序,我们会发现在逻辑分析仪只出现了如下波形,首先红色矩形框表示了传输信号的起始,这与我们此前分析的一致。黄色矩形框表示了数据开始。黄色椭圆框表示了传输的一个八个字长的字节,由于是高位在先,数据位10100000即0xA0,此后数据产生了一个结束传输的标志,终止了传输。这是因为外围并没有一个地址是0xA0的器件对瑞萨芯片返回应答信号,因而IIC不再传输数据。

长按左侧二维码,识别关注

