电能计量芯片CS5460在MSP430中的应用

来源:本站
导读:目前正在解读《电能计量芯片CS5460在MSP430中的应用》的相关信息,《电能计量芯片CS5460在MSP430中的应用》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《电能计量芯片CS5460在MSP430中的应用》的详细说明。
简介:介绍一种基于TI公司的新型单片机MSP430设计的应用系统,利用MSP430超低功耗和高集成度的优点,通过与带有高速计算功能的串行接口的单相双向功率/电能计量集成电路芯片CS5460的连接实现功率测量,并给出读写C程序,最终实现了MSP430单片机与CS5460芯片的通信。

目前比较流行的电子电度表芯片(如AD7750和AD7755)存在着测量范围小、与MPU连接复杂、功能简单等缺点。CS5460是Crystal公司最新推出的带有串行接口的单相双向功率/电能计量集成电路芯片。与AD7750和AD7755相比,该芯片具有结构简单、功能齐全、性能优良的特点。用具有超低功耗、高集成度、高可靠性的MSP430单片机与其相连接,可简化电路设计,提高效能,并广泛应用于功率测量和电子电表的数据采集以及电能计量领域。

1 MSP430单片机简介

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

电能计量芯片CS5460在MSP430中的应用

图1 MSP430X11X系列引脚图

2 CS5460芯片简介

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

CS5460内部集成了2个Δ∑A/D转换器、高/低通数字滤波器、能量计算单元、串行接口、数字频率转换器、寄存器阵列和看门狗定时器等模拟、数字信号处理单元,其内部结构如图2所示。CS5460的引脚排列如图3所示,引脚描述详见表1。

电能计量芯片CS5460在MSP430中的应用

图2 CS5460的基本内部结构

电能计量芯片CS5460在MSP430中的应用

图3 CS5460引脚图

电能计量芯片CS5460在MSP430中的应用

图4 硬件原理图

电能计量芯片CS5460在MSP430中的应用

表1 CS5460 引脚描述

3 硬件设计

单片机MSP430和集成电路芯片CS5460组成的硬件的电路如图4所示。通过低压差调节器LP2951ACM3.0向MSP430单片机VCC引脚提供3.0 V的工作电压,引脚VSS接地。CS5460的引脚RESET、CS、SDI、SDO、SCLK、EDIR接P1.0~P1.5口,接收来自单片机的信号,INT接RST/NMI引脚使单片机MSP430接收来自芯片CS5460的中断;EOUT与XIN的晶体振荡器连接,接收来自CS5460的XIN引脚晶振的输入;VREFIN、DGND、VREFOUT、VA-经电容C5(0.1 μF)接地。VIN-、VIN+、HN+、HN-接两个变压器为CS5460芯片提供+5 V的电压;VD+、VA+接电阻R3接电容再接地,C1、R1、D1、D2和C2、R2、D3、C3组成的电路向CS5460芯片的模拟数字电源正极输入+5 V电压;PFMON接R4和R5再与地接,监视模拟电源输入是否低于阈值。

4软件设计

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

电能计量芯片CS5460在MSP430中的应用

图5 读写时序

下面依照时序给出读写的基本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,不是

//写0,再左移数据,循环写8次

CData+=CData;

}

}

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++){

//先循环要返回的内容(左移1位)

CS5460_SDI_1;

CS5460_SCLK_0;

//以下开始读出一个字节的8b循环

Delay_us(5);//SDI口置1

if(PINC&(1<<PC2)) {//时钟置零

DATA=DATA+1;//延时5 μs

DATA+=DATA;

}

}//要读的内容最高位为1,则写1;否则写0,再左移

CS5460_SDI_0;//SDI口置1

CS5460_SCLK_0;//时钟置零

Delay_us(5);//延时5 μs

CS5460_SCLK_1;//时钟置1

Delay_us(5);//延时5 μs

if(PINC&(1<<PC2)) {

DATA=DATA+1;

}//读一个字节最后一位时单独处理,是1补1,不是

//则跳到下一步,回到上面左移1位,相当于补0

CS5460_SCLK_0;

CS5460_SDI_1;//SDI口置1

Delay_us(2);//延时2 μs

CS5460_CS_1;//片选置0

}

Return(DATA);//返回要读的内容

}

结语

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

提醒:《电能计量芯片CS5460在MSP430中的应用》最后刷新时间 2024-03-14 00:56:52,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《电能计量芯片CS5460在MSP430中的应用》该内容的真实性请自行鉴别。