simulink代码生成(二)——ADC采样模块

news2024/10/1 5:24:37

这一节梳理如何使用C2000库中的ADC模块,从而实现采样;

先预留几个问题,逐步进行解决。

(1)在simulink中C2000的ADC采样模块设置是怎么样的?各个选项卡代表什么?

(2)ADC采样是如何被启动的?

(3)ADC采样回来的值是什么值?是浮点数还是12位AD代表的4096?

1 ADC采样模块的设置

在库中搜索ADC采样模块,添加到模型中,其模块如下图所示:

双击后设置面板(1)如下图所示:

(1)Module采样单元

该选项指定要使用的DSP模块:

A——显示模块A中的ADC通道(ADCINA0到ADCINA7)。

B——显示模块B中的ADC通道(ADCINB0到ADCINB7)。

A和B——显示模块A和B中的ADC通道(ADCINA0到ADCINA7和ADCINB0到ADCINB7)。

(2)Conversion mode 转换模式选择

用于信号的采样类型:

Sequential— 顺序采样:0-7或者0-15都是同一时间只转换一路信号 

simultaneous ——同步采样:0-7的一个通道和9-15的一个通道同时转换信号,但是必须要有相同的偏移量,比如ADCINA4和ADCINB4就可以,但是ADCINA7和ADCINB6就不能同一时刻转换

具体的可以参照我以前的ADC底层的博客;

F28335 ADC配置代码模块及其排序方式介绍-CSDN博客

(3)Start of conversion 启动转换的方式

触发转换开始的信号类型:

Software  ——来自软件的信号。转换值在每个采样时间更新。

ePWM#A/ePWM#B/ePWM#A_ePWM#B——  转换的开始由用户定义的PWM事件控制。(必须配合ePWM模块同时使用,并且ePWM模块需要输出触发的事件

XINT2_ADCSOC —— 转换的开始由XINT2_ADDCSOC外部信号引脚控制。

(4)Sample time 采样时间

设置ADC采样时间。这是从结果寄存器中读取值的速率。

当选择该项为-1时,为异步模式;
值得注意的是:如果想要为不同组的ADC通道设置不同的采样时间,必须向模型中添加单独的ADC块,并为每个块设置所需的采样时间。

(5)Data type 输出的数据类型

设置输出数据的类型,可以被设置的类为 autodoublesingleint8uint8int16uint16int32, or uint32

对于DSP28335,其内置的ADC采样是12位的,但是实际数据是无符号16位的即uint16,在单片机编程时需要左移4位后再进行使用;simulink代码生成时会自动处理;

双击后设置面板(2)如下图所示,这个部分就比较简单,设置需要转换的通道数,并且配置第一个第二个或者更多对应的采样管脚;

值得注意的是:在过采样模式中,给定ADC通道处的信号可以在单个转换序列期间被采样多次。若要过采样,请为多个转换指定同一通道。转换后的样本将作为单个向量输出。也就是把多个通道配置为一个引脚;

还可以使用多个输出端口,如果使用多个ADC通道进行转换,则可以为每个输出使用单独的端口,并在块上显示输出端口。如果使用多个通道而不使用多个输出端口,则数据将以单个矢量输出。

2  ADC采样是如何被启动的?

这个点需要被重点关注,软件启动和外部触发启动都比较好理解,但是这种一般不常用,电机控制中最常用的还是ePWM模块的事情触发ADC采样,例如在载波的顶点或者在载波的0点;这个需要配合ePWM模块中的事件触发使用,这里提前先设置一下ePWM模块有关的地方,

如下图所示,则配置的是CTR = PRD即载波的顶点时输出事件,勾选Enable ADC start of conversion for module A 后即可在每次CTR = PRD时进行采样;一般选择在载波顶点采样,因此此时电压矢量为零矢量,采样所得电流基本为基波电流;

3 ADC采样回来的值是什么值?是浮点数还是12位AD代表的4096?

按照上面的阐述以及文件的说明,DSP28335,其内置的ADC采样是12位的,但是实际数据是无符号16位的即uint16,在单片机编程时需要左移4位后再进行使用;simulink代码生成时会自动处理;但是我觉得还是值得测试一下的;搭建一个这样的模型;设置ePWM1的TRPD = 8192。

假如确实采样模块的输出是以4096为最大值的12位无符号数,那么可以得到一个可预想的结果:假如供电电压是1.65V左右的值,那么此时输出应该是2048左右的值。如下所示,示波器的就不放了,CMPA已经与采样值同步了。

那么就得出结论,simulink代码生成中ADC输出的值即为12位ADC采样后结果寄存器中的值,并且已经完成了左移4位的操作;即 0 - 0 , 1.65 - 2048 , 3.3 - 3096 

上面仅为1路采样结果,配置3路后;结果如下所示;

附录:模型截图即设置截图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1332951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【开源】基于JAVA语言的学校热点新闻推送系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 新闻类型模块2.2 新闻档案模块2.3 新闻留言模块2.4 新闻评论模块2.5 新闻收藏模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 新闻类型表3.2.2 新闻表3.2.3 新闻留言表3.2.4 新闻评论表3.2.5 新闻收藏表 四、系统展…

谷粒商城|仓储服务-仓库管理

配置服务中心 cloud:nacos:discovery:server-addr: 127.0.0.1:8848application:name: guliware在网关配置路由转发 guligateway .yml配置文件 - id: ware_routeuri: lb://guliwarepredicates:- Path/api/guliware/**filters:- RewritePath/api/(?<segment>.*),/$\{segm…

计算机网络复习-OSI TCP/IP 物理层

我膨胀了&#xff0c;挂我啊~ 作者简介&#xff1a; 每年都吐槽吉师网安奇怪的课程安排、全校正经学网络安全不超20人情景以及割韭菜企业合作的FW&#xff0c;今年是第一年。。 TCP/IP模型 先做两道题&#xff1a; TCP/IP协议模型由高层到低层分为哪几层&#xff1a; 这题…

EasyPoi(excel导入导出)

一&#xff0c;依赖包&#xff1a; <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>4.1.3</version></dependency> 二&#xff0c;官网文档 1. 前言 - Powered…

格密码基础:q-ary格

目录 一. 格密码的重要性 二. 格密码基础 2.1 格点的另一种理解方式 三. q-ary格 3.1 q-ary垂直格 3.2 q-ary格 3.3 二者结合 四. 论文中的q-ary格 4.1 定理1 4.2 定理2 4.3 定理3 一. 格密码的重要性 格密码的基础是研究格点上的困难问题&#xff0c;这种格点使用…

从浮点数度分秒1.40000中无损精度提取1度40分00.0秒的方法

那些最好的程序员不是为了得到更高的薪水或者得到公众的仰慕而编程&#xff0c;他们只是觉得这是一件有趣的事情&#xff01; 从浮点数度分秒1.40000中无损精度提取1度40分00.0秒的方法 &#x1f340;前言&#x1f338;传统的提取方法&#x1f516;算法介绍&#x1f9fe;Python…

Java研学-HTTP 协议

一 概述 1 概念和作用 概念&#xff1a;HTTP 是 HyperText Transfer Protocol (超文本传输协议)的简写&#xff0c;它是 TCP/IP 协议之上的一个应用层协议。简单理解就是 HTTP 协议底层是对 TCP/IP 协议的封装。   作用&#xff1a;用于规定浏览器和服务器之间数据传输的格式…

(企业 / 公司项目)如何使用分布式任务调度框架Quartz集成 和 SpringBoot自带的定时任务集成?

SpringBoot自带的定时任务 首先在你的微服务项目中创建一个新的模块&#xff0c;定时调度模块 pom.xml里面关联公共模块common的依赖其他不需要改变 然后启动类别删&#xff0c;启动项目是否报错&#xff0c;写一个简单的测试类访问路径是否成功 package com.jiawa.train.bat…

力扣日记12.24-【二叉树篇】236. 二叉树的最近公共祖先

力扣日记&#xff1a;【二叉树篇】236. 二叉树的最近公共祖先 日期&#xff1a;2023.12.24 参考&#xff1a;代码随想录、力扣 ps&#xff1a;提前祝 平安夜快乐&#xff01; 236. 二叉树的最近公共祖先 题目描述 难度&#xff1a;中等 给定一个二叉树, 找到该树中两个指定节点…

nodejs+vue+ElementUi摄影作品图片分享工作室管理系统

第1周 2.21&#xff5e;2.27 查阅资料&#xff0c;学习vscode开发平台和vue框架技术 第2周 2.28&#xff5e;3.6 对软件功能需求进行分析, 软件功能模块划分及软件界面设计 第3周 3.7&#xff5e;3.13 撰写并提交毕业设计开题报告、英文资料翻译 第4周 3.14&#xff5…

[Linux] MySQL数据库之索引

一、索引的相关知识 1.1 索引的简介 索引是一个排序列表&#xff0c;包含索引值和包含该值的数据行的物理地址&#xff08;类似于 c 语言链表&#xff0c;通过指针指向数据记录的内存地址&#xff09;。 使用索引后可以不用扫描全表来定位某行的数据&#xff0c;而是先通过索…

Linux环境变量剖析

一、什么是环境变量 概念&#xff1a;环境变量&#xff08;environment variables&#xff09;一般是指在操作系统中用来指定操作系统运行环境的一些参数&#xff0c;是在操作系统中一个具有特定名字的对象&#xff0c;它包含了一个或多个应用程序所将使用到的信息&#xff0c…

excel统计分析——S-W正态性检验

参考资料&#xff1a; [1]马兴华,张晋昕.数值变量正态性检验常用方法的对比[J].循证医学,2014,14(02):123-128. 统计推断——正态性检验&#xff08;图形方法、偏度和峰度、统计&#xff08;拟合优度&#xff09;检验&#xff09;_sm.distributions.ecdf-CSDN博客 【统计学】…

Linux操作系统基础 – 修改文件权限

Linux操作系统基础 – 修改文件权限 Linux Operating System Essentials - Modify File Rights By JacksonML 文件是Linux操作系统存储信息的基本结构。文件是一组信息的集合。 在Linux操作系统和Windows操作系统相比较的最大不同&#xff0c;是Linux文件没有扩展名&#xff…

2023年全球前端大技术大会(GMTC北京站2023)-核心PPT资料下载

一、峰会简介 大会以“业务至上&#xff0c;效率为王”为主题&#xff0c;策划了 1 个主会场&#xff0c;10 个技术专场。会议议题包含前端 DevOps 实践、低代码、大前端监控、跨端技术选型、团队可持续发展、IoT 动态应用开发、移动端性能与效率优化、TypeScript、大前端技术…

等腰三角形两底角相等

等腰三角形定义: 是指至少有两边相等的三角形。相等的两个边称为这个三角形的腰 二.证明 有等腰△ABC,AB和AC是腰,p是BC的中点 证明等腰三角形两底角相等 即 ∠ A B P ∠ P C A ∠ABP∠PCA ∠ABP∠PCA ∴ ∴ ∴ 三角形内角和为180 ∵ { ∠ A B P ∠ A P B ∠ B A P 180 …

形态学处理

形态学处理的相关内容 &#xff08;1&#xff09;基于图像形态进行处理的一般方法 &#xff08;2&#xff09;这些处理方法基本是对二进制图像进行处理 &#xff08;3&#xff09;卷积核决定着图像处理后的结果 形态学图像处理 &#xff08;1&#xff09;腐蚀&#xff08;…

如何打包鸿蒙应用并发布到应用市场

知识点&#xff1a; HarmonyOS 应用打包后的文件为.app 格式&#xff0c; android 打包后的文件为.apk&#xff0c;IOS 打包后的文件为.apa HarmonyOS通过数字证书&#xff08;.cer文件&#xff09;和Profile文件&#xff08;.p7b文件&#xff09;等签名信息来保证应用的完整性…

最常见的SQL报错注入函数(floor、updatexml、extractvalue)及payload总结

SQL报错注入是一种常见的SQL注入攻击方式&#xff0c;攻击者通过注入恶意代码&#xff0c;触发数据库的错误响应&#xff0c;并从错误信息中获取有用的信息。 下面介绍最常见的三个报错注入函数用法及payload总结&#xff1a; 1、floor() 使用floor报错注入&#xff0c;需要…

VS2020使用MFC开发一个贪吃蛇游戏

背景&#xff1a; 贪吃蛇游戏 按照如下步骤实现:。初始化地图 。通过键盘控制蛇运动方向&#xff0c;注意重新设置运动方向操作。 。制造食物。 。让蛇移动&#xff0c;如果吃掉食物就重新生成一个食物&#xff0c;如果会死亡就break。用蛇的坐标将地图中的空格替换为 #和”将…