称重科技2008·青岛模数转换芯片CS1180的应用技巧深圳芯海科技有限公司张会【摘要】本文简单介绍了深圳芯海科技有限公司开发制造的CS1180型ADC集成电路,解答了几个应用方面的实际问题,对更好的利用该芯片制造衡器仪表提供了有益的参考。【关键词】模数转换芯片CS1180CS1180是深圳芯海科技有限公司开发的一款基于Σ-Δ原理的模数转换芯片。具有24位的无失码转换位数和20位的有效分辨率,1~128倍可编程放大器,可进行自校准和外部校准,通过寄存器设置控制参数。CS1180具有SSOP-16小尺寸封装,价格低、性价比高等特点,特别适合在衡器的称重仪表、称重传感器、数字式接线盒等重要部件中应用。对于一个适合于在衡器部件中进行模数转换的应用系统,其性能的好与差并不仅仅依赖于模数转换芯片的性能,整体结构、外围电路及其元器件、控制参数的选择、软件算法等等也不同程度地影响着整个应用系统的性能。本文重点介绍几点可以发挥CS1180特点的应用经验,供大家参考。一、CS1180芯片简介1、管脚的排列与作用0图1CS1180的管脚排列1称重科技2008·青岛图一示出了CS1180的管脚排列,各管脚作用见表一。2、主要内部单元(1)增益可编程放大器:CS1180含有一个可通过向寄存器写入控制参数来改变增益的可编程放大器,最大增益可达到128倍。表1各管脚的作用管脚作用管脚作用1数字电路接“地”端(简称“数字地”)9模拟电路接“地”端(简称“模拟地”)2主时钟输入端,外接晶体振荡器或作为外接时钟的输入端10模拟电路电源输入端(简称“模拟电源”)3晶振驱动端,外接晶体振荡器,外接时钟时需悬空11“片选”控制输入端,低电平有效4数字电路接地端,与1脚相接成环状起一定的信号隔离作用12串行数据输入端5模拟参考电压高电位输入端(轨-轨)13串行数据输出端6模拟参考电压低电位输入端(轨-轨)14串行数据同步脉冲输入端7模拟信号输入端(+)(轨-轨)15“数据准备就绪”信号输出端,低电平有效8模拟信号输入端(-)(轨-轨)16数字电路电源输入端(简称“数字电源”)(2)模拟参考电压:用来限定模拟信号的量程范围,即模拟信号的最大量程为(Vref+-Vref-)/PGA/2RAN(左式中PGA为放大器增益,RAN见本节第5段)。(3)时钟单元:CS1180内部有时钟电路,外接晶体振荡器后即可提供时钟脉冲,CS1180也可由外部时钟电路提供时钟脉冲,这时需要由MCLK脚输入。CS1180允许的时钟频率范围为1~10MHz。(4)串行总线接口(SPI):CS1180与外部控制器的通讯是由标准的四线串行总线接口(SPI)完成的,该接口的四各信号分别是——片选信号(CS):用来选通接口,由外部控制器控制,低电平有效,在通讯器件必须始终维持低电平,否则数据传输将被中止。在没有选通要求时,也可将该信号接“地”,使接口始终处于工作状态。——串行时钟(SCLK):传输数据时的数据同步脉冲信号,由外部控制器发出。——串口数据输入端(SDI):数据出现在该引脚后由SCLK上升沿采样读入。——串口数据输出端(SDO):数据在SCLK下降沿时出现在该引脚。三态输出,接上拉电阻时可与SDI端接在一起,以减少外部控制器的端口占用。另外,CS1180配有一个“数据准备就绪(DRDY)”信号与串口配合,当内部转换数据更新后,2称重科技2008·青岛DRDY电平立即由高变低,数据被读取或内部数据刷新时,该电平将返回到高电平。该信号可用于外部中断或查询。(5)控制寄存器:CS1180有四个八位寄存器存放控制参数(见表2),通过控制参数的选择,可在一定范围内调整CS1180的性能,以获得更优的系统性能。表2控制寄存器地址D7D6D5D4D3D2D1D0复位值00HID3ID2ID1ID0--PGA2PGA1PGA0X0H01H--------------MUX01H02HDRDYU/BSPEED--BITORRANDR1DRO00H03H----ISET1ISET0------CHSEL00HID3–ID0:制造厂注入的标记PGA2–PGA0:增益选择PGA2PGA1PGA0增益PGA2PGA1PGA0增益0001100160012101320104110640118111128MUX:模拟信号输入端设置0--内部短路;1--接外部信号DRDY:“数据准备就绪”引脚信号的寄存器映像位,只读,详见SPIU/B:转换极性选择0--双极性;1--单极性注:数据符号也有相应变化,双极性下输入负信号时输出数据为补码SPEED:采样频率选择0--主频的128分之一;1--主频的256分之一BITOR:串口发送顺序0--Bit高位在前;1--Bit低位在前RAN:量程范围选择0--0.1V≤(Vref+-Vref-)≤Avcc1--0.1V≤(Vref+-Vref-)≤Avcc/2DR1-DR0:数据输出速率与陷波频率(SPEED=0时、Hz)主频2.4576MHz4.9152MHz9.8304MHzDR1001001001DR0010010010速率157.53.7530157.5603015陷波502512.5100502520010050ISET1-ISET0:模拟电路偏置电流选择ISET10011ISET00101电流(µA)1012.512.515定义CHSEL:斩波频率0--等于采样频率的二分之一;1--与采样频率相同3称重科技2008·青岛(6)数据寄存器:CS1180有九个八位寄存器分成三组分别存放失调误差修正值、增益误差修正系数和模数转换数据,各数据结构见表三。表3数据寄存器与误差修正值寄存器分组地址D7D6D5D4D3D2D1D0复位07H272625242322212000H08H215214213212211210292800H失调误差09H22322222122021921821721600H0AH272625242322212059H0BH215214213212211210292855H增益误差0CH22322222122021921821721655H0DH21921821721621521421321200H0EH21121029282726252400HADC数据0FH2322212000H3、指令CS1180共有十一条指令,其结构见表四。表4指令结构名称操作码操作数字节功能RDATA00000001(01H)1读ADC数据RREG0001rrrr(1XH)XXXXnnnn2读地址为r,长度为n+1的寄存器值WREG0101rrrr(5XH)XXXXnnnn2向寄存器r写长度为n+1的数据CALSELF11110000(F0H)1用片内信号校准失调误差和增益误差OCALSELF11110001(F1H)1用片内信号校准失调误差GCALSELF11110010(F2H)1用片内信号校准增益误差OCALSYS11110011(F3H)1用外接信号校准失调误差GCALSYS11110100(F4H)1用外接信号校准增益误差WAKEUP11111011(FBH)1将芯片从睡眠模式中唤醒SLEEP11111101(FDH)1进入睡眠模式RESET11111110(FEH)1芯片复位二、提高性能的几个应用经验CS1180是一种性能与控制寄存器的控制参数有密切关系的芯片,通常在进行测量前都需要针对测量要求、信号特点、外部电路等因素向控制寄存器写入适当的参数(又称编程),以得到相对更好一些的整体性能,下面向大家介绍主要的编程参数设置和软件结构方面的经验以及印制板布板注4称重科技2008·青岛意事项供参考。1、主时钟及其频率一是电路接法的选择,CS1180的时钟脉冲即可以利用晶振由芯片自行产生,也可以由外部提供。具体应用时,绝大多数情况是CS1180与单片机同用,这时利用单片机提供时钟脉冲,比两芯片单独接各自的晶振产生的电磁干扰可能要小些,具体电路接法有:①CS1180的MCLK接单片机振荡器输出端,适合于要求单片机以较低频率工作的电路;②如果单片机恰好是标准的MCS-51系列机,那么正好可利用ALE端向CS1180提供时钟,适合于要求单片机以较高频率、CS1180以较低频率工作的电路;③如果有空闲的输出端口和定时器,也可由定时器产生脉冲并由端口输出。二是频率的选择,要结合DR1、DR0的取值,考虑的因素主要有:①是否需要对50Hz(或60Hz)工频干扰进行抑制,需要时就必须使陷波频率或其整倍数频率等于50Hz(见表二)。②数据输出速率和有效位数,一般来讲主频高、数据输出速率高、有效位数少,反之亦然。因此需要在两者之间做出取舍,表五给出两者之间的大致关系。例如,如果不需考虑50Hz陷波,对于自动衡器用仪表,选择9.8304MHz的主频,数据输出速率较高,有利于动态控制,但相应的有效位数只有17位或稍多一点。对于非自动衡器用仪表,无需高的数据输出速率,选择低一些的主频可得到较多的有效位数,典型应用是选择2.4576MHz。表5数据输出速率与有效位数数据输出速率(Hz)6030157.53.75有效位数(Bit)171818.51919.52、模拟电路偏置电流(ISET1-ISET0)偏置电流大,模拟电路的频率响应要好一些,就允许工作于较高的频率,建议当使用9.8304MHz的时钟时选15µA电流,4.9152MHz时钟对应12.5µA,2.4576MHz时钟对应10µA电流。3、量程范围(RAN)这个量程范围是指ADC部分的输入信号范围,折算到引脚Ain正负端还要除以放大器增益。量程范围的大小等于接入引脚Vref正负端的模拟参考电压:通常将RAN位置0,Vref+接Avcc,Vref-接模拟地。作为衡器仪表,许多情况下希望得到较小的满量程输入信号,例如10mV,是否可以用减小Vref的办法来得到小的量程呢?一般不推荐用这种接法,一是因为降低参考电压需增加分压电路,且分压电路的稳定性能直接影响量程的稳定性能;二是降低参考电压会引起输出数据有效位数的减少:参考电压每降低二分之一,有效位数要减少一位。4、转换极性(U/B)按输入信号的方向,CS1180既可以工作于双极性,也可以工作于单极性。工作于双极性时,输入端Ain+(七脚)的输入信号电平高于Ain-(八脚)时为正向,输出数据为正数,是用原码表示的;输入端Ain+(七脚)的输入信号电平低于Ain-(八脚)时为负向,输出数据为负数,是用补5称重科技2008·青岛码表示的。工作于单极性时,只允许输入正向信号,只能输出原码表示的正数。另外,双极性时输出数据的范围是0x800000H~0x7FFFFH(-524288~+524288),单极性时输出数据的范围是0x0H~0xFFFFFFH(0~1048576),对大小相同的正信号,单极性的输出数据量恰好是双极性时的两倍。对于衡器仪表,一般不需要双极性输入,如果设置成双极性,将有二分之一的转换数据不能得到利用。将转换极性设置成单极性后,得到的数据量就能增加一倍,相当于将分辩力提高了一倍。5、程序的运行周期应与ADC的转换速率相一致称重仪表的程序大都在结尾处用一条跳转语句折返到程序的起始处,首尾相接形成大循环,使用CS1180芯片,能方便的使执行循环程序的周期要与ADC的转换周期相一致,其优点是所处理的数据总是刚被刷新的。有两种方法供选择:一是将CS1180的DRDY引脚接到单片机的外部中断引脚上,使程序执行到结尾处时进入空闲,由DRDY引起中断将单片机唤醒,折返到程序的起始处正好可收到新的数据。二是在程序结尾处对接入DRDY信号的引脚进行往复的查询,这样就会在该点形成“死循环”,只有DRDY由1变0时才允许程序由死循环中跳出折返到程序的起始处。需注意这两种方法都是以ADC的转换周期略长于程序执行周期为正常运行的先决条件。所以要对程序执行时间做出较准确的估计,然后通过DR位的设置满足所需条件。6、印制电路板布板注意事项由于测量的是微小信号,所以不恰当的布板,例如数字信号线与模拟信号线平行和靠近