PIC adc模块的配置

news2024/12/23 22:35:12

PIC adc模块的配置有如下要点:

1. adc模块本身:

注意,Auto-conversion Trigger和ADC的clock是两个概念。

auto-conversion Trigger的频率不得超过ADC采样一次的总时长。而真正的采样率是auto-conversion Trigger的頻率。

采样的过程中,那个TAD,可以认为是ad采样中,一系列流水线工作的节拍。一次AD采样会包括如下环节:

  • 接入检测电路,充电
  • 断开,开始2分法逼近,得到输出digital的各个bit的值。
  • 输出。
  • 放电。

我们的设计目标是100us一次采样即采样率=10ksa/s,所以,46us符合要求。

Positive reference和  Negative Reference是信号进入单片机时,被修正到的峰峰值。ad如果有10位,那么采样值1023对应-Positive Reference那个电压;采样值0,对应Vss那个电压。Vss一般就是0。

左对齐和右对齐的概念,只有对那些高于8bits的AD采样芯片才会有意义。指的是把测量结果对其到16Bits,高低两个字节的左边MSB还是右边LSB。左对齐可以直接很方便地丢弃掉低位测量值,如果电路本身电压基准有抖动,那么直接丢掉低位就行,虽然AD有10bits,12Bits,但是我们只用8Bits.

2.采样频率发生源( CCP)

注意,CCP模块需要设定上述两个属性。第一个属性是指定一个Timer. Timer本身要已经把分频器分好。另外要设置为Autoconversion模式,这样CCP5模块才能真的去连接到Adc那里。

然后注意CCP中断无需打开。因为测量值测完之后,你才能够取走。所以真正的中断源是adc的中断

然后,一个隐藏知识。CCP需要打开高级模式,配置: CCPR*h 和CCPR*L 

它的实际工作模式是这样的:CCP会以使用者的方式去操控那个Timer。注意,和Timer日常工作模式不同,CCP模块此时是个正计时器。从0开始数,数到 CCPR*h-CCPR*l所设定的那个16bits数值时就会触发,触发会,它会去置 adc的开始采样寄存器位:

ADCON0bits.GO_nDONE = 1;

然后adc就会按照自己设定的TAD的节拍,走完所有的节拍,结果生成后:

ADCON0bits.GO_nDONE = 0;

同时生成中断。中断的频率,或者说采样率,要顾及到单片机本身的算力。比如留出1000个指令周期,可能是比较充裕的。这个上限要自己去测。

3.定时器

 定时器的配置要点是:Timer这里的Timer Period的具体设置其实是无效的。因为它会成为一个被动器件,它的TimerPeriod会由CCP模块控制,以正计时的模式运行。这里配置其实全无意义。只有那个Timer Period的下限2us有意义,被用来计算與目標采样率相当的采样点之间的时间差所对应的那个数字应该是几——2us的最小时间刻度,那么100us的采样率就是50 = 100us/2uS.

这里是实际的最终测量波形,信号是工频,一个整周期:

比对示波器图样:

采样值序列要转换为实际的测量值,还需要进行标定。标定主要有两个指标:

1.零点

2.斜率。

所有的一次函数,最关键的指标就是这两个值。一个是整形,一个是 float.

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

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

相关文章

2023音视频开发程序员未来10年路线选择

2023音视频开发程序员未来10年路线选择: 音视频领域,其实你可以分三个部分来看, 第一是音视频本身,第二是网络通讯,第三是图像处理。 音视频本身涉及到音视频视频编解码啊,各种视频容器啊等等协议规范。 网…

【Java SE】| Java 序列化详解

目录 🦁 什么是序列化和反序列化?🦁 序列化和反序列化常见应用场景🦁 序列化协议对应于 TCP/IP 4 层模型的哪一层?🦁 常见序列化协议有哪些?1. Java自带的序列化方式2. Kryo3.Hessian 🦁 什么是…

Dockerfile(6) - EXPOSE 指令详解

EXPOSE 通知 Docker 容器在运行时监听指定的网络端口 EXPOSE 端口号 EXPOSE 端口号/协议 默认协议是 TCP 同时在 TCP、UDP 上暴露端口 EXPOSE 80/tcp EXPOSE 80/udp EXPOSE 原理 个人理解:EXPOSE 暴露的端口更像是指明了该容器提供的服务需要用到的端口EXPOSE …

独角数卡 搭建-邮件配置-Epusdt配置-收U详细配置

配置独角数卡 https://github.com/assimon/dujiaoka/wiki/2.x_bt_install ⚠️正式上线后一定要将.env配置里面的APP_DEBUG设置为false⚠️ ⚠️正式上线后一定要将.env配置里面的APP_DEBUG设置为false⚠️ ⚠️正式上线后一定要将.env配置里面的APP_DEBUG设置为false⚠️ 安…

FMC子卡设计原理图:141-四路 250Msps 16bits AD FMC子卡 模拟信号、无线电、光电的采集场景

FMC141-四路 250Msps 16bits AD FMC子卡 一、产品概述: 本板卡基于 FMC 标准板卡,实现 4 路 16-bit/250Msps ADC 功能。遵循 VITA 57 标准,板卡可以直接与xilinx公司或者本公司 FPGA 载板连接使用。板卡 ADC 器件采用 ADI 公司 AD9467…

基于关联规则挖掘的商品交叉销售分析

基于关联规则挖掘的商品交叉销售分析 小P:我们最近考虑将一些相关的商品打包销售,以提高GMV,有没有好的方法啊 小H:参考经典的啤酒尿布案例,可以尝试通过关联规则挖掘相关信息 数据探索 # 导入库 import pandas as pd…

创新工具 | 教你6步用故事板设计用户体验事半功倍

问题 构思方案时团队在细节上难以共识 故事板是什么?故事板就像连环画一样,将用户使用解决方案的关键步骤顺序串联了起来,呈现了方案和用户之间的交互。 故事板以先后顺序展现团队票选出来的最佳解决方案,在过程中对于方案中未…

vue 使用vue-json-viewer 展示 JSON 格式数据

vue 使用vue-json-viewer 展示 JSON 格式数据 1、安装 vue-json-viewer插件2、引入插件并注册2.1 全局注册组件2.2 单个页面局部引入 3、插件的基础使用4、插件可选配置说明4.1 选项 4.2 事件4.3 Slots4.4 主题5、实现效果 1、安装 vue-json-viewer插件 npm install vue-json-…

小米新财报:手机承压,转型求生

配图来自Canva可画 近期,国内各互联网大厂、科技公司、电商平台、内容社区等均陆续发布了2023年第一季度财报。在疫情消退、经济回暖的当下,还是有不少企业交出了一份不错的答卷。而国内知名的科技公司——小米集团,由于业务覆盖范围广泛、产…

【线程池】线程池的7种创建方式,详细讲解

文章目录 一、什么是线程池?二、线程池的分类三、线程池的使用四、ThreadPoolExecutor详解 一、什么是线程池? 线程池(ThreadPool)是一种基于池化思想管理和使用线程的机制。它是将多个线程预先存储在一个“池子”内,…

(哈希表 ) 454. 四数相加 II ——【Leetcode每日一题】

❓454. 四数相加 II 难度&#xff1a;中等 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&a…

如何在多个端口上运行 SSH 服务器?

SSH&#xff08;Secure Shell&#xff09;是一种用于安全远程访问和管理服务器的协议。默认情况下&#xff0c;SSH服务器在Linux系统上使用22号端口进行通信。但是&#xff0c;有时我们可能需要在多个端口上运行SSH服务器&#xff0c;以满足特定的需求或增强服务器的安全性。 本…

Hexo+Twikoo+Vercel 个人博客开启评论功能

Twikoo 文档&#xff1a;https://twikoo.js.org/quick-start.html MongoDB 数据库 点击链接 https://www.mongodb.com/cloud/atlas/register 进入 MongoDB 官网使用邮箱进行注册&#xff1a; 注册之后&#xff0c;MongoDB 会向邮箱发送一封验证邮件&#xff1a; 进入邮箱&…

如何在 Linux 中进行网络地址转换 (NAT)?

网络地址转换&#xff08;Network Address Translation&#xff0c;简称NAT&#xff09;是一种在网络中使用的技术&#xff0c;它允许将私有网络中的IP地址映射到公共网络上&#xff0c;从而实现多个设备共享单个公共IP地址。在Linux系统中&#xff0c;我们可以使用一些工具和配…

实体店引流获客系统模式开发详解

随着互联网的日益发展&#xff0c;实体店的处境变得越来越艰难&#xff0c;获客难和销量差成为了实体店最头疼的两大问题。面对这种情况&#xff0c;一味固步自封是不行的&#xff0c;最好还是顺应潮流&#xff0c;结合一款合适的商业模式&#xff0c;来帮助自己快速引流获客和…

䲟鱼优化算法(ROA)(含MATLAB代码)

先做一个声明&#xff1a;文章是由我的个人公众号中的推送直接复制粘贴而来&#xff0c;因此对智能优化算法感兴趣的朋友&#xff0c;可关注我的个人公众号&#xff1a;启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法&#xff0c;经典的&#xff0c;或者是近几年…

接口测试--apipost接口断言详解

在做接口测试的时候&#xff0c;会对接口进行断言&#xff0c;一个完整的接口测试&#xff0c;包括&#xff1a;请求->获取响应正文->断言。 一、apipost如何进行断言 apipost的断言设置实在后执行脚本中进行编写的。apipost本身提供了11中断言&#xff1a; apt.asser…

经济学基本思维方式

经济学定义 人的欲望是无止境的&#xff0c;而资源有限&#xff0c;这是一个矛盾。 经济学是研究个人和社会如何最优利用由自然和前人提供的有限资源的学问。 经济学的范围 Microeconomics 微观经济学 研究各个行业的运作的以及企业和个人的决策行为的经济学分支。Macroeco…

数据门户基础课程

PC端门户使用示例 首先,以管理员身份登录FineBI系统,安装数据门户,安装步骤见官网 新建一个数据门户

7. Linux系统下在桌面设置添加安装软件启动图标快捷方式

1. 说明 在Linux系统下安装了对应的软件之后&#xff0c;一般启动时需要在命令行终端中进行启动&#xff0c;可以在终端里设置快速启动的命令&#xff0c;相关设置可参考博客&#xff1a;Linux系统下在终端设置快速启动已安装软件。 另一种快捷启动方式就是像在Windows桌面系统…