企业邮箱 用户名:
密码:
 
 
  首  页
 产品中心
 新闻资讯
 技术热点
 明拓之窗
 人力资源
联系我们
地址:哈尔滨市南岗区学府路52号  
邮编:150080  
电话:0451-86391178  
传真:0451-86391178  
市场部E-mail:sales@mintor.cn  
技术支持E-mail:support@mintor.cn
 
  技术热点
STM32F103与ADE7880接口设计
(作者:明拓电气)
    摘要:本文简要简要介绍了STM32F103系列微控制器和ADE7880的功能特点,给出了STM32F103和ADE7880接口的硬件、软件设计方案。
    0 引言
    亚德诺半导体(ADI)的新一代多功能电能计量芯片ADE7880,能够测量多个电量参数,同时还能够输出实时采样数据和实时功率数据。为了有效管理和充分利用ADE7880,本文选用意法半导体(ST)的STM32F103作为主控制器,通过I2C接口访问ADE7880的内部控制寄存器和测量结果寄存器,通过HSDC接口访问ADC输出寄存器。
    1 基于ARM Cortex-M3处理器的STM32F103系列微控制器
    STM32F103系列微控制器是意法半导体(ST)推出的高性能32位RISC微控制器。它基于工业标准的ARM Cortex-M3处理器,工作频率可高达72MHz,内嵌最多可达128kB的FLASH存储器和最多可达20kB的SRAM存储器,片内集成多种外围设备,如通用定时器、PWM定时器、AD转换器、DA转换器、I2C接口、SPI接口、USB接口、USART接口、CAN接口和外部总线接口等。STM32F103系列微控制器因其高性能、低功耗、低成本及易用性而广泛应用于消费类电子、医疗、工业和仪表等领域。
    2 多功能电能计量芯片ADE7878
    ADE7880是亚德诺半导体(ADI)生产的高精度三相多功能电能计量芯片,内部集成了7路二阶sigma-delta模数转换器(ADC)、数字积分器、电压基准电路和一个完成各种电量参数算法的专用DSP单元。ADE7880支持EN 50470-1, EN 50470-3, IEC 62053-21, IEC 62053-22, and IEC 62053-23等标准,兼容三相三线/三相四线(星型和三角型)和其它形式的三相系统。
    ADE7880能够测量总(基波+谐波)有功/无功/视在功率、基波有功/无功功率和电流/电压真有效值,在1000:1的动态范围内,有功/无功功率误差和电流/电压真有效值误差小于0.1%(25摄氏度)。ADE7878还具有电能质量监测功能,如各相电流/电压分次谐波、短时电压跌落、短时过电压、短时过电流、线频率和相角等。
    ADE7880原理框图如图1所示:

图1 ADE7880原理框图


   3 STM32F103与ADE7880接口硬件设计
   ADE7880有三个串行通信接口:SPI接口、I2C接口和HSDC高速数据捕获接口。SPI接口与I2C接口和HSDC接口部分引脚复用,所以ADE7880可以配置为两种通信模式:SPI模式和I2C与HSDC联合模式。本文中采用能够高速访问ADC采样数据的I2C+HSDC模式。硬件连接方式如图2所示。STM32F103的I2C接口配置为主器件(master),访问ADE7880的控制和状态寄存器,SPI接口配置为从模式,接收ADE7880的HSDC接口的数据。

图2 STM32F103与ADE7880接口

   4 STM32F103与ADE7880接口软件设计 STM32F103首先需要通过I2C接口对ADE7880进行初始化,然后使能ADE7880的内部DSP和HSDC接口。工作流程如如3所示。

图3 STM32F103与ADE7880接口工作流程


   STM32F103与ADE7880的接口软件由两部组成:作为I2C主器件写ADE7880寄存器程序和作为HSDC从器件接收ADE7880数据程序。I2C接口由GPIO模拟,SPI接口工作于中断模式。ADE7880每个采样周期输出7个32位数据, STM32F103中断处理程序如下:
   long SampleData[7][256];
   void SPI2_ISR(void)
   {
   static union
   {
   long SpiBufL;
   unsigned char SpiBufB[4];
   }SpiBuf;
   static unsigned long ByteCounter = 3;
   static unsigned long ChannelCounter = 0;
   static unsigned long VectorCounter = 0;
   SpiBuf.SpiBufB[ByteCounter] = SPI2->DR;
   if(ByteCounter)
   {
   ByteCounter--;
   }
   else
   {
   ByteCounter = 3;
   SampleBuf[ChannelCounter][VectorCounter] = SpiBuf.SpiBufL;
   ChannelCounter++;
   if(7 == ChannelCounter)
   {
   ChannelCounter = 0;
   VectorCounter++;
   if(256 == VectorCounter )
   {
   VectorCounter = 0;
   }
   }
   }    }
   5 总结
   STM32F103系列微控制器具有单周期的硬件乘法器和除法器,能够提供较强的数据处理能力,片内集成多种外设,可以方便地实现键盘、显示和通信等功能。采用STM32F103作为ADE7880的主控制器,可以充分利用ADE7880提供的各种电量参数测量功能和采样数据输出功能。本方案能够广泛地应用于电能计量、负荷控制、电力监控或数据采集等。

电话:0451-86391178 传真:0451-86391178
哈尔滨明拓电气科技发展有限公司 版权所有 黑ICP备11000374号