4.1 获取和验证ADC样品的程序

+荐课 提问/讨论 评论 收藏 分享
[音乐播放] 在本视频中,在使用独立ADC部分的 培训系列分相电能表 设计软件中, 我们讨论了初始化ADS131ML4, 从设备中获取样本, 并通过计算CRC校验 来验证样本的完整性的过程。 在左边,我们看到用于 初始化ADS131ML4的进程。 当MSP432单片机复位后, 第一次设置ADS131ML4时, 以及每次执行校准时,都会执行此过程。 在设置ADS131ML4设备之前, 禁用了ML4的调制器时钟, 以防止ML4在尝试设置它时 生成新的样本。 调制器时钟是通过 禁用MSP432单片机上的 SM时钟输出来禁用的, 它被输入到引脚时钟 ADS131ML4上。 禁用SM时钟输出只需要 在校准后执行, 而不需要在MSP432微控制器设置事件后执行, 因为在MSP432微控制器重置后, SM时钟输出将自动不输出。 禁用SM时钟输出后, 将MSP432单片机的 eUSCI B0 SPI模块 配置为与ADS131ML4设备通信。 eUSCI B0 SPI模块专门配置为 掩模设备,使用三线模式, 在该测试软件中手动插入芯片选择信号, 而不是使用间谍模块的芯片 选择功能。 此外,SPI时钟据说是8.192兆赫, 这是从8.192兆赫SM时钟 派生出来的。 SPI设置好后,禁用所有中断, 并使用SPI将复位命令 从MSP432微控制器发送到ADS131ML4。 然后重新启用中断, MSP432微控制器向ADS131ML4发送命令来配置其寄存器。 此时,请注意调制时钟尚未 由MSP432微控制器输出, 这意味着采样尚未开始。 通过使用SPI 向ADS131ML4发送命令, 配置了ADS131ML4寄存器, 特别是针对所选CRC的 将字大小设置为24位。 当没有新的ADC样本时, DRDY被设置为高值, 当ADC样本准备好时, DRDY被设置为低值。 此外,PGA增益被设置为所有通道的增益之一。 此外,禁用当前检测模式。 对于这些设计,相位增益校准寄存器没有使用, 因为这是在软件中完成的。 然而,ADC有能力做增益校准, 相位校准作为 条件选项。 最后,该设备的OSR配置为512。 启用所有通道,选择 高分辨率调制功率模式。 在正确初始化 ADS131ML4寄存器后, 将MSP432微控制器配置为 在D级引脚上发生跌落边缘时产生较差的中断, 这表明ADS131ML4具有 新的电流样本电压可以使用。 接下来,MSP432单片机将SM时钟 输出到ADS131ML4,开始电压 和电流采样过程。 顶部的图片显示了 采样电压和电流时发生的不同事件。 在顶部的图片中,绿色的项目 是由硬件设置 自动完成的项目。 为了复习图中所示的过程, 每一个新的样品都准备好了有效的OSR, 即512为本设计的调制时钟周期。 一旦新的样品准备好, DRDY引脚被ADS131ML4插入低电平。 ADS131ML4上的DRDY引脚导致GPIO端口中断, 从而触发MSP432上的端口ISR。 在ISR端口内,将ADS131ML4芯片 选择行插入到较低的位置,以便与设备通信。 然后,DMA被设置为自动发送 对ADS131ML4最新样本, N-1样本的请求,并接收 来自ADS131ML4的数据包响应。 对电流和电压样本的请求 和接收由DMA模块自动完成。 在接收来自ML4的最新电压 和电流样本的同时, 对之前的样本, 即从ADS131ML4获得的 N-2减去2个样本, 进行单样本处理。 ADS131ML4目前正在采集 下一个电压和电流样本, 也就是第N个样本。 这种逐样处理用于 更新计算计量参数的 中间点积 数量。 当DMA从ML4获得整个N-1包时, DMA ISR将被自动调用。 在DMA ISR中,如果CRC检查通过, 则解析N-1包,以便 在下一次调用每个样本TSP时, 将其用于电压和电流样本。 对于每个电压和电流样本, 都要遵循这个过程。 下图显示了 由MSP432微控制器的DMA 传输的数据包, 以及由DMA接收并采样的ADS131ML4的 响应数据包。 传输和接收包 包含六个单词,每个单词有三个字节长。 当为ADS131ML4设备请求ADC数据时, 必须发送到 ADS131ML4的第一个单词 是命令单词。 由于测试软件不需要更改ML4的设置, 也不需要在典型的ADC样本 读取期间读取任何寄存器, 并且没有任何命令被发送到ML4, 这允许您在不改变设备状态的情况下 从ML4获得ADC样本, 命令的实际大小为16位。 但是,由于使用了24位,所以16位命令 必须在包的末尾填充一个 额外的值0x00。 因此,No命令将发送一个值0x000000。 当MSP432微控制器移出命令字时, MSP432同时将响应 字移到前一个包的 命令字。 No命令的响应字 是状态寄存器的内容。 在设计中不使用状态寄存器的内容, 因此将忽略从ADS131ML4接收到的第一个单词。 在编写命令字之后, 需要对要读取的每个字节 执行虚拟写入。 虚拟写人是启用SPI时钟所必需的, SPI时钟是从ADS131ML4设备读取字节所必需的。 对于每个W字节的写入, 都将一个值0x00写入SPI传输寄存器。 在写入命令字节之后, 立即写入3个虚拟字节,允许MSP432微控制器 从ML4的通道0接收3字节ADC值。 接下来的9个伪字节分别获得 通道1、通道2和通道3的 ADC数据。 在读取通道3示例之后, 接下来的三个虚拟字节将得到CRC字节。 CRC字是24位。 但是,请注意,实际的CRC 只有16位,它们被放在 24位单词中最重要的位中。 因此,在解析CRC字时, 不需要最后一个字节。 不过请注意,对于正确的ADS131ML4操作, 这个零模式字节的哑字节仍然必须发送。 ADS131ML4发送的包中的最后一个字节 是CRC字节。 CRC可用于验证 从ADS131ML4发送的数据 是否已被MSP432正确接收。 ADS131ML4支持两种类型的 CRC计算。 对于本设计,使用 CRC16-CCITT CRC选项, 因为我们可以使用 MSP432 CRC模块 加速这些计算,因为MSP42 CRC模块 专门使用CRC类型。 对于这种CRC类型, CRC是基于使用这里显示的多项式 对ADS131ML4进行多项式除法得到的。 当DMA从ADS131ML4接收到 一个完整的数据包时, DMA ISR将被自动调用。 在ISR中,CRC 通过五个命令和ADC单词计算,总共15个字节。 该CRC计算使用 MSP432微控制器的CRC模块。 由于CRC模块使用偶数个字节, 但是总共有15个字节可用, 所以前14个字节使用CRC模块。 最后的CRC由软件 根据CRC模块的结果和第15个字节计算得到。 注意,软件CRC 对最后一个字节的计算 是必要的,因为在本设计中, 字长可能是三个字节。 如果单词大小被选择为2字节, 或者改为4字节,则不需要 软件CRC计算,因为将有 偶数个字节。 下面的代码片段使用 MSP432 CRC模块和软件 计算15字节以上的CRC。 在这个代码片段中,您可以看到 MSP432上的CRC模块首先被初始化。 然后将ML4数据包 一次两个字节地输入到 MSP432 CRC模块, 直到输入了前14个字节为止。 然后将ML4包的第15个字节 和前14个字节的CRC结果输入软件算法, 该算法由一个 MSP432 CRC代码示例获得, 计算最终的CRC。 在包上计算CRC之后, 将它与ML4发送的包中 获得的CRC进行比较。 发送的CRC从ML4包的字节16 和字节17解析出来。 如果计算的CRC 与解析的CRC相等, 则通过CRC校验,解析ADC数据, 得到N-1电压 和电流样本值。 解析后的电压和电流样本 被放入临时缓冲器中, 以便下次在下一次中断时 调用解析后的样本DSP函数时使用它们。 在DMA中断结束之前,芯片选择行 再次被拉回高位,这样我们就可以
课程介绍 共计10课时,1小时18分49秒

如何使用独立计量 ADC 设计高精度 CT 分相电表

ADC 高精度 电表 计量 CT 分相

提供有关分流器和电流互感器特性的详细信息。 讨论了三种不同的架构,用于检测用于计算计量参数的电压和电流样本。 讨论了TIDA-010037参考设计中ADS131M04独立ADC和MSP432计量/主机微控制器的功能。 概述了TIDA-010037参考设计。 简要讨论了TIDA-010037中用于提供具有过压和欠压保护的限流轨的电路。 讨论了TIDA-010037参考设计中使用的电路,用于将电源电压和电流转换为ADS131M04检测到的电压范围。

  • 相关产品
  • 技术支持

推荐帖子

【藏书阁】GPS应用程序设计
目录 〖目录〗 前言 第一章 绪论 1.1 GPS发展历史 1.2 GPS的组成 1.2.1 GPS卫星 1.2.2 地面支撑系统 1.2.3 用户接收机 1.3 GPS信号结构 1.3.1 C/A码 1.3.2 P码 1.4 GPS导航电文 1.4.1 导航电文格式 1.4.2导航电文内容 1.5 美国的SA和AS政策 第二章数据来集和格式转换 2.1 数据采集...
wzt DSP 与 ARM 处理器
【求助】请教关于C程序的一个初级问题
本人是msp新手,想请教斑竹一个很初级的问题:我在调试简单的Timer产生时钟信号的C程序时,中断程序处出现“this declaration has no storage class or type specifier”,程序结束处出现“expected a ';'"的错误,该程序是“msp430系列单片机C语言程序设计及开发”P155中的例子,我试了一下其他中断程序,情况一样,请问是...
jxzg101 微控制器 MCU
EPWM输出同步问题
本帖最后由 eeacc 于 2014-6-13 16:05 编辑 我按TI的资料的例程把源程序下到板子里看结果,理想是这样的 但是我实际做出来的是第一相和二三相并不同步,二三相倒是很同步,这是什么原因呢? ...
eeacc 微控制器 MCU
TMS320VC5410的McBSP串行接口技术与程序设计
一、DSP的串行接口技术   DSP是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速...
Aguilera DSP 与 ARM 处理器

推荐文章

经典_STM32_ADC多通道采样的例子 2020年12月01日
STM32 ADC多通道转换描述:用ADC连续采集11路模拟信号,并由DMA传输到内存。ADC配置为扫描并且连续转换模式,ADC的时钟配置为12MHZ。在每次转换结束后,由DMA循环将转换的数据传输到内存中。ADC可以连续采集N次求平均值。最后通过串口传输出最后转换的结果。程序如下:#i nclude "stm32f10x.h" //这个头文件包括...
杭州晶华微电子:深耕ADC和MCU“中国芯” 2020年11月30日
的工控HART通讯控制器芯片及4~20mA电流DAC更是打破工控行业国外垄断,实现国内突破。目前公司通用模拟集成电路及系列专用SoC产品已广泛应用于红外测温领域、智能可穿戴设备、各种消费类电子产品及工业控制、测试测量仪器仪表、传感器信号处理及物联网等众多领域。其中,高精度、低功耗的24Bits ADC + 8Bits MCU类SoC一直保持国内电子秤及红外测温枪市场领先地位...
MSP430之八路ADC单次采集的程序 2020年11月26日
本程序采用的是八路ADC单次采集的模式,根据配置,在单次的模式下转换完成后ADC12SC会自动复位,因此需要在循环中进行ADC12CTL0 |= ADC12SC;操作,而如果配置成连续采集的模式,只需要在程序开始将ADC12SC置位一次就可以,但是就需要注意当进入中断后如果不手动禁止中断会一直停留在循环中,因此在采集到需要的数据后需要将ADC关闭或者中断使能禁止才能重新回到主...
TI告诉你如何简化隔离电流和电压感应设计 2020年11月18日
到另一个电源域,以便进行监视和控制。那么如何在隔离势垒上传输模拟信息呢?答案是使用隔离放大器和隔离模数转换器(ADCs),后者也被称为隔离δ-Σ调制器。 设计这些系统时,面临的一大难题是如何为隔离放大器或ADC供电。通常来说,它们需要两个电源——高侧电源和低侧电源(在图1的左图分别显示为VDD1和VDD2)。低压侧通常由为数字控制器供电的相同电源供电,但许多系统的高侧...

lai28450748

学习了

2020年01月03日 14:00:44

百万千万

AFE和独立ADC有意思

2019年10月20日 14:59:59

shakencity

如何使用独立计量 ADC 设计高精度 CT 分相电表

2019年09月24日 15:24:37

zwei9

学习学习

2019年09月12日 17:17:42

dl265361

这个课程不错,值得学习

2019年09月12日 13:16:57

大明58

如何使用独立计量 ADC 设计高精度 CT 分相电表

2019年09月02日 16:51:28

zly1986ZLY

课程不错,学习了,呵呵

2019年08月17日 17:37:59

hellokt43

好好学习天天向上。。。。

2019年08月02日 16:14:53

分享到X
微博
QQ
QQ空间
微信

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新文章 手机版

站点相关: EEWORLD首页 EE大学堂 论坛 下载中心 Datasheet 活动专区 博客

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved