【轮式平衡机器人】——TMS320F28069片内外设之ADC

news2024/12/24 8:08:41

一、ADC概述

这一部分不是我们的重点,原理分类啥的这里简要说明!

步骤:采样、保持、量化、编码

将采样电平(模拟值)转换为数字值的方法:直接比较型(并行ADC、逐次逼近型ADC);间接比较型(双积分型ADC)

关键技术指标:分辨率、转换速率、量化误差、偏移误差、满刻度误差、线性度。

其他技术指标:绝对精度、相对精度、微分非线性、单调性和无错码、总谐波失真和积分非线性。

TMS320F2806x系列的ADC模块的主要参数:

  • 12位模数转换
  • 2个采样保持器(S/H)
  • 同步采样或顺序采样
  • 模拟电压输入范围0~3.3V
  • 16通道模拟输入
  • 16个结果模拟输入
  • 16个结果寄存器存放ADC转换的结果
  • 多个触发源:S/W。软件立即启动;ePWM1~ePWM8;外部中断2脚;定时器0、1、2;A/D中断1、2。

二、基于Simulink平台的ADC实验

1、ADC_NORMAL模式

ADC_NORMAL模式配置先从配置时钟开始,ADC模块是挂在高速外设时钟线上的外设,Clocking配置为系统90MHz时钟2分频。

在ADC配置中,使用默认的分频系数ADCLK=2,得到ADC模块时钟为45MHz,其他使用默认配置。

在simulink中搜索“ADC c2802x”模块,采样模式为单个采样模式,SOC触发数为SOC0,采样窗口7,SOCx触发源为软件触发,输出数据类型为uint16,输入通道配置为A0,此模块数据基本为默认

配置完成后,对ADC采样的值进行转换。由于ADC转换结果寄存器是16位的,且数值是左对齐的12位数据,所以要进行左移4位操作,官方支持包考虑到了这一点,只需直接对输出的结果进行转换就可以得到实际的采样值。

下面的模型采集的是外部电位器的0~3.3V电压,所以直接进行转换(12位的ADC满量程为4096,即4096对应实际参考电压3.3V)。这里加入了LED灯,当采集到的模拟量少于2048时,LED2灯闪烁,否则LED1闪烁。其中“Rate Transition”模块为高采样速率向低采样速率转换

搭建完成后将模型编译下载到主控板(小编由于成本也是先纸上谈兵了,重在熟悉步骤)。将电位器中间引脚接在主控板的AD0引脚上,其他两个引脚分别接在主控板的3.3V和GND引脚,顺时针和逆时针调节电位器,两个LED灯都发生了变化。

2、ADC_EXTERNAL模式

按照GPIO_EXTERNAL外部模式的配置方法将模型配置为外部模式,见上期博客:

上期博客外部模式配置icon-default.png?t=N7T8http://t.csdnimg.cn/qV7bF

在Simulink中搭建模型,首先将ADC输出值通过一个增益模块赋给PWM的占空比输入,并显示在scope模块上。Gain的输出数据为uint16,ePWM模块选择ePWM1,这里WA相当于占空比的大小,相关配置详细见后续ePWM期博客。

完成上述配置后,用USB转TTL线,分别将USB的RX、TX接在F28069主控板的TXA、RXA引脚上。启动仿真,调节电位器便可观察到scope示波器的变化。

往期精彩

STM32专栏(付费9.9)icon-default.png?t=N4N7http://t.csdnimg.cn/E2F88

OpenCV-Python专栏(付费9.9)icon-default.png?t=N4N7http://t.csdnimg.cn/zK1jV

AI底层逻辑专栏(付费9.9)icon-default.png?t=N4N7http://t.csdnimg.cn/zic0f

机器学习专栏(免费)icon-default.png?t=N4N7http://t.csdnimg.cn/FaXzAFreeRTOS专栏(免费)icon-default.png?t=N4N7http://t.csdnimg.cn/SjIqU电机控制专栏(免费)icon-default.png?t=N4N7http://t.csdnimg.cn/FNWM7

 

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

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

相关文章

Feign调用出现权限问题 feign.FeignException$Unauthorized: [401] during [GET] to[....]

报错讯息 使用Spring Cloud Spring Security Oauth2.0 JWT 做分布式认证的时候,内部微服务调用的时候出现权限问题。 feign.FeignException$Unauthorized: [401] during [POST] to [http://authorization-server/oauth/token?grant_typepassword&usernamea…

Python采集学习笔记-读取excel数据

表格格式 方法一:使用xlrd import xlrd 1.读取Excel文件 workbook xlrd.open_workbook(plc.xlsx) 2.读取第一个表 sheet workbook.sheet_by_index(0) 3.获取表格总行数 total_rows sheet.nrows 4.创建列表,存储表格一行中每一列信息 plc_info [] for row in range(1…

【遥感专题系列】遥感影像信息提取之——人工目视解译

​遥感影像通过亮度值或像元值的高低差异(反映地物的光谱信息)及空间变化(反映地物的空间信息)来表示不同地物的差异,这是区分不同影像地物的物理基础。 ​人工解译是目前国内使用最多的一种影像提取方法,如…

【20240131】USB相机(查看设备列表、打开设备)

USB相机采集 1、v4l2查看设备列表2、查看具体设备信息3、在桌面打开USB相机 1、v4l2查看设备列表 打开终端,输入:v4l2-ctl --list-devices usb设备在Webcam: Webcam栏,分别是video9和video10,下一步:确定哪一个是接入…

便携式风速风向仪的应用场景

【TH-BQX2】便携式风速风向仪是一种用于测量风速和风向的仪器,具有便携、易用、高精度等特点。该仪器通常由传感器、数据采集器和显示终端等部分组成,能够实时监测风速、风向、温度、湿度等多种气象要素,并通过多种通讯方式将数据传输到计算机…

医院安全(不良)事件报告系统源码,不良事件处理的全过程管理,实现11大类不良事件类型的报告上报、流转审批、跟踪改进及统计分析功能。

医院安全(不良)事件报告系统源码,不良事件上报系统源码,PHP源码 医院安全(不良)事件报告系统提供11大类不良事件的上报、事件审核处理、时间按分析、事件跟踪与持续改进,事件提醒、权限控制、外…

C语言 | 求最大/小值小技巧:fmax、fmin函数

如果你只是因为不想用C语言手写max、min函数,就直接去用iostream中的max、min函数的话,这篇文章可能会有些许帮助。 😇 fmax、fmin函数用于确定两个指定值的较大/较小值。 头文件 math.h(或者cmath)。 定义 double …

使用Mysql实现Postgresql中窗口函数row_number的功能

1. 描述 需要根据用户id,查询每个人得分第二高的科目信息 2. 表结构及数据 2.1 表结构 CREATE TABLE t_score (id bigint(20) NOT NULL AUTO_INCREMENT,user_id bigint(20) NOT NULL,score double NOT NULL,subject varchar(100) NOT NULL,PRIMARY KEY (id) ) E…

Java技术栈 —— Spring MVC 与 Spring Boot

参考文章或视频链接[1] Spring vs. Spring Boot vs. Spring MVC[2] Key Differences Between Spring vs Spring Boot vs Spring MVC

VMware安装RHEL-磁盘划分和分区

本文探讨了在VMware虚拟机上安装RHEL时遇到的磁盘划分和分区问题。文章详细介绍了磁盘划分过程中可能出现的问题,特别是在选择磁盘类型时可能导致找不到磁盘的情况。通过清晰的步骤和解决方法,读者可以更好地理解如何正确进行磁盘划分以及如何解决磁盘无…

c#鼠标绘制

有用的没用的,用的上的用不上的,能写的不能写的,反正想起来就写了,比如这篇,好像一般也没什么用,emmm,或许,做录制软件的时候可以用一下。 顾名思义,本篇主要就是来实现将…

九章云极DataCanvas公司荣登“2023Venture50投资界数字科技”榜

近日,由中国领先的创业与投资综合服务机构清科创业、投资界发起的2023Venture50评选结果最终揭晓。九章云极DataCanvas公司凭借雄厚的技术实力、稳定的业务发展和成熟的商业模式,入选“2023Venture50投资界数字科技TOP50”。 Venture50评选(简…

【经典项目】Java入门,实现斗地主小游戏

一、需求分析 实现斗地主游戏可以涉及以下几个关键步骤和思路: 游戏规则定义:首先,你需要明确斗地主游戏的规则,包括牌的花色和大小、玩家数量、发牌顺序、出牌规则、胜利条件等。 牌的表示和初始化:定义一套扑克牌的…

【Android Studio 启动出错】

Android Studio版本:2022.3.1 出错前操作: 昨晚开着三四个项目,然后太晚了直接关机睡觉,第二天起来开机,启动Android Studio,就出现了这个问题: Internal error. Please refer to https://co…

亚信安慧AntDB构建未来数据库典范

亚信安慧AntDB是一款数据库管理系统,它采用全球影响力大、社区繁荣、开放度高、生态增长迅速的PG内核。这款系统具有卓越的性能和稳定性,在全球范围内备受用户青睐。 与此同时,AntDB的社区也是充满活力的,用户可以在社区中交流经…

【C++】类和对象(二)——构造/析构/拷贝构造函数

💗个人主页💗 ⭐个人专栏——C学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读1. 默认成员函数2. 构造函数2.1 引入2.2 特性2.3 默认构造函数 3. 析构函数3.1 概念3.2 特性3.3 默认析构函数 4. 拷贝构造函…

ARM汇编 4.GNU伪指令、内联汇编

汇编伪指令格式 标号symbol(label) 注释符号: 整行注释:# 语句分离:; 立即数前缀:# 或 $ 分段:.section伪操作,用于自定义新的段 .text:代码段.data&am…

【服务端性能测试】性能测试策略如何做

一、需求收集 先需要确认本次测试目的是什么,然后再看我们需要用什么参数来判断这个目的是否能够达成。 1.1 业务性能指标参考: TPS、QPS、RT、请求成功率(一般请求成功率>99.99%) 1.2 硬件性能指标参考: 即服…

C++ 滑动窗口

目录 1、209. 长度最小的子数组 2、3. 无重复字符的最长子串 3、1004. 最大连续1的个数 III 4、1658. 将 x 减到 0 的最小操作数 5、904. 水果成篮 6、438. 找到字符串中所有字母异位词 7、30. 串联所有单词的子串 8、76. 最小覆盖子串 1、209. 长度最小的子数组 思路&…

超越传统—Clean架构打造现代Android架构指南

超越传统—Clean架构打造现代Android架构指南 1. 引言 在过去几年里,Android应用开发经历了巨大的变革和发展。随着移动设备的普及和用户对应用的期望不断提高,开发人员面临着更多的挑战和需求。传统的Android架构在应对这些挑战和需求时显得有些力不从…