KEZA128的自动比较功能

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

KEZA128的自动比较功能

2,402 Views
liangzf
Contributor I

我开启了KEZA128 ADC的自动比较功能.

UP-Limit = 1.5V, 配置ADC_SC2[ACFGT] = 1,比较上限值,采样转换后的值如果是2,高于UP-Limit,ADC_SC1[COCO] is set,高出的值是0.5,ADC寄存器R中的值读出来是0.5。

而LOW-Limit 1.5V, 配置ADC_SC2[ACFGT] = 0,比较下限值,采样转换后的值是1,低于LOW-LIMIT,ADC_SC1[COCO] is set,低于的值仍是0.5,但是ADC寄存器R中的值读出来是2.5。

pastedImage_3.png

最后一句话:将转换结果与比较值的补数相加生成的值传送到ADC_R。

但是我测得的结果不都是相加呢。而是一个作差,一个求和呢(根据比较上限还是下限)。

请问为什么要这么设计呢?

Tags (2)
0 Kudos
7 Replies

2,226 Views
liangzf
Contributor I
Dear Alexis Andalon
    I'm sorry that i can't send you an email to reply your email in my company.
    I have got the answer in this https://community.nxp.com/thread/514122.
    This is my old case:00233989
    I haven't found the way to reply you in the support ticket website.
    So i build a new support tickey:00233991.
    And i'm so sorry to trouble you.
Best regards,
Liang

我试图用自己其他邮箱发邮件,但是这样似乎是不允许的,收到了NXP的自动回复邮件。

We assume that your email was intended to receive support from NXP technical support.

Due to legal reasons we are not allowed to interact with unidentified contacts.

支持工单提交后似乎不能撤回,也不能修改。没有找到关闭的选项。

0 Kudos

2,225 Views
Robin_Shen
NXP TechSupport
NXP TechSupport

Hi liangzf,

不是很清楚你具体怎么计算的“一个作差,一个求和”
我在开发板上测试了几组数据,感觉都是求和(但舍弃溢出bit位,只保留比如8位作为比较结果)
假设8位ADC,比较值设定满量程的一半也就是128(0x80)

设定与128(0x80)比小,当输入电压采样得127(0x7F)时
127 + 128 = 255 未溢出8位,故ADC_R=255

设定与128(0x80)比大,当输入电压采样得129(0x81)时
129 + 128 = 257 溢出故只保留末8位,ADC_R=1

设计思路应该是电路实现上简单吧

257.png

Best Regards,

Robin

 

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

2,225 Views
liangzf
Contributor I

Hi,Robin:

   首先感谢你的反馈。

   由于规定,我不能把数据截图上传。我的是KEAZ128,我自己开始设的比较值2000,输入值是1952,比小的话,R为3952。 当我把比较值设定为500,我的输入值是1868时,比大的话,我得到的R值是368。

   溢出的问题我之前已经发现了。我的是12位的ADC,溢出值是4096。

   建议你更改下数值,因为129-128=?

   hhhhh.....

   ^_^

Best Regards,

Liang

0 Kudos

2,226 Views
Robin_Shen
NXP TechSupport
NXP TechSupport

最后那句话如果理解成“比较得差值以补码形式存入ADC_R寄存器中”就说得通了。

 

比大

输入值:1868

比较值:500

1868 - 500 = 1368

ADC_R = 1368   (正数的补码)

 

比小

输入值:1952

比较值:2000

1952-2000 = -48

ADC_R = 4048 (负数的补码

Best Regards,

Robin

 

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

2,226 Views
liangzf
Contributor I

Hi,Robin:

   Thanks!

   The value generated by the addition of the conversion result and the complement of the compare value is transferred to ADC_R.

   之前看的子参考手册,中文译为:转换结果与比较值的补值相加所得到的值被传输到ADC_R。 没有理解这句话的含义。

   还想深入了解一下,ADC自动比较功能主要用于什么产品,为什么要设计成比较得差值以补码形式存入ADC_R寄存器中,而不设计成与比较值的差值存入ADC_R寄存器中。

   以及我初次使用Ticket support、之前提问没有用英文,你的同事Alexis Andalon回复我的邮件中让我转换成英文。由于没有外发权限,我没有办法及时联系他。

可否帮我转告他问题已大致解决。

   此外,我发现提交的Ticket support没有办法进行修改,Ticket support后续还需要我进行操作么?

Best Regards,

Liang

0 Kudos

2,226 Views
Robin_Shen
NXP TechSupport
NXP TechSupport

Hi Liang,

关于如何使用Ticket support的问题,我的同事上周应该已经致电你了。

如果还有Ticket support使用方面的问题,可以通过在线问答与我们沟通。

在线问答.png

Best Regards,

Robin

0 Kudos

2,226 Views
liangzf
Contributor I

之前公司邮件拦截,没能在邮箱看到你的回复,今天才看到,实在不好意思。

非常感谢。

我没有接到你同事如何使用Ticket support的来电。

有时间我想尝试下在线,再次感谢、

0 Kudos