This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430F5529 ADC12SHT0x不太懂



ADC12SHT0x 用来决定ADC12的采样保留时间, 设定ADC12CLK的周期。这个值的选取是由什么决定的?这里的采样保留时间是指完成一次完整的采样和转换所需要的时间吗?

  • 我一般就是根据资料显示的值,基本没动过。反正都正常执行了。

  • 你好!

    ADC12SHT0x 用来决定ADC12的采样保留时间, 设定ADC12CLK的周期。这个值的选取是由什么决定的?

    采样保持时间理论上是根据ADC input的等效输入电路计算出的上升时间确定的,因为其内部会有一个等效电阻和电容,故输入信号在改变时,均有充放电的过程。

    在假设信号不变的情况下,采样保持时间越久,踩得的信号越稳定,对于MSP430的ADC12在12bit分辨率时建议的采保时间不要小于3.46us,这时就可以通过CPU时钟的配置情况,选择需要的采保时间等效的CPU clk数。

    这里的采样保留时间是指完成一次完整的采样和转换所需要的时间吗?

    一个完整ADC过程时间包含采样保持时间和转换时间(13个ADC12CLK),以及采保与转换中间有小于一个clk的时钟同步延迟。

  • 追问:若我要以10µs/sample的频率不间断采样,那SHT0x取值不恰当会不会影响到采样频率呢?

  • 先普及下ADC基础知识。

    ADC采样一次的时间包含两部分: 1. 采样保持时间  2. ADC转换时间

    1. 其中1.采样保持时间是由产生SampleOn信号开始到结束所需要的时间,这器件ADC模块对引脚输入的模拟信号采样保持。在脉冲采样模式时(SHP=1), 采样保持时间(Tsample)=4*adcclk*N, adcclk为ADC的时钟源,N为SHT1(SHT0)的4位二进制码决定的。

    2. ADC转换时间是ADC模块将采样保持的模拟信号转换成数字信号所需要的时间,这个转换时间在脉冲采样和扩展采样模式时都是一样的:

        ADC转换时间 =  13 * (ADCCLK / FADCCLK)。

    现在回答你的问题:

    如果SHT_0设置成不同的值,那么对应的分频值就不一样,其采样保持的时间就不一样。

    以ADC时钟源选择8M 的SMCLK为例子, SHT0 = 1时, 对应的采样率是166K, 当SHT0 = 8时,ADC对应的采样率大于为30K。

    所以,如果你SHTX设置错了,会造成你ADC转换时间变长。在对ADC采样时间有要求的应用时,这个值必须设计成大于你需要的采样速率,否者就会出错。

    你的应用需要10US的周期采样信号,那么你的ADC采样时间不能低于100K,最好设置到最大采样率去。

     

  • 以ADC时钟源选择8M 的SMCLK, SHT0 = 1为例,我求不出166K,计算公式是这样的吗?

    多些耐心解答


  • 你好!

    达到166K的采样转换速率,每次采样转总时长约为6.025us。

    如果你的ADC是来自8MHZ的SMCLK,且不分频,那么转换时间为1.625us,还有最多4.4us的空间进行采样保持。

    为了保证12bit的ADC采样分辨率,采保时间至少需要3.46us,在这个需要中,可以满足。

    4.4us/(1/8mhz)可以得出最多能够有的采样保持clk数为35.

    3.46us/(1/8mhz)可以得出至少需要有的采样保持clk数为28.

    所以若选择脉冲采样模式,则可选择采保时间为32clk,则ADC12SHT0x选择0001b 8clk合适。

  • Hardy Hu 说:

    如果你的ADC是来自8MHZ的SMCLK,且不分频,那么转换时间为1.625us

    这里的转换时间不应该用  也就是 这么求吗?虽然从结果看这么做显然不对

    换句话说,这1.625µs是怎么求出来的?

  • 你好!

    13*(1/8MHZ)=1.625us.