硬件电路设计要点
国产3PEAK(思瑞浦)面向工业、通信等市场不断深入开拓,推出的小体积、集成多通道可配置模数和数模转换器模拟前端芯片TPAFE0808,内置8通道12bit ADC、8通道12bit DAC、片内参考电压及温度传感器,但尺寸低至2x2mm,非常适宜用在需要多通道模拟外设且要求小体积的产品上,比如光模块等,深受广大工程师的喜爱。
TPAFE0808作为高集成度的模拟前端芯片,在电路设计上有多个需要注意事项,本文做了详细总结,可供大家参考。
一、供电电路处理
VDD电源输入,是给整个芯片内部供电,工作电压范围为 2.7 V 至 5.5 V。可以接2.2µF+ 0.1 µF 对地电容器实现滤波及退偶,也可以单独接0.1 µF的退偶电容。
需要注意的是,TPAFE0808还提供了VLogic接口电源,它用来确定I2C的接口电压。电压范围为 1.8 V 至 5.5 V。推荐在VLogic脚上加一个0.1 µF的退偶电容。
图1 TPAFE0808供电及其它部分电路
二、参考电压电路处理
Vrfe脚是参考电压输入/输出引脚。当内部基准使能时,Vref引脚上则提供 2.5 V 基准电压。如上图1所示,建议在 VREF 引脚和 GND 之间连接一个 0.1 µF 电容器以实现指定性能。当内部基准被禁用时,必须向该引脚施加外部基准,需要注意的是,外部基准电压范围为 1 V 至 VDD。
三、IO通道电路处理
如图1,TPAFE0808共有8个输入/输出通道。这些引脚可独立配置为 DAC、ADC 或通用数字输入输出口(GPIO)。 每个引脚的功能是通过对配置寄存器中的相应位进行编程来确定的。需要注意的是,在工业等应用领域,一般要求对IO口(无论此时是配置为DAC、ADC 或GPIO)要添加保护措施。如下图2,
IO通道处理共提供了3个选项,大家可以根据自己的需求进行选择。
图2 IO通道处理的3个选项
四、I2C接口电路处理
串行数据线及串行时钟线,支持标准的I2C接口。 需要注意的是,SDA为双向开漏接口,必须通过外部上拉电阻将其拉至 VLOGIC 电源。因为TPAFE0808只能做从,SCL是单向口线,为了提高驱动力,推荐外部也上拉电阻将其拉至 VLOGIC 电源。电路参考图1.
五、I2C低位地址位
为了实现一个主机可以挂多个TPAFE0808器件,TPAFE0808七个地址位中的最低一位A0,是由外部口线"A0"决定的。当"A0"接高电平时,则最低一位地址位A0为1,当"A0"接低电平时,则最低一位地址位A0为0。如下图3,共有3种确定"A0"的接法,大家根据自己的需求选择。
图3 A0位地址控制电路
六、复位电路处理
TPAFE0808提供了一个异步复位引脚。当将此引脚拉高,TPAFE0808可以进行正常操作。需要注意的是,当该引脚被驱动为低电平时,芯片复位,各寄存器恢复为默认配置。另外,TPAFE0808也支持"软复位"操作,即主控MCU向TPAFE0808发一个复位命令,TPAFE0808即可实现复位。
图4 复位引脚处理电路
最后,还需要用户注意的是,在任何精度很重要的电路中,仔细考虑电源和接地回路布局会有助于确保额定性能,将TPAFE0808放置在PCB模拟平面上,也会有助于提高模拟性能。
驱动代码设计要点
国产3PEAK(思瑞浦)新近推出的小体积、集成多通道可配置模数和数模转换器模拟前端芯片TPAFE0808,它内置8通道12bit ADC、8通道12bit DAC、片内参考电压及温度传感器,但尺寸低至2x2mm,非常适宜应用在需要多通道模拟外设且要求小体积的产品上,比如光模块等,在工业、通信等领域,深受广大工程师的喜爱。
TPAFE0808作为集成多路、多类模拟外设的扩展芯片,驱动代码设计上具有一定难度,有多个设计要点需要注意,本文做了详细总结,可供大家参考。
一、I2C地址的确定
TPAFE0808支持标准的I2C总线协议,可识别7位I2C地址。为了实现一个主机可以挂2个、甚至多个TPAFE0808器件,该器件的七个地址位中,高6位的地址是:0b001000,最低一位A0是由外部接口"A0"决定的。当"A0"接高电平时,则最低一位地址位A0为1,当"A0"接低电平时,则最低一位地址位A0为0。如下图1,共有3种确定"A0"的接法。其中,"Option3"选项,可以实现多机通信,比如,可将"0b0010000"地址设为"无效地址",将"0b0010001"地址设为"有效地址",在某一时刻下,通过MCU的IO口控制,只将一个TPAFE0808设为有效地址,其他皆设为无效地址,多选一,从而可以实现"一个主机可以挂多个TPAFE0808器件"。
图1 A0位地址控制电路
二、寄存器访问模式
图2 通过"Pointer Byte Configuration"寄存器来访问目标寄存器
TPAFE0808作为I2C从器件,MCU是采用"间接方式"访问它的寄存器的。如上图2,TPAFE0808是通过"Pointer Byte Configuration"寄存器来访问目标寄存器的。"D7~D4"高四位用于指定某次操作的,"D3~D0"低四位用于指定该次操作的目标寄存器。
三、I2C主器件"写"TPAFE0808操作
图3 I2C主器件"写"TPAFE0808操作
如上图3,是I2C主器件"写"TPAFE0808操作的时序图。比如,在对TPAFE0808进行配置时会用到这个操作时序。相关操作,流程如下:
Step_01:I2C主器件发起始位。
Step_02:I2C主器件写入地址为及"写"标志位,并成功获得TPAFE0808返回的ACK。
Step_03:I2C主器件写入"Pointer Byte Configuration"寄存器,指明操作类型并选定目标寄存器,并成功获得TPAFE0808返回的ACK。
Step_04:I2C主器件紧接着写入高8位数据,并成功获得TPAFE0808返回的ACK。
Step_05:I2C主器件继续写入低8位数据,并成功获得TPAFE0808返回的ACK。
Step_06:I2C主器件发起停止位。
四、I2C主器件"读"TPAFE0808操作
图4 I2C主器件"读"TPAFE0808操作(16bit)
如上图4,是I2C主器件"读"TPAFE0808操作的时序图。比如,读取TPAFE0808 ADC转换结果时会用到这个操作时序。相关操作,流程如下:
Step_01:I2C主器件发起始位。
Step_02:I2C主器件写入地址为及"写"标志位,并成功获得TPAFE0808返回的ACK。
Step_03:I2C主器件写入"Pointer Byte Configuration"寄存器,指明操作类型并选定目标寄存器,并成功获得TPAFE0808返回的ACK。
Step_04:I2C主器件发起停止位。
Step_05:I2C主器件再次发起始位。
Step_06:I2C主器件写入地址为及"读"标志位,并成功获得TPAFE0808返回的ACK。
Step_07:I2C主器件读取高8位数据,并回应ACK给TPAFE0808。
Step_04:I2C主器件继续读取低8位数据,并回应ACK给TPAFE0808。
Step_05:I2C主器件发起停止位。
综上所述,本文从I2C地址的确定、寄存器访问模式、写流程及读流程等4个方面全面总结了国产3PEAK模拟前端芯片TPAFE0808驱动代码设计的要点,对大家开发TPAFE0808驱动代码,起到提纲挈领的作用,可有助于大家理解TPAFE0808软件控制原理,以节约大家开发代码的时间。
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv129018