草坪厂家
免费服务热线

Free service

hotline

010-00000000
草坪厂家
热门搜索:
成功案例
当前位置:首页 > 成功案例

做座基于MSP430的三相电能表SA9904

发布时间:2021-10-15 00:36:02 阅读: 来源:草坪厂家

基于MSP430的三相电能表SA9904B采集系统

本文介绍由TI 公司的MSP430F435 单片机和SAMES 的SA9904B 电能测量集成芯片组合成三相电能表的无用功率和有用功率等参量的采集系统。

硬件部分

MSP430F435

T1 公司的MSP430 系列单片机不但国内如此是一种具有超低功耗的功能强大的单片机。新开发的F 系列具有Flash 存储器,在系统设计,开发调试及实际应用上比其他MCU 都有比较明显的优势。

1、超低功耗

MSP430F 系列运行在1MHZ 时钟的条件下时,工作模式不同为0.1~400uA,工作电压为1.8~3.6V。

2、 超强处理能力

8MIPS 的CPU 内核,16 位×16 位的硬件乘法器。

3、灵活的配置方法

MSP430 F 系列具有丰富的寻址方式,只需要27 条指令;片内寄存器数多,可以实现多种运算;有高效的查表处理方法。这一切保证了可以编译出高效的程序。许多中断,可以嵌套,使用方便。

4、片上集成外围功能模块

MSP430 F 系列集成了较多的片上外围设备。这些外围设备功能相当强大:12 位A/D,精密模拟比较器,硬件乘法器,2 组频率可以达到8MHZ 的时钟模块,2 个带有许多捕获比较的16 位定时器,看门狗功能,2 个可实现异步和同步及多址访问的串行通信接口,数十个可实现方向的设置及中断功能的并行输入,输出端口,拥有SPI 和UASRT 通讯端口。

5、高效的开发方式

MSP430FX 系列具有FLASH 存储器,这一特点使得它的开发工具相当简便。利用单片机自身带有的JTAG 接口或片内BOOT ROM 内固化的默认的加载程序载入器Bootstrap 可以进行串口或并口,通过UART 将程序代码装入Flash 存贮器中。可以在一台PC 及一个小JATAG 控制器的帮助下实现程序的下载,方便的完成程序调试。

图1 三相电能表采样简图另外一方面我国近几年来工业发展迅速

SA9904B

SAMES 公司的SA9904B 专用与电能测量的集成芯片,提供多功能电力测量参数:功率因子有功率、无功功率、峰值电压、峰值功率、电压电流有效值等。SA9904B 三相电路的各路电流和电压完成采样,有用功率和无用功率通过SA9904B 的三路电流和三路电压的乘积求得。在芯片内部完成数模转换和相位延迟的调整,各路瞬间功率的数字量值存储在二十四位寄存器中,最大值为十六进制的FFFF,对应于芯片的DO 端口其中对各路的寄存器的读取,由各路地址存储器的值确定,对应与芯片的 DI 端口。这些都通过芯片的SPI 接口以串行数据方式与MCU 端口进行数据通讯。MCU 通过对地址的选择来完成对芯片的数据读取。

SA9904B 的SPI 接口分为DI,DO,SCK,CS,F50 端口,其中这些端口按图2 的时序与MCU 进行数据传递。在研究开发过程中在DI,DO 的端口应该加一些滤波电路,防止线路中尖峰电平这可根据实际需要做些调整。其中各端口的输出脉宽时间如表1 所示。DI,DO 上的数据只有在CS 和SCK 为高电平时有效,DI 触发与CS 的触发同时,且DI 上数据在SCK 的高电平内完成,DO 上数据必须在SCK 高电平时触发,在下一个高电平阶段内完成。F50 是频率寄存器寄存电压的频率和是否缺相和倒相。DI 上数据与SA9904B 上的数据寄存器的地址一致,即高三位为110,四,五位或0 或1,后四位为选择代码。各端口的时间延时参看表一。

软件部分

对于MSP430 单片机,由TI 公司自带的嵌入式软件开发平台IAR EMBEDDED WORKBENCH。该软件可对开发系统进行调试,带有C 编译器,可采用通用的C 语言编程。

通过MSP430 的P6.6—P6.3 端口对SA9904B 芯片进行同步数据传递,其中P6.3 端口用于 DI,P6.4 用于SCK,P6.5 用于CS,P6.6 用于DO,P1.0 用于F50。程序流程如图3 所示。

第一、SCK、CS 信号控制端口

MSP430 单片机假设接错了的P6.4 发出方波,P6.5 置成高电平,DI 端口上寄存器地址数据才能有效,同时SA9904B 中有功功率寄存器和无功寄存器的数据值才能输出。这两个端口选为单片机的I/O 功能。

第二、DI 口数据传输

选择SPI,四线制方式通讯,MSP430 的P6.6—P6.3 端口,发送16 位的地址数据流,以SCK 为时间源,主动方式,向SA9所以此时我们应当即便联系厂家904B 发送数据。

P6SEL = cs +sck +si_1; //选择SCK,CS 为I/O 功能,SI 为模块功能。

P6DIR = cs_1 +sck_1 +si_1;// 选择SCK,CS 置高,SI 为向外输出。

my_flag1= tempadd01;i--)

{for (j=7;j>=0;j--)

{

P6SEL = cs +sck + so_1; //选择SCK,CS 为I/O 功能,SO 为模块功能。

P6DIR = cs_1 +sck_1 + so; // 选择SCK,CS 向外,SO 为向内输出。

P6OUT = cs_1 +sck_1 + 0; // 选择SCK,CS 置高。

my_flag=(unsigned char)(P6IN);//读取P6IN 寄存器中数值。

P6OUT = cs_1 +sck + 0;

aa=(aa|(my_flag2){aa=aa

全自动水泥抗折抗压试验机
m-200摩擦磨损试验机
mmw-1摩擦磨损试验机
mmw-1摩擦磨损试验机