历史上的今天
返回首页

历史上的今天

今天是:2025年07月30日(星期三)

正在发生

2021年07月30日 | MC9S12XEP100的ATD模块(ADC12B16CV1)

2021-07-30 来源:eefocus

网上的各种示例基本都是用同步/轮询的方式来使用ATD模块的,自己封装ATD模块时想利用中断改成异步的方式,结果出现了莫名其妙的问题,我明明没有开启比较中断的,结果还是跳到了比较中断里头去了。一气之下,把整个文档翻译了一遍,顺带给大家分享了。


翻译了一遍之后果然发现了之前程序错在哪了。给大家强调一下
1. 除了FIFO模式,每次转换序列开始后的第一结果一定是放在ATDDR0中的!!!
2. 即使是FIFO模式下,每次重新开始转换时第一个结果也一定是在ATDDR0中的。不管你第一个转换的通道是不是AN0!!。我之前写模块写着写着就以为结果寄存器与模拟通道是一一对应的了,实际上不是这样的!


3. 一个序列转换完成后是只会置位SCF一次(中断也只会通知一次),然后应该在这次中断中(或轮询检测到SCF置位后)读取所有的结果寄存器,把全部的CCFx位都清零,否则下次转换可能就会变成比较中断了。


个人认为要理解这个ATD模块的关键就是要理解几个概念:转换序列、转换序列的首个通道以及转换序列的长度;怎么确定转换序列采样模拟输入通道的顺序,或换句话说,指定的环回通道对序列实际采样通道顺序的影响;结果寄存器与采样序列的对应关系;几种模式对采样的影响;使能比较时是无法得到转换结果的;不同外部触发方式对采样的影响…..


翻译的资料是公开的,我想应该不会有什么版权问题,如涉及版权问题,请联系我删除文章。


另外,本人对ATD模块的封装见此http://blog.csdn.net/lin_strong/article/details/78323904,需要的拿走。


介绍

ADC12B16C是一个16通道、12位、多路复用输入逐次逼近模数转换器。ATD的精度要参照设备的电器特征。

特性

  • 8位、10位和12位分辨率

  • 在停止模式下使用内部时钟进行转换

  • 转换序列结束后自动转为低功耗状态

  • 与可编程的数值进行比较是大于或是小于等于,并可产生中断;

  • 可编程的采样时间

  • 左/右对齐的结果

  • 外部触发控制

  • 采样序列完成触发中断

  • 16路模拟输入通道的多路选择器

  • VRH、VRL和(VRH+VRL)/2的特殊转换

  • 转换序列长度为1至16

  • 连续转换模式

  • 多通道扫描

  • 每个AD通道与4个额外的触发输入通道可用于配置外部触发功能。这四个额外的触发输入通道可以是芯片外部的或内部的。请参考设备规范以了解可用性和连通性。

  • 可配置的通道环回位置(当在一个序列中转换多个通道时)。

运行模式

转换模式

可以通过软件编程来选择在单个通道或者多个通道上进行单次或者连续的转换。

MCU运行模式

  • 停止模式

    • ICLKSTP=0(ATDCTL2寄存器中)
      进入停止模式并终止所有进行中的转换序列,如果有序列被终止,那么在退出停止模式后会重新开始。这与往ATDCTL5中重新写入以启动一个转换序列的效果是一样的。所以当以这种方式重新启动序列时,所有的标志位都会被清除。

    • ICLKSTP=1(ATDCTL2寄存器中)
      A/D转换序列会在停止模式下无缝地继续,这时会把内部生成的时钟ICLK作为ATD时钟。对于经历了运行模式到停止模式(或反过来)的转换,其结果不会写入结果寄存器,也不会设置CCF标志并且不会做任何比较。当在停止模式下进行转换时(ICLKSTP=1),需要一个ATD停止恢复时间tATDSTPRCV以离开停止模式切换回基于ATDCLK的总线时钟。不要在这段时间访问ATD寄存器。

  • 等待模式
    ADC12B16C在运行模式和等待模式下的行为一致。为了减少能耗,在进入等待模式前需要终止连续转换。

  • 冻结模式
    在冻结模式时,根据FRZ1和FRZ0位,ADC12B16C要不然会继续直到结束,要不然直接停止。这对于调试和模拟很有用。

结构图

ADC12B16C结构图

图 1.ADC12B16C结构图

信号描述

这个部分列出了所有到ADC12B16C模块的输入。

详细的信号描述

ANx(x = 15、14、13、12、11、10、9、8、7、6、5、4、3、2、1、0)

这个引脚是用作模拟输入通道x的。它也可以被配置为数字端口,或者ATD转换的外部触发器。

ETRIG3、ETRIG2、ETRIG1、ETRIG0

这些输入可以被配置为ATD转换的外部触发器。参考设备规范以了解这些输入的可用性和连通性。

VRH、VRL

VRH是ATD转换的参考高电压,VRL是参考低电压。

VDDA、VSSA

这些引脚是ADC12B16C的模拟电路的供能引脚。

内存映射和寄存器定义

这个部分提供了ADC12B16C中所有可用寄存器的详细描述。

模块内存映射

图 2提供了所有ADC12B16C寄存器的一个总览。

  • 注意

  • 寄存器地址(Register Address)=基地址(Base Address)+地址偏移量(Address Offset)。基地址是定义在MCU等级的,地址偏移量是定义在模块等级的。

ADC12B16C寄存器总结

图 2. ADC12B16C 寄存器总结

寄存器描述

这个部分按照地址顺序描述了所有的ADC12B16C寄存器以及他们的每个位。

ATD控制寄存器0(ATDCTL0)

写这个寄存器会终止当前的转换序列。

ATD控制寄存器0
图 3.ATD控制寄存器0(ATDCTL0)

读:任何时候
写:任何时候,在特殊模式下总是往保留位7写0。

表 2.ATDCTL0字段描述

字段描述
3-0 WRAP[3-0]通道环回选择位 — 当进行多通道转换时,这几位决定是从哪个通道循环回AN0。表3总结了其编码规则。

.

表 3.多通道环回规则

WRAP3WRAP2WRAP1WRAP0多通道转换(MULT=1)时,此通道在转换成功后会返回AN0的通道
0000保留1
0001AN1
0010AN2
0011AN3
0100AN4
0101AN5
0110AN6
0111AN7
1000AN8
1001AN9
1010AN10
1011AN11
1100AN12
1101AN13
1110AN14
1111AN15

1.如果只有AN0会被转换,使MULT=0

ATD控制寄存器1(ATDCTL1)

写这个寄存器会终止当前的转换序列。

ATD控制寄存器1
图 4.ATD控制寄存器1(ATDCTL1)

读:任何时候
写:任何时候

表 4.ATDCTL1字段描述

字段描述
7 ETRIGSEL外部触发源选择 — 这一位选择外部触发源为AD通道或者ETRIG3-0输入之一。见设备规范以了解ETRIG3-0输入的可用性和连通性。如果某个ETRIG3-0输入选项不可用,写1到ETRISEL只会设置位但是没有任何作用,这意味着(由ETRIGCH3-0选择的)AD通道之一被配置为了外部触发的源。编码规则在表6中。
6–5 SRES[1:0]A/D分辨率选择 — 这些位选择了A/D转换结果的分辨率。编码规则见表5。
4 SMP_DIS采样之前放电
0 采样之前不放电。
1 在采样通道之前内部采样电容放电。这会在采样时间上增加2ATD时钟周期。这有助于检测电路的断路,而不会测量上一次采样的通道
3–0 ETRIGCH[3:0]外部触发通道选择 — 这4位选择AD通道或者ETRIG3-0输入之一作为外部触发源。编码规则见表6。

.

表 5. A/D 分辨率编码规则

SRES1SRES0A/D分辨率
008位
0110位
1012位
11保留

.

表 6. 外部触发通道选择

ETRIGSELETRIGCH3ETRIGCH2ETRIGCH1ETRIGCH0外部触发通道
00000AN0
00001AN1
00010AN2
00011AN3
00100AN4
00101AN5
00110AN6
00111AN7
01000AN8
01001AN9
01010AN10
01011AN11
01100AN12
01101AN13
01110AN14
01111AN15
10000ETRIG0(1)
10001ETRIG11
10010ETRIG21
10011ETRIG31
101XX保留
11XXX保留

1.只有当ETRIG3-0输入选项可用(见设备规范),否则ETRISEL被忽略,这就是说外部触发源仍然是由ETRIGCH3-0选择的AD通道之一

ATD控制寄存器2(ATDCTL2)

写这个寄存器会终止当前的转换序列。

ATD控制寄存器2(ATDCTL2)
图 5.ATD控制寄存器2(ATDCTL2)

读:任何时候
写:任何时候

表 7.ATDCTL2字段描述

字段描述
6 AFFCATD标志位快速清零
0 通过向各自的CCF[n]标志位写1来清除ATD标志位。
1 变换所有ATD转换完成标志位为一个快速清零序列。
当禁用自动比较时(CMPE[n]=0),对结果寄存器的读访问会自动清零对应的CCF[n]标志位。
当使能自动比较时(CMPE[n]=1),对结果寄存器的写访问会自动清零对应的CCF[n]标志位。
5 ICLKSTP停止模式下的内部时钟 — 这一位使能停止模式下的A/D转换。当进入停止模式时如果ICLKSTP=1,ATD转换时钟会自动切换到内部生成时钟ICLK。当前转换序列会无缝地继续。转换速度会从预分频总线频率变为ICLK频率(见设备描述中的ATD电路特性)。ATDCTL4中的预分频位PRS4-0对ICLK频率没有作用。对于停止模式下进行的转换,可以使用自动比较中断或者序列完成中断来通知软件handler A/D值的变化。当在停止模式下进行转换时,外部触发不起作用。对于那些跨越了运行模式到停止模式的转变过程(或者反之)的转换,结果不会写入结果寄存器,不会设置CCF标志位并且不会进行比较。当在停止模式下进行转换时(ICLKSTP=1),需要一个ATD停止恢复时间tATDSTPRCV以离开停止模式切换回基于ATDCLK的总线时钟。不要在这段时间访问ATD寄存器。
0 如果在进入停止模式时A/D转换序列正在进行,实际的转换序列会被终止,并在退出停止模式时自动重启。
1 A/D转换会在停止模式中使用内部生成时钟(ICLK)继续转换。
4 ETRIGLE外部触发控制方式 — 这一位控制外部触发的方式。详见表8。
3 ETRIGP外部触发极性 — 这一位控制外部触发信号的极性。详见表8。
2 ETRIGE外部触发模式使能 — 这一位使能AD通道或者ETRIG3-0输入之一的外部触发,如表6所述。如果外部触发源是AD通道之一,这一个通道的数字输入缓存就会被使能。外部触发使得AD转换序列能与外部事件同步开始。外部触发在停止模式下不能工作。
0 禁用外部触发。
1 使能外部触发。
1 ASCIEATD序列完成中断使能
0 ATD序列完成中断被禁止。
1 ATD序列完成中断会在设置SCF=1时触发。
0 ACMPIEATD比较中断使能 — 如果转换n的自动比较被使能(ATDCMPE寄存器中的CMPE[n]=1),这一位使能自动比较中断。如果CCF[n]标志位被设置(表示成功比较了转换n),比较中断就会被触发。
0 ATD比较中断被禁用。
1 对于转换序列中使能了自动比较的转换(CMPE[n]=1),每当各个CCF标志位被置位时就会触发ATD比较中断。

.

表 8.外部触发配置

ETRIGLEETRIGP外部触发类型
00下降沿
01上升沿
10低电平
11高电平

ATD控制寄存器3(ATDCTL3)

写这个寄存器会终止当前的转换序列。

ATD控制寄存器3(ATDCTL3)
图 6.ATD控制寄存器3(ATDCTL3)

读:任何时候
写:任何时候

表 7.ATDCTL3 字段描述

字段描述
7 DJM结果寄存器数据对齐方式 — 结果数据的格式总是无符号的。这一位控制转换结果数据在结果寄存器中的对齐方式。
0 左对齐。
1 右对齐。
表10给出了输入信号值在0到5.12V之间时的ATD结果的示例。
6–3 S8C、S4C、S2C、S1C转换序列长度 — 这些位控制每个序列的转换的数量。表11展示了所有的组合。在重置时,S4C会被设为1(序列长度为4)。这是为了兼容HC12家族。
2 FIFO结果寄存器FIFO模式 — 如果这一位是0(非FIFO模式),A/D转换结果会按照转换序列的顺序映射到结果寄存器中;首个转换结果出现在首个结果寄存器中(ATDDR0),第二个在第二个结果寄存器中(ATDDR1),以此类推。
如果这一位是1(FIFO模式),转换计数器不会在转换序列开始或结束的时候重置;相继的转换结果会被放到连续的结果寄存器中。在一个连续地扫描转换序列中,结果寄存器计数器会在到达结果计数器文件的结尾时循环回去。转换计数器的值(ATDSTAT0中的CC3-0)可以用于确定当前的转换结果是在哪个结果计数器中。
即使FIFO=1,在终止转换或启动一个新的转换时都会清零转换计数器,所以,一个新转换序列的首个结果总会放在首个结果寄存器(ATDDDR0)中。预期使用FIFO模式的是连续转换(SCAN=1)或者被触发的转换(ETRIG=1)。
可以使用转换完成标志来追踪是哪一个结果寄存器存储着有效的数据。标志位快速清除模式在一个要追踪有效数据的应用中不一定有用。
如果这个位是1,结果寄存器的自动比较总是被禁用的,就像ADC12B16C的ACMPIE和所有的CPME[n]都是0。
0:转换结果会根据选择的序列长度被放在对应的结果寄存器中。
1:转换结果会放在连续的结果寄存器中(在结尾会循环回头)。
1–0 FRZ[1:0]背景调试冻结使能 — 当在调试一个应用时,许多情况下在碰到断点(冻结模式)时让ATD暂停是十分有用的。这2位决定了ATD会怎么响应断点,如表12所示。存储节点和比较器参照电容上的泄露可能会降低被冻结的转换的精度,取决于冻结的时间。

.

表 10. 理想的ATD结果示例

输入信号 VRL=0V VRH=5.12V8位(分辨率=20mV)10位(分辨率=5mV)12位(转换曲线有1.25mV的偏移)(分辨率=1.25mV)
5.120V25510234095
……
0.0221417
0.0201416
0.0181414
0.0161312
0.0141311
0.012129
0.010128
0.008026
0.006014
0.004013
0.003002
0.002001
0.000000

.

表 11. 转换序列长度编码规则

S8CS4CS2CS1C每个序列的转换个数
000016
00011
00102
00113
01004
01015
01106
01117
10008
10019
101010
101111
110012
110113
111014
111115

.

表 12.ATD在冻结模式(断点)下的行为

FRZ1FRZ0冻结模式下的行为
00继续转换
01保留
10完成当前转换,然后冻结
11立即冻结

ATD控制寄存器4(ATDCTL4)

写这个寄存器会终止当前的转换序列。

ATD控制寄存器4(ATDCTL4)
图 7.ATD控制寄存器4(ATDCTL4)

读:任何时候
写:任何时候

表 13.ATDCTL4 字段描述

字段描述
7–5 SMP[2:0]采样时间选择 — 这三位用来选择采样时间的长度,单位为ATD转换时钟周期。注意,ATD转换时钟周期本身是预分频值(PRS4-0)的函数。表14列出了可用的采样时间长度。
4–0 PRS[4:0]ATD时钟预分频 — 这5位是二进制预分频值PRS。ATD转换时钟频率按如下公式计算: ATD时钟计算公式
参考设备规范获得允许的fATDCLK频率范围。

.

表 14.采样时间选择

SMP2SMP1SMP0采样时间(ATD时钟周期数)
0004
0016
0108
01110
10012
10116
11020
11124

ATD控制寄存器5(ATDCTL5)

写这个寄存器会终止当前的转换序列并启动一个新的转换序列。如果使能了外部触发(ETRIGE=1),需要先写入ATDCTL5以使得转换序列能够被触发,转换序列会在每次触发事件发生时开始转换。转换的开始意味着采样阶段的开始。

ATD控制寄存器5(ATDCTL5)
图 8.ATD控制寄存器5(ATDCTL5)

读:任何时候
写:任何时候

表 15.ATDCTL5 字段描述

字段描述
6 SC特殊通道转换位 — 如果这个位被置位,可以使用ATDCTL5的CD、CC、CB和CA来选择特殊通道转换。表16列出了编码规则。
0 特殊通道转换禁用
1 特殊通道转换使能
5 SCAN连续转换序列模式 — 这个位用于选择转换序列是执行一次还是连续地进行。如果使能了外部触发(ETRIGE=1),设置这个位就没有任何作用了,换句话说,外部触发总是单次转换序列。
0 单次转换序列
1 连续的转换序列(扫描模式)
4 MULT多通道采样模式 — 当MULT是0,ATD序列控制器每个采样序列只采样指定的那个模拟输入通道。这模拟通道由通道选择码(ATDCTL5中的控制位CD/CC/CB/CA)指定。当MULT是1,ATD序列控制器会横跨通道进行采样。采样的通道数是由序列长度值(S8C、S4C、S2C、S1C)确定。采样的首个模拟通道由通道选择码(ATDCTL5中的控制位CD/CC/CB/CA)指定;随后采样的通道通过递增通道选择码或者到AN0的环回来确定。
0 只采样一个通道
1 横跨多个通道采样
3–0 CD、CC、CB、CA模拟输入通道选择码 — 这4位选择采样哪个(些)输入通道。表16列出了选择输入通道的编码规则。
对于在单通道转换(MULT=0),这个选择码指定要采样的通道。
对于多通道转换(MULT=1),这个选择码指定要采样的转换序列中的首个通道。随后的通道通过递增通道选择码或者到AN0的环回(在转换了由ATDCTL0中环回通道选择位WRAP3-0指定的通道后)来确定。对于从比WRAP3-0指定的通道号更高的通道号开始的情况,首个环回是从AN15到AN0

.

表 16.模拟输入通道选择编码

SCCDCCCBCA模拟输入通道
00000AN0
00001AN1
00010AN2
00011AN3
00100AN4
00101AN5
00110AN6
00111AN7
01000AN8
01001AN9
01010AN10
01011AN11
01100AN12
01101AN13
01110AN14
01111AN15
10000保留
10001保留
1001X保留
10100VRH
10101VRL
10110(VRH+VRL)/2
10111保留
11XXX保留

ATD状态寄存器0(ATDSTAT0)

这个寄存器包含序列完成标志位、外部触发和FIFO模式的覆盖标志位以及转换计数器。

ATD状态寄存器0(ATDSTAT0)
图 9.ATD状态寄存器0(ATDSTAT0)

读:任何时候
写:任何时候(对(CC3、CC2、CC1、CC0)没有作用)

表 17.ATDSTAT0 字段描述

字段描述
7 SCF序列完成标志 — 这个标志在一个转换序列完成时被置位。如果转换序列连续进行(SCAN=1),这个标志位会在每次转换序列完成时被置位。这个标志位会在以下情况之一时被清零:
A)向SCF写”1”
B)写ATDCTL5(这样就开始了个新的转换序列)
C)如果AFFC=1并且读一个结果寄存器
0 转换序列没有完成
1 转换序列已完成
5 ETORF外部触发覆盖标志 — 当在边沿触发模式(ETRIGLE=0)时,如果在转换序列进行中探测到了额外的激活边沿,就会设置覆盖标志。当以下情况之一发生时这一位被清零:
A)向ETORF写”1”
B)写ATDCTL0、1、2、3、4,ATDCMPE或ATDCMPHT(转换序列被终止)
C)写ATDCTL5(开始一个新的转换序列)
0 没有发生外部触发覆盖
1 发生了外部触发覆盖
4 FIFOR结果寄存器覆盖标志 — 这一位指示了某个结果寄存器在它对应的转换完成标志位(CCF)被清零之前又被写入了。这个标志位在使用FIFO模式时最有用,因为这标志位暗示结果寄存器与输入通道已经不同步了。然而,对于非FIFO模式它也是有用的,它表明一个结果寄存器在它被读取之前就被覆盖了(比如,旧的数据丢失了)。当以下情况之一发生时这一位被清零:
A)向FIFOR写”1”
B)写ATDCTL0、1、2、3、4,ATDCMPE或ATDCMPHT(转换序列被终止)
C)写ATDCTL5(开始一个新的转换序列)
0 没有发生覆盖
1 发生了覆盖(结果寄存器在对应的CCFx标志位还是1的时候被写入了)
3–0 CD、CC、CB、CA转换计数器 — 这4个只读位是转换计数器的二进制值。这转换计数器指向存放当前转换结果的结果寄存器。比如CC3=0、CC2=1、CC1=1、CC0=0说明当前转换的结果将被放到ATD结果寄存器6中。如果是非FIFO模式(FIFO=0),转换计数器会在转换序列开始和结束时被初始化为0.如果是FIFO模式(FIFO=1),计数器就不会被初始化。转换计数器会在到达最大值时循环回去。
终止一个转换或者开始一个新的转换都会清零转换计数器,即使FIFO=1。

ATD比较使能寄存器(ATDCMPE)

写这个寄存器会终止当前的转换序列。

ATD比较使能寄存器(ATDCMPE)
图 10.ATD比较使能寄存器(ATDCMPE)

读:任何时候
写:任何时候

表 18.ATDCMPE 字段描述

字段描述
15–0 CMPE[15:0]一个序列的转换号n(n=0~15)的比较使能 — 这些位独立地使能一个转换序列的转换结果的自动比较。每个比较的意义是由ATDCMPHT寄存器中的CMPHT[n]位决定的。
对于每个CMPE[n]=1的转换号,做如下事情:
1)向ATDDRn结果寄存器写入要比较的值
2)向ATDCPMHT寄存器的CMPHT[n]位写入比较操作符
ATDSTAT2寄存器中的CCF[n]将独立地标识任何一次成功的比较。
0 不使用自动比较
1 使能了一个序列的第n个转换的自动比较

ATD状态寄存器2(ATDSTAT2)

这个只读寄存器包含了转换完成标志位CCF[15:0]。

ATD状态寄存器2(ATDSTAT2)
图 11.ATD状态寄存器2(ATDSTAT2)

读:任何时候
写:任何时候,没有任何用

表 19.ATDSTAT2 字段描述

字段描述
15–0 CCF[15:0]转换完成标志n(n=0~15) — 在一个序列的每次转换的结尾,都会设置一个转换完成标志。这个标志位与在序列中的转换位置(以及寄存器号)相关。因此,在非FIFO模式中,当序列中的第9个转换完成时,会置位CCF[8],并且可以到结果寄存器ATDDR8中获得结果;CCF[9]则会在序列中第10个转换完成时被置位,然后到结果寄存器ATDDR9中获得结果;以此类推。
如果转换结果的自动比较被使能(ATDCMPE中的CMPE[n]=1),转换完成标志位只有在与ATDDRn的比较为真时才会被置位,这时如果ACMPIE=1,则会触发比较中断。在这种情况下,由于ATDDRn结果寄存器存储着比较值,转换结果不会被存储在那里,而是直接丢失了。
当下面之一发生时,CCF[n]标志位会被清零:
A)写ATDCTL5(开始一个新的转换序列)
B)当AFFC=0,向CCF[n]写”1”
C)当AFFC=1且CMPE[n]=0时,读结果寄存器ATDDRn
D)当AFFC=1且CMPE[n]=1时,写结果寄存器ATDDRn
要是同时置位和清零CCF[n]:方法A)导致的清零会覆盖置位。方法B)或C)或D)导致的清零会被置位给覆盖
0 第n个转换还没有完成或者没有成功地比较
1 如果(CMPE[n]=0):第n个转换完成了。结果已经在ATDDRn中。如果(CMPE[n]=1):第n个转换完成后使用在CMPGT[n]中的比较符与ATDDRn中的被比较值进行比较的结果为真。(ATDDRn中不是转换结果)

ATD输入使能寄存器(ATDDIEN)

ATD输入使能寄存器(ATDDIEN)
图 12.ATD输入使能寄存器(ATDDIEN)

读:任何时候
写:任何时候

表 20.ATDDIEN 字段描述

字段描述
15–0 IEN[15:0]通道x(x=0~15)上的ATD数字输入使能 — 这些位控制从模拟输入引脚(ANx)到数字寄存器的数字输入缓存。
0 禁用对ANx引脚的数字输入缓存
1 使能在ANx引脚上的数字输入缓存。
注意: 设置这1位会连续地使能对应的数字输入缓存。如果这一位被置位,同时还使用它作为模拟端口,会有潜在的增加的能耗,因为数字输入缓存可能在线性区。

ATD大于比较寄存器(ATDCMPHT)

写这个寄存器会终止当前的转换序列。

ATD大于比较寄存器(ATDCMPHT)
图 13.ATD大于比较寄存器(ATDCMPHT)

读:任何时候
写:任何时候

表 21.ATDCMPHT 字段描述

字段描述
15–0 CMPHT[15:0]转换号n(n=0~15)的大于比较操作使能 — 这个位选择对转换结果的比较操作。
0 如果第n个转换的结果 小于或等于 ATDDRn中的比较值,就会置位ATDSTAT2中的标志位
1 如果第n个转换的结果 大于 ATDDRn中的比较值,就会置位ATDSTAT2中的标志位。

ATD转换结果寄存器(ATDDRn)

A/D转换结果会被存储在16位结果寄存器中。结果总是无符号格式数据。通过ATDCTL3中的DJM控制位来选择左/右对齐。

推荐阅读

史海拾趣

HP(Keysight)公司的发展小趣事

HP(Keysight)公司发展故事

故事一:初创时期的艰辛与突破

HP(惠普)的起源可以追溯到1939年,由威廉·惠普(William Hewlett)和戴维·欧文(David Packard)在美国加州的一个小车库内创立。最初,他们专注于生产音频振荡器,这是一种用于测试音频设备的设备。尽管条件简陋,但凭借过人的技术和敏锐的市场洞察力,他们的产品很快获得了市场的认可。这一成功为公司奠定了坚实的基础,也为后续进入电子仪器和计算机领域铺平了道路。

故事二:半导体技术的先驱

1940年,HP公司开发出了第一台采用半导体技术的电子计算机,这在当时是一项革命性的成就。这台计算机不仅能够执行复杂的计算任务,还标志着HP在半导体技术领域的领先地位。这一突破不仅为公司赢得了业界的尊重,也为后续的微型计算机和个人计算机的发展奠定了基础。

故事三:微型计算机市场的开拓者

1960年,HP公司再次引领行业潮流,开发出了世界上第一台商用微型计算机。这台计算机采用了更小的集成电路,比之前的计算机更加小巧、便宜且易于使用。这一创新不仅降低了计算机的门槛,使得更多人能够接触到计算机,也推动了计算机技术的普及和应用。HP在微型计算机市场的成功,进一步巩固了其在电子行业的领导地位。

故事四:个人电脑市场的崛起

进入70年代,HP公司开始涉足个人电脑市场。1970年,HP发布了第一台商业个人计算机(PC),这一举措标志着公司正式进入了一个全新的业务领域。随着个人电脑市场的迅速发展,HP不断推出新产品,满足消费者的多样化需求。从早期的台式机到后来的笔记本电脑,HP始终保持着技术领先优势,为用户带来更加便捷、高效的计算体验。

故事五:并购与多元化发展的战略

在发展过程中,HP公司也通过并购等方式不断拓展业务领域。2002年,HP以250亿美元收购了康柏(Compaq),这是当时科技行业最大的一笔收购。这次并购不仅增强了HP在个人电脑市场的竞争力,也推动了公司在服务器、存储设备等多个领域的发展。此外,HP还涉足软件及服务等多个领域,成为一个多元化的科技巨头。通过不断并购和业务拓展,HP在全球科技行业的地位日益稳固。

请注意,虽然问题中提到了Keysight,但Keysight实际上是惠普在2014年从惠普科技公司(HP Inc.)分拆出来的一家独立公司,专注于电子测量和测试解决方案。因此,上述故事主要围绕HP(惠普)公司的发展历史进行描述,并未直接涉及Keysight公司。

BusBoard Prototype Systems公司的发展小趣事

随着市场的不断变化,BusBoard Prototype Systems意识到,要想在激烈的竞争中保持领先地位,必须不断进行技术创新。于是,公司投入大量资源研发新的BusBoard技术,成功提高了原型制作的精度和效率。这一技术突破不仅赢得了客户的广泛赞誉,也为公司带来了更多的业务机会。

EPIC公司的发展小趣事

随着公司的发展,Epic Games开始通过收购和投资来扩展其业务范围。2007年8月20日,Epic Games收购了一家位于波兰的游戏开发商People Can Fly,并成为其第一大股东。这次收购不仅为Epic Games带来了更多的开发资源,也使其在游戏开发领域的实力得到了进一步提升。此外,Epic Games还积极投资其他有潜力的游戏开发商和团队,以推动整个游戏行业的创新和发展。

DIOO公司的发展小趣事

面对数字化时代的挑战和机遇,DIOO公司决定加快数字化转型步伐。通过引入云计算、大数据、人工智能等先进技术,DIOO公司实现了产品设计、生产、销售等各个环节的数字化管理。同时,DIOO公司还积极探索新的商业模式和市场机会,与互联网企业、电信运营商等合作伙伴共同打造智能生态圈。未来,DIOO公司将继续秉承创新、卓越、服务的理念,致力于成为全球领先的电子产品制造商和服务提供商。

CINCH公司的发展小趣事

随着业务的不断发展,CINCH公司开始寻求市场拓展和战略合作的机会。公司积极与国内外知名企业建立合作关系,共同开发新产品、拓展新市场。同时,CINCH公司还加强了对新兴市场的关注,通过参加国际展会、举办技术研讨会等方式,提升品牌知名度和影响力。这些举措有效地推动了公司的市场拓展和业务发展。

ERGOBAHCO公司的发展小趣事

ERGOBAHCO公司成立于20世纪90年代初,当时正值电子行业快速发展的黄金时期。公司创始人李明(化名)看准了市场对于高质量电子配件的需求,决定从电子连接器这一细分领域入手。然而,初创时期公司面临着资金短缺、技术落后等诸多挑战。李明凭借对市场敏锐的洞察力,成功争取到了几笔关键的投资,并带领团队攻克了一系列技术难关。通过不懈努力,ERGOBAHCO公司逐渐在电子连接器领域站稳了脚跟。

问答坊 | AI 解惑

MAXQ3120混合信号微控制器的应用案例

监视系统的设计者和厂商一直希望微控制器能够为日常监视应用提供不断增加的通用功能,包括满足用电计量、汽车监控、数据搜集和传感器调节等方面的要求。maxq3120 就是为了满足这些要求而开发的低功耗、高速微控制器。它的主要技术规范如下。    ...…

查看全部问答>

WinCE系统下BootLoader的开发.pdf

WinCE系统下BootLoader的开发.pdf…

查看全部问答>

很奇怪的问题, Wince下面串口发送速度不能太慢? 高手救命!

最近遇到一个很奇怪的问题 我用一个51板向arm板传数据 波特率9600 如果51板发送的数据很慢的,比如100ms一组数据 就会造成程序死掉 系统也没反应 但如果发送速度很快,就又没问题了 因为51板要监测一个开关,所以波特率不能太低,因此我不能 ...…

查看全部问答>

!!DLL添加到IMAGE中不成功

平台: windows mobile 6.5 platform builder for wimdows mobile 5.0 pxa310 board 问题:现在想把三个文件打包到FLASH.bin中,但是一直不成功,我是在release目录下用ultra edit32编辑platform.bib在FILES下添加如下内容: sdio-g-cdc-ndis- ...…

查看全部问答>

我要在WinCE下用VS.net开发PocketPC上的游戏,请问需要什么?

我要用WinCE和VS.net开发PocketPC上的游戏,这叫作嵌入式开发吧。请问需要什么? 我对这个完全陌生,也不知道具体是怎样的一种东西和流程,只是听上面的人说了一下。 需要用什么语言? 我已经会C#。 然后就是推荐一些教程吧。谢谢。 …

查看全部问答>

DM9000硬件问题怎么检测

各位谁用过DM9000,现在我的BSP在开发板上能ping通,在我的板子上不行,DM9000一块电路是完全一样的,怎么快速定位硬件错误,请用过的朋友指点下,谢谢先…

查看全部问答>

关于电源驱动问题

我使用威盛的主板,使用power button(电源按钮)来保存注册表,我想用软件来实现该功能。如何调用?调用什么驱动能代替按power button的操作。…

查看全部问答>

新手求救 关于网卡EEPROM设计的问题

我要做的课题是设计一个基于AM79C976芯片的网卡 可是不知道该往网卡里的EEPROM里写些什么东西 也不知道怎么写 谁能教教我 我用的EEPROM是93LC66B 还有一个问题 是关于EEPROM和寄存器映射的 是不是加电以后EEPROM的信息就会自动读到芯片内相应的寄 ...…

查看全部问答>

STM32ID怎么读出来是0xFFFFFFFF???

有些不是0xFFFFFFFF,这次买了20片,有10多片是 0xFFFFFFFF的,怎么回事呢? 买到假货了 ? 还是程序的问题,? 代码很简单,芯片型号是 STM32F103C6T6     u32 DevID[3];     DevID[0] = *(vu32*)(0x1ffff7e8); & ...…

查看全部问答>