一根是SDA数据线,一根是SCLK时钟线。
单片机可以通过IIC通信的范办法,掌握所有IIC接口的设备,比如EEPROM存储器和触摸按键芯片。
但不管如何掌握,在软件代码开拓的时候,IIC通信传输的数据始终是一个数字旗子暗记,里面包含起始位、停滞位、应答位、地址位和数据位。

如果想用IIC通信的办法,去掌握一个仿照量接口的设备呢?这个电路问题,该如何办理呢?
01 GP8502芯片
要知道,并非所有的单片机都有DAC仿照量输出功能。GP5802芯片,它是一个可以将IIC通信的数据,转换成仿照电压输出的功能芯片。
GP8502芯片
芯片的SCLK引脚和SDA引脚,是标准的IIC通信接口;VOUT引脚,便是芯片实现IIC通信转换后输出仿照电压的引脚。
就功能而言,它是与单片机DAC功能类似的,只是它可以作为一个外围电路的补充,尤其是对内部没有集成DAC功能的单片机而言。
输入一个IIC通信的数据包,经由GP8502芯片转换后,就能从VOUT引脚输出一个相应的仿照电压值。
这个输出的仿照电压值,它的最大值,取决于芯片的REFEN引脚的电压。
如果REFEN引脚拉低,输出的仿照电压值最大可以为VCC电压;如果REFEN引脚被拉高,输出的仿照电压值最大只能为2.5V。
REFEN引脚,它实质上就相称于DAC电路的一个参考电压。芯片哥这样描述,是不是就清楚多了。
当然,工程师想要芯片能正常事情,首先得使ENB引脚被拉低或者悬空;如果ENB引脚被拉高接高电平,GP8502芯片就不能实现IIC通信转换仿照电压输出的功能了。
这是软件代码开拓的一个逻辑条件。
02 GP8502芯片的转换
先容了这么多,工程师是不是还有一个比较大的迷惑
IIC通信的数据,详细怎么转换成一个仿照电压输出的呢?它们之间的量化对应关系是若何的?
能想到这个问题,足见你是一个相称精良的工程师。这个问题,也是GP8502芯片的一个关键问题。
GP8502芯片运用电路
芯片哥在开头的时候,就已经埋下伏笔了,先容了一下IIC通信标准的数据帧格式。这里面再强调一遍,一个IIC通信的数据帧,是包括起始位、停滞位、应答位、地址位和数据位。
对付在运用GP8502芯片开拓项目的工程师,真正须要关心的是IIC通信的地址位和数据位。个中地址位是固定值0X02,数据位是连续的2个字节Byte,共计16个bit位(忽略中间的应答位)。
比如IIC通信发送的数据位是0X95AE,实在也便是1001 0101 1010 1110。
在进行转换成仿照电压输出的时候,16个bit位,参与转换的也就只有12个bit位,前面的4bit位1001是无效的。
转换后得到的仿照电压值,详细的对应关系可以表述为
Vout = 0X05AE / 0X0FFF 5V
如果换做其他的16个bit位,也是按照类似的关系,去掉前面的4bit位,然后再除以0X0FFF,得到的数值乘以5V就可以了。
为什么是乘以5V呢?
这是由于,芯片哥在REFEN引脚做拉低处理了;如果是被拉高处理,那便是乘以2.5V了。
03 GP8502芯片的优缺陷
GP8502芯片,虽然能实现将IIC通信的数据转换成仿照电压输出,而且精度还能掌握在0.1%以内,但并非所有的项目都是适宜的。
如果工程师选用的单片机型号,没有DAC功能,项目本身又须要这个仿照量旗子暗记,利用GP8502芯片可以办理这类问题;
但若,项目利用的单片机,自身就集成了DAC功能,那就没必要再利用GP8502芯片了。毕竟多用一个芯片,也是一种摧残浪费蹂躏。
请持续关注【芯片哥】,后续会定期更新有关于电子元器件和芯片,包括一些电子产品项目开拓案例的干系内容。