CS5460芯片在MSP430单片机中的应用 --控制网



CS5460芯片在MSP430单片机中的应用
企业:控制网 日期:2007-07-18
领域:人机界面 点击数:2153



1. 引言

    目前比较流行的电子电度表芯片如AD7750和AD7755(见《国外电子元器件》1999年第3期文章)存在着测量范围小,与MPU连接复杂,功能简单等缺点。CS5460是CRYSTAL公司最新推出的带有串行接口的单相双向功率/电能计量集成电路芯片,该芯片比AD7750和AD7755相比,具有结构简单,功能齐全,性能优良的特点,这些特点使其更便于与微处理器MPU接口并能方便地实现电压电流!功率的测量和用电量累积等功能。用具有超低功耗,高集成度,高可靠性的MSP430单片机与其相连接可简化电路设计,提高效能并广泛应用于功率测量和电子电表的数据采集以及电能计量领域。

2 .MSP430单片机简介

    MSP430单片机是TI公司生产的超低功耗单片机。该系统将大量的外围模块整合到片内,也特别适合于设计片上系统;它是一个16位的精简指令构架,有大量的工作寄存器和数据存储器。它有如下特点:具有超低功耗,强大的处理能力,高性能模拟技术及丰富的片上外围模块,系统工作稳定,方便高效的开发环境。MSP40工作在1.8-3.6V电压下,有正常工作模式(AM)和4种低功耗工作模式,在电源电压为3V时,各种模式的工作电流分别不同。单片机可以方便的在各种工作模式之间切换。MSP430 单片机引脚图如下。


图1 MSP430X11X系列引脚图

3. CS5460芯片简介

    CS5460是CRYSTAL公司最新推出的带有串行接口的单相双向功率/电能计量集成电路芯片。CS5460增加了以下功能:(1)具有片内看门狗定时器(Watch Dog Timer)与内部电源监视器;(2)具有瞬时电流、瞬时电压、瞬时功率、电流有效值、电压有效值、功率有效值测量及电能计量功能;(3)提供了外部复位引脚;(4)双向串行接口与内部寄存器阵列可以方便地与微处理器相连接;(5)外部时钟最高频率可达20MHz;(6)具有功率方向输出指示。这些增加的功能更加便于与微处理器(MPU)接口,并能方便地实现电压、电流、功率的测量和用电量累积等功能。

    3.1 CS5460的基本内部结构 

    CS5460内部集成了两个△-∑A/D转换器、高、低通数字滤波器、能量计算单元、串行接口、数字-频率转换器、寄存器阵列和看门狗定时器等模拟、数字信号处理单元,其内部结构框图如图2所示。


图2 CS5460的基本内部结构

    3.2 CS5460的引脚排列和功能


图3  CS5460引脚图

    1脚XOUT:晶体振荡器输出;2脚CPUCLK:CPU时钟输出;3脚VD+:数字电路电源正极;4脚DGND:数字地;5脚SCLK:串行时钟输入;6脚SDO:串行数据输出;7脚CS:片选;8脚NC:空脚;9脚VIN+:差分电压正输入端;10脚VIN-:差分电压负输入端;11脚VREFOUT:参考电压输出;12脚VREFIN:参考电压输入;13脚VA-:模拟地;14脚VA+:模拟电源正极;15脚IIN-:差分电流负输入端;16脚IIN+:差分电流正输入端;17脚PFMON:电源掉电监视输出;18脚NC:空脚;19脚REST:复位输入;20脚INT:中断输出;21脚EOUT:电能脉冲输出;22脚EDIR:功率方向指示输出;23脚SDI:串行数据输入;24脚XIN:晶体振荡器输入。

4 硬件设计

    单片机MSP430通过和单相双向功率/电能计量芯片CS5460集成电路芯片组成的硬件的电路。通过低压差调节器LP2951ACM3.0 向MSP430单片机VCC引脚提供3.0V的工作电压。引脚VSS接地。引脚REST,CS,SD1,SDO,SCLK,EDIR接P1.0—P1.5口,接受来自单片机的信号,INT接RST/NMI引脚使单片机MSP430接受来自芯片CS460的中断。EOUT接XIN的晶体振荡器连接,接受来自芯片CS5460的XIN引脚晶振的输入。VREFIN,DGND,VREFOUT,VA-接电容C1为0.1uF,再接地。VIN-,VIN+,HN+,HN-接两个变压器为CS5460
芯片提供+5V的电压,VD+,VA+接R3电阻接电容再接地。C1,R1,D1,D2和C2,R2,D3,C3组成的电路向CS5460芯片的模拟数字电源正极输入+5V电压。PFMON接R4再接R5与地接监视模拟电源输入是否低于阈值。
 



图4硬件原理图

5 软件设计

    CS5460的串行接口部分集成了一个带有发送/接收缓冲器的状态机,状态机在SCLK上升沿解释8位命令字。根据对命令的解码,状态机将执行相应的操作,或者为把寻址的内部寄存器的数据传送到发送缓冲区,写操作在数据传输前要等24个SCLK周期。通过寄存器读/写命令,数据可被写入或从CS5460中读出。数据的读、写通过向串口SDI引脚写入相应的8位命令字(高位在前)来启动。一些命令字在执行时受周期计数寄存器和配置寄存器内容的影响,需要先对周期计数器和配置寄存器内容进行正确设置。寄存器写指令后必须跟24位数据,先写命令字启动写操作,然后随着24个连续的串行时钟脉冲,CS5460将从串行输入引脚SDI接收串行数据,一旦收到数据,状态机便将数据写入配置寄存器并返回到命令模式。通过SDI引脚写入命今后,可从SDO引脚读出数据。
 



图五 读写时序


 
                                 
    下面依照时序分别给出读写的基本C程序。
    
  Main()
     {  char cdata , didata;
         Scanf(“%s,%s”,&cdata,&didata);
IC?_writeCS5460(cdata);
        IC_ReadCS5460(didata);}
      Void IC?_writeCS5460(unsigned char CData)
      { unsigned char i;
  CS5460_SCLK_0;       //时钟置零
CS5460_CS_0;          //片选置零
For(i=0;i<8;i++)     //开始一个字节的CData
  {  CS5460_SCLK_0;    //时钟置零
     Delay_us(5);      //相当于5个NOP
     CS5460_SCLK_1;     //时钟置1
     Delay_us(5);       //相当于5个NOP
     If ( CData&0x80)
    { CS5460_SDI_1;}
    else { CS5460_SDI_0;} //判断要写入的内容最高位是否为1,是1写1,
     CData+=CData;} }不是写0,再左移数据,循环写8次
  Unsigned int IC_ReadCS5460(unsingned char DIDATA)
        {    unsigned char i , j;
             Unsigned int DATA;     //要返回的内容
        DATA=0;            //要返回的内容先清零
       IC_WriteCS5460(DIDATA); // 写入程序状态字
              CS5460_SCLK_0;          //时钟置零
            For(j=0;j<2;j++)         
            {  DATA+=DATA;       // 2个字节的循环,根据需要可以改成3个字节
              For(i=0;i<7;i++)   //先循环要返回的内容(左移一位)
               { CS5460_SDI_1;
                 CS5460_SCLK_0;    //以下开始读出一个字节的8b循环
                 Delay_us(5);      //SDI口置1
               If(PINC&(1<<PC2))   //时钟置零
               {  DATA=DATA+1;      //延时5us
                 DATA+=DATA;}} //要读的内容最高位为1,则写1,否则写0,再左移
                 CS5460_SDI_0;      //SDI口置1
                 CS5460_SCLK_0;     //时钟置零
                 Delay_us(5);       //延时5us
                 CS5460_SCLK_1;     //时钟置1
                  Delay_us(5);        //延时5us
              If(PINC&(1<<PC2))
         { DATA=DATA+1;}   //读一个字节最后一位时单独处理,是1补1,不是则跳到CS5460_SCLK_0; // 下一步,回到上面左移1位,相当于补0
            CS5460_SDI_1;      //SDI口置1
            Delay_us(2);       //延时2us
            CS5460_CS_1; }      //片选置0
            Return(DATA);}  //返回要读的内容

6. 结束语

    以上介绍的是以单片机MSP430为核心基于CS5460芯片的应用。该系统具有低功耗,高集成度,高性能和高可靠性等特点。本系统实现了MSP430单片机和CS5460芯片的硬件设计在功率测量中的应用并且给出了单片机MSP430和CS5460读写的C程序。

7.参考文献
1.CRYSTAL公司产品资料.1990.10.
2.沈金官.《电网监控技术》中国电力出版社。1997.6.
3.王福瑞.<<单片微机测控系统设计大全》.北京航空航天大学出版社.1998.4
4.何立民.《单片机应用技术选编》1-7.北京航空航天大学出版社。
5.何立民.MCS 51 单片机应用系统设计[M] . 北京:北京航空航天大学出版社,1993.

 

  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件: