重要前提:DSP芯片最为重要的功能是能够高效完成复杂数字信号处理!切记不要将DSP芯片与MCU和FPGA混为一谈,它与两者之间都存在交集功能,但不能完全等同。具体关系可以参考其他博主的博客:

硬件小白名词解释DSP、MCU、FPGA、IC、CPU、MPU、ROM、RAM

众所周知,ADC模块是进行数字信号处理的重要前提。只有将模拟信号合理正确地采集为数字信号才能进行复杂的处理,最终得到达到要求的信号。TMS320F2812的ADC是一个12位的单转换器,但是有16个输入通道,意味着每一路通道必须有序地进入转换器进行转换,所以ADC模块的配置就是有序规则的制定。

TMS320F2812之ADC模块:

一、ADC模块功能框图


红色方框:ADC输入通道
橙色方框:采样/保持的采价时间窗口(可以理解为信号处理中对模拟信号每次进行采样时,开关闭合的时间)
黄色方框:12位ADC转换内核
绿色方框:结果寄存器(很好理解,每次转换过后的结果都会有序地存放于此)
蓝色方框:两个可以级联的排序器

二、基本名词解释:

1、排序器:AC模块拥有2个排序器,每个排序器拥有可以8个寄存器,每个寄存器内存放的数据可以理解为某个或两个输入通道的映射。所谓排序,就是哪个寄存器在前面,它所映射的输入通道就会先进行AD采样和转化,后面的将依次进行。
2、级联:级联的意思是将两个排序器合并为一个排序器,排序器1在前,排序器2在后,那么所表示的顺序就可以是0-15,一样,谁在前谁先进行AD采样和转换。
3、双排模式:两个排序器独立工作,但切记并非同时工作,先进行排序器1中寄存器存储数据所映射的输入通道的采样和转换,转换完成后再进行排序器2的操作。
4、单排(级联)模式:两个排序器级联为一个排序器,就没有先后可言,可以看做一个拥有16个寄存器的大排序器。
5、顺序采样模式:意味着排序器中每个寄存器内存放的数据只能映射一个输入通道,要么是A,要么是B。
6、同步采样模式:意味着排序器中每个寄存器内存放的数据映射两个输入通道,且一个是A,一个是B。
注意:那么ADC模块就会有四种工作模式:
(1)双排顺序采样
(2)双排同步采样
(3)单排顺序采样
(4)单排同步采样

三、ADC寄存器详细介绍

Copyright 2019 Deer_kernel.All rights reserved.
(1).ADCTRL1(16bits)====15====|====14====|====13====|====12====|====11====|====10====|====09====|====08====|====07====|====06====|====05====|====04====|====03====|====02====|====01====|====00====|Reserved  |RESST     |SUMOD1    |SUMOD0    |ACQ PS3   |ACQ PS2   |ACQ PS1   |ACQ PS0   |CSP       |CONT RUN  |SEQ1 OVRD |SEQ CASC  |Reserved  |Reserved  |Reserved  |Reserved  |===============================================================================================================================================================================
14:   ADC模块复位
11-8:  ADC模块采样/保持时间配置(可以理解为信号处理中对模拟信号每次进行采样时,开关闭合的时间)
7:    ADC时钟配置位:1时2分频;0时不分频.
6:    ADC连续采样配置位:1时连续采样模式;当排序计数器递减为0时,在下一次采样之前,排序计数器会重装载最大转换通道寄存器中的值,进行又一次序列采样;0时非连续采样模式;即只单独采样一次序列排序,一次序列采样结束后,会关闭ADC模块.
5.     ADC顺序覆盖功能寄存器:1时排序器中的值可以重复;0时排序器中值不可以重复;
4:    排序器模式选择配置位:1时单排序器模式(级联模式)0时双排序器模式
(2).ADCTRL2(16bits)====15====|====14====|====13====|====12====|====11====|====10====|====09====|====08====|====07====|====06====|====05====|====04====|====03====|====02====|====01====|====00====|EVBSOC SEQ|RST SEQ1  |SOC SEQ1  |Reserved  |NTENA SEQ1|NTMOD SEQ1|Reserved  |EVASOCSEQ1|EXTSOCSEQ1|RST SEQ2  |SOC SEQ2  |Reserved  |NTENA SEQ2|NTMOD SEQ2|Reserved  |EVBSOCSEQ2| ===============================================================================================================================================================================
14:   排序器1复位控制位
13:   排序器1软件开启位
6:    排序器2复位控制位
5:    排序器2软件开启位
(3).ADCTRL3(16bits)  ====15====|====14====|====13====|====12====|====11====|====10====|====09====|====08====|====07====|====06====|====05====|====04====|====03====|====02====|====01====|====00====|Reserved  |Reserved  |Reserved  |Reserved  |Reserved  |Reserved  |Reserved  |Reserved  |ADCBGRFDN1|ADCBGRFDN0|ADCPWDN   |ADCCLKPS[3:0]                              |SMODE_SEL |===============================================================================================================================================================================
7-6:  ADC模块供电管理
5:    ADC模块上电开启位
补:7-5:一般如下配置:111:ADC上电110:ADC掉电000:ADC关闭
4-1:  ADC模块时钟分频位
0:    采样模式配置位:1时同步采样模式0时顺序采样模式
(4).ADCMAXCONV(16bits)   ====15====|====14====|====13====|====12====|====11====|====10====|====09====|====08====|====07====|====06====|====05====|====04====|====03====|====02====|====01====|====00====|Reserved  |Reserved  |Reserved  |Reserved  |Reserved  |Reserved  |Reserved  |Reserved  |Reserved  |MAXCONV2_2|MAXCONV2_1|MAXCONV2_0|MAXCONV1_3|MAXCONV1_2|MAXCONV1_1|MAXCONV1_0|   ===============================================================================================================================================================================
6-4:  排序器2最大采样次序
3-0:  在双排模式下,2-0为排序器1最大采样次序;在单排(级联)模式下,3-0为整个单排的最大采样次序.
(5).ADCASEQSR(16bits)    ====15====|====14====|====13====|====12====|====11====|====10====|====09====|====08====|====07====|====06====|====05====|====04====|====03====|====02====|====01====|====00====|Reserved  |Reserved  |Reserved  |Reserved  |SEQ CNTR3 |SEQ CNTR2 |SEQ CNTR1 |SEQ CNTR0 |Reserved  |SEQ2STATE2|SEQ2STATE1|SEQ2STATE0|SEQ1STATE3|SEQ1STATE2|SEQ1STATE1|SEQ1STATE0|    ===============================================================================================================================================================================
11-8: 排序器计数器
7-4:  排序器2状态位
3-0:  排序器1状态位
(6).ADCST(16bits)    ====15====|====14====|====13====|====12====|====11====|====10====|====09====|====08====|====07====|====06====|====05====|====04====|====03====|====02====|====01====|====00====|Reserved  |Reserved  |Reserved  |Reserved  |Reserved  |Reserved  |Reserved  |Reserved  |EOS BUF2  |EOS BUF1  |INSEQ2CLR |INSEQ1CLR |SEQ2 BSY  |SEQ1 BSY  |INT SEQ2  |INT SEQ1  |             ===============================================================================================================================================================================
(7).ADCCHSELSEQ1(16bits)     ====15====|====14====|====13====|====12====|====11====|====10====|====09====|====08====|====07====|====06====|====05====|====04====|====03====|====02====|====01====|====00====|CONV03                                     |CONV02                                     |CONV01                                     |CONV00                                     |     ===============================================================================================================================================================================
在顺序采样模式下,每4位的最高位来判断A端还是B端(0为A端,1为B端),低3位为管脚号;
在同步采样模式下,每4位的最高位将会变成无效位,低3位为A和B管脚号.
(8).ADCCHSELSEQ2(16bits)     ====15====|====14====|====13====|====12====|====11====|====10====|====09====|====08====|====07====|====06====|====05====|====04====|====03====|====02====|====01====|====00====|CONV07                                     |CONV06                                     |CONV05                                     |CONV04                                     |       ===============================================================================================================================================================================
在顺序采样模式下,每4位的最高位来判断A端还是B端(0为A端,1为B端),低3位为管脚号;
在同步采样模式下,每4位的最高位将会变成无效位,低3位为A和B管脚号.
(9).ADCCHSELSEQ3(16bits)     ====15====|====14====|====13====|====12====|====11====|====10====|====09====|====08====|====07====|====06====|====05====|====04====|====03====|====02====|====01====|====00====|CONV11                                     |CONV10                                     |CONV09                                     |CONV08                                     |               ===============================================================================================================================================================================
在顺序采样模式下,每4位的最高位来判断A端还是B端(0为A端,1为B端),低3位为管脚号;
在同步采样模式下,每4位的最高位将会变成无效位,低3位为A和B管脚号.
(10).ADCCHSELSEQ4(16bits) ====15====|====14====|====13====|====12====|====11====|====10====|====09====|====08====|====07====|====06====|====05====|====04====|====03====|====02====|====01====|====00====|CONV15                                     |CONV14                                     |CONV13                                     |CONV12                                     |                ===============================================================================================================================================================================
在顺序采样模式下,每4位的最高位来判断A端还是B端(0为A端,1为B端),低3位为管脚号;
在同步采样模式下,每4位的最高位将会变成无效位,低3位为A和B管脚号.
(11).ADCRESULTn(16bits)  ===15====|====14====|====13====|====12====|====11====|====10====|====09====|====08====|====07====|====06====|====05====|====04====|====03====|====02====|====01====|====00====|D11      |D10       |D9        |D8        |D7        |D6        |D5        |D4        |D3        |D2        |D1        |D0        |Reserved  |Reserved  |Reserved  |Reserved  |                                                                    ===============================================================================================================================================================================
共有16个结果寄存器,注意读取结果时,必须右移4位.

四、ADC模块配置步骤(TI公司喜欢定义位域结构体)C语言结构体中的冒号用法

步骤一:ADC模块供电管理

   /*ADC供电管理相关寄存器配置,值固相对固定(均省去官方延时操作,实际操作中需加上)*/AdcRegs.ADCTRL1.bit.RESET = 1;AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3;AdcRegs.ADCTRL3.bit.ADCPWDN = 1;

步骤二:ADC模块时钟配置

    /*ADC模块时钟配置*/AdcRegs.ADCTRL1.bit.CPS = VALUE1;AdcRegs.ADCTRL3.bit.ADCCLKPS = VALUE2;

步骤三:.ADC模块采样/保持时间配置:

    /*ADC模块采样频率配置*/AdcRegs.ADCTRL1.bit.ACQ_PS = VALUE3;

步骤四:ADC采样模式配置:

    /*ADC采样模式配置*/AdcRegs.ADCTRL1.bit.SEQ_CASC = VALUE4;//单排还是双排AdcRegs.ADCTRL3.bit.SMODE_SEL = VALUE5;//顺序还是同步AdcRegs.ADCTRL1.bit.CONT_RUN = VALUE6; //连续还是非连续

步骤五:ADC采样通道配置:

    /*ADC采样通道配置*/AdcRegs.ADCMAXCONV.all = VALUE7;//排序器次序AdcRegs.ADCTRL1.bit.SEQ_OVRD = VALUE8;//排序器可覆盖还是不可覆盖//排序器1配置(根据实际情况进行配置)//例如AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0;     //先A0,后B0//排序器2配置//例如AdcRegs.ADCCHSELSEQ3.bit.CONV08 = 0x1;      //先A1,后B1

步骤六:ADC模块开启配置:

AdcRegs.ADCTRL2.all = VALUE9;//用相应的方法开启排序器

以上均是关于ADC模块的基础配置,必须根据实际工程来考虑和判断相应的配置问题,是查询法读值还是中断读值,是软件开启还是中断开启,都需要考虑大局。

五、总结

DSP芯片确实可以给我们带来诸多数字信号处理的运算,但往往不会单片使用;在高端嵌入式系统中,为了充分高效地利用资源,往往不会去使用DSP芯片中相对过剩的控制单元;至于DSP芯片的核心部分,也可以用FPGA 来实现,所以高端嵌入式SOC中一般包含了特定架构的DSP。
但是不可否认的是,高性能DSP单片在某些领域完全可以取代复杂多核心板卡,只需要一个DSP芯片既可以完成复杂的数字信号处理也可以进行简单的实时控制。

DSP芯片TMS320F2812之ADC模块的说明及使用步骤相关推荐

  1. 【DSP】TMS320F28335的ADC模块

    一.功能说明 12位内建采样保持的模数转换器 模拟输入电平:0~3V 16个转换通道 最快转换时钟频率12.5MHz(奈奎斯特定则,25MHz最高能采样12.5MHz的信号) 多触发源:软件.ePWM ...

  2. DSP芯片F2803x系列之PWM模块及高精度PWM使用

    DSP芯片F2803x之ePWM模块 文章目录 1 ePWM模块概述 2 ePWM模块构成 3 ePWM各子模块 3.1 TB模块 3.2 CC模块 3.3 AQ模块 3.4 DB模块 3.5 PC模 ...

  3. 如何利用单片机的ADC模块(或者独立的ADC芯片)得到接入ADC管脚上的实际电压值?

    这个问题,是第一次接触ADC时候,大家都会遇到的问题. 会读到什么值 单片机会读到什么值?需要看一个特性,就是几位的ADC,在手册上就会给出,例如,STM32的ADC是12位的.另外,还有8位,10位 ...

  4. DSP之TMS320F28335学习总结与笔记(二)————ADC模块

    F28335 ADC模块 ADC转换模块 A/D转换器(ADC)将模拟量转换为数字量通常要经过四个步骤:采样.保持.量化和编码. 采样:将一个时间上连续变化的模拟量转化为时间上离散变化的模拟量. 保持 ...

  5. DSP CCS12.00 芯片:TMS320F28335 ADC 的运用

    1.AD 转换的四个步骤 实现ad转换需要经过取样.保持.量化.编码四个步骤. 2.AD 的含义 AD 转换 就是把模拟信号转换成数字信号.主要包括积分型.逐次逼近型.并行比较型/串并行型.Σ-Δ调制 ...

  6. 独立DSP芯片兴衰史:FPGA吹响了丧钟

    DSP可以追溯到数字时代的开端,甚至可能更早一些.如果说1946年第一台数字计算机ENIAC的建造标志着1946年数字时代的开始,那么DSP则在两年后出现. IEEE于1998年出版了一本名为< ...

  7. stm32 adc 连续和扫描_技术分享 | STM32多个ADC模块同时采样转换的应用示例

    在STM32家族里,多数系列芯片内含2到3个ADC模块,有的甚至更多,比方G4系列可以有5个ADC模块.其中,通道数因不同的系列或型号多少不等,几个到几十个的都有.有时,我们可能需要多个ADC模块同时 ...

  8. DSP芯片CSL的使用

    CCS V5中使用CSL库的方法 基于TMS320C6455讲解 前言:        芯片支持库(CSL)提供了一个用于配置和控制片上外设的C语言接口.它有各个分立的模块组成,并被编译成为库文件.每 ...

  9. FIR数字滤波器在DSP芯片C2000上的实现

    FIR数字滤波器在DSP芯片C2000上的实现 文章目录 FIR数字滤波器在DSP芯片C2000上的实现 一.DSP是什么? 二.原始信号 三.配置Filter Designer 四.核心算法 五.结 ...

  10. DSP芯片在实时图像处理系统中的应用

    <script language=javascript src="http://www.china-vision.net/technology/GetHits.asp?ArticleI ...

最新文章

  1. Java中JDK,JRE和JVM之间的关系
  2. Linux基本操作【作业】
  3. matlab simulink_简单五步实现 MATLAB/Simulink 锂电池建模
  4. 用JavaScript语言制作简易版轮播图
  5. arm-linux-gcc: No such file or directory
  6. myeclipse自带tomcat
  7. TCP压测工具 终极 全新版
  8. Inav Configurator给F4刷固件进入不了DFU
  9. 打印系统开发(5)——书脊
  10. 常用分析模型---5W2H分析模型
  11. 下列python语句的输出结果是_下列Python语句的输出结果是 __________ 。 print(数量%4d,单价%3.3f %(100,285.6)) (3.0分)_学小易找答案...
  12. 2014年终总结回顾与2015年工作总结
  13. RStudio打开后空白的解决
  14. 《智能制造时代的研发智慧:知识工程2.0》一第3章 隐性知识的显性化
  15. 一篇文章读懂《麦肯锡极简工作法》
  16. 一个简单的例子解释什么是量子计算机
  17. 五、vis 右键节点展开菜单
  18. 最新酒店订房小程序源码系统+前端+后端+完整搭建教程
  19. 详解 HTTPS、TLS、SSL、HTTP区别和关系
  20. 笔记本电脑电池显示4%可用(已接通电源),经过清灰又莫名奇妙的可以续航啦,很奇怪!

热门文章

  1. 域名由谁管理?申请域名注册服务机构要具备什么条件?
  2. 亲自面试汇丰银行面试题目总结
  3. 2020-2021读书记录
  4. 数字逻辑与数字系统总结
  5. c语言迷宫闯关游戏大全,C语言实现迷宫小游戏
  6. Word学习笔记:P12-合并打印信封与标签设定
  7. 使用shopnc发送qq邮件遇到的坑
  8. 3060ti适配的cuda和cudnn
  9. 怎样快速将pdf在线转换成word免费版
  10. 数模转换器的构成和特点