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.

[参考译文] CCS/TM4C123GH6PZ:TM4C 硬件采样平均

Guru**** 1830950 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/712037/ccs-tm4c123gh6pz-tm4c-hardware-sample-averaging

器件型号:TM4C123GH6PZ
主题中讨论的其他器件:TM4C123

工具/软件:Code Composer Studio

您好!

您能否共享启用硬件采样平均值为8的示例代码?

我的客户一直在尝试使其正常工作、但似乎无法启用它。

谢谢、

Tadeo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Gerardo、

    据我所知、我们没有针对该功能的现成示例代码(我们有少数非 TivaWare 示例、但我也看不到这样的示例)。

    如果客户可以发布 ADC 的配置代码、则我们可以对其进行审核并提供有关可能缺失的内容的评论。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Tadeo、

    我将仅附加您脱机发送的 TivaWare API 配置代码、而不附加任何其他应用程序代码、因此将来查找此帖子的任何用户都可以使用上下文:  

    MAP_SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);
    MAP_ADCReferenceSet (ADC0_BASE、ADC_REF_EXT_3V);
    
    MAP_GPIOPinTypeADC (GPIO_Porte _BASE、
    (GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3)
    
    
    
    ;GPIO_PIN_3_BASE (GPIO_GPIO_GPIO_0)
    
    | GPIO_GPIO_PIN_GPIO_PIN_0);GPIO_PIN_ADC0_GPIO_PIN_ADC0_ADC0_GPIO_SDK_0 (GPIO_PIN_PIN_ADC0_GPIOR_GPIO_SDK_0)
    
    MAP_ADCSequenceConfigure (ADC0_BASE、0、ADC_TRIGGER_TIMER、0);
    
    MAP_ADCSequenceStepConfigure (ADC0_BASE、 0、0、ADC_CTL_CH0);
    MAP_ADCSequenceStepConfigure (ADC0_BASE、0、 1、ADC_CTL_CH1);
    MAP_ADCSequenceStepConfigure (ADC0_BASE、0、2、 ADC_CTL_CH2);
    MAP_ADCSequenceStepConfigure (ADC0_BASE、0、3、
    (ADC_CTL_END | ADC_CTL_CH3 | ADC_CTL_IE));
    
    MAP_ADCSequenceEnable (ADC0_BASE、0);
    MAP_ADCIntEnable (ADC0_BASE、0);
    MAP_IntPrioritySet (INT_ADC0SS0、5 << 5);
    MAP_IntEnable (INT_ADC0SS0);
    
    MAP_SysCtlPeripheralEnable (SYSCTL_Periph_Timer1);
    MAP_TimerConfigure (Timer1_base、 Timer_CFG_PERIODICRARic);
    MAP_TimerControlTrigger (Timer1_base、timer_A、true);
    MAP_TimerLoadSet (Timer1_base、 Timer_A、400000);//周期时间5ms 或200Hz
    MAP_TimerEnable (Timer1_base、timer_A);
    

    现在、回顾所有这些内容、我看到缺少 API 调用。 我认为需要添加这一点、以使操作正常工作。

    请让它们也配置 ADC 时钟、例如:

    ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PLL | ADC_CLOCK_RATE_FULL、25);// 16MHz 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我尝试添加 API 调用、但它仍然不起作用。

    我的问题再次是:

    我使用200Hz 的采样率、并对4个通道进行采样->因此我每5ms 获得一次新的采样。

    作为触发源、我使用计时器。

    现在、当我打开 HardwareAveraging 时、例如8 ->我希望每5ms*8 = 40ms 获得一次样本。

    问题是我仍然每5ms 获得一次采样(ADC 中断仍然每5ms 发生一次)...?

    因此,在我看来,HardwareAveraging 的某些东西出现了问题,不起作用。。

    也许您可以帮助我解决这个问题?

    非常感谢

    Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    还有一件事:-)

    硬件解决方案似乎只有在我使用 ADC-Trigger:"TRIGGER_ALYWAYS"且系数为64时才起作用...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Chris、

    非常感谢这些细节、情况和问题都更加清晰。 是的、根据我的理解、您对预期行为的描述是正确的、因此可能存在无法正常工作的情况。 我正在查看此主题、但可能直到明天才收到反馈、只是想让您知道这个问题正在得到解决。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    请注意-   在'ADC Functions'(供应商的 Ralph 大方地提供/提供)中,出现了'eval' (正常)...  不适用于 TM4C123系列 MCU!   (所有这些函数都来自线程的创建程序(O.p.))   相信(可以-希望)这些"非法"函数调用中的某些函数可能会解释或导致"解决海报问题"。

    这是我们公司的一名年轻的"更好的实习生"发现的、因为她获得了能力、而且每天都在。   (以及重点突出的努力)   之后-一个快速示例(O.p.说"错过了")

    ADCClockConfigSet (ADC1_base、ADC_CClock_SRC_PLL | ADC_CClock_RATE_FULL、30);// 16MHz  注意-所有海报引用都已改为 'ADC0_BASE!'

    唉——司机库“遇到问题!”  (两次)

    4.2.2.3 ADCClockConfigSet
    设置 ADC 的时钟配置。
    参数:
    ui32Base 是要配置的 ADC 的基址、它必须始终为'ADC0_BASE '。

    注意: 对于 TM4C123x 器件、如果 PLL 被启用、PLL/25被用作 ADC 时钟 (因此参数"30"-看起来不正确!   对于'129 (480MHz)还可以-对于'123! (400MHz)因此"25"证明是正确的)

    员工/我已经调查了供应商的 Ralph (之前提供)提供的代码、并"发现"了以下内容:

    • 此函数"  MAP_ADCHardwareOversampleConfigure (ADC0_BASE、64);" 对 Jennifer 和我本人来说都是-(大多数)可疑的。    例如:a)管理硬件过采样的功能-大量充电 b) 该功能"打算"放置值"0x6"-包含在3个最低位-驻留寄存 器"ADCSAC_"中。    然而、我们已经看到/注意到-"来自这种行为的影响!"   (0x6会导致64的过采样因子、我们( 通常)注意到0x0 -作为 'ADCSAC'内容!   (失败/否定(任何)"过采样!")
    • 因此  、拒绝"MAP"前缀可能会更安全-(而是)使用 "基于闪存的函数" ADCHardwareOversampleConfigure (ADC0_BASE、64);" 这样可以消除"MAP"函数(实际上是 MCU 的 ROM 函数) -作为错误源。
    • 除此之外-是否可以输入 '0x6'是'64'作为  ADCHardwareOversampleConfigure()中的最终参数-是否会起作用?   我们的"免费"123个电极-现在-"离开大楼"。

    虽然"在这里不受青睐"(这是合理的) DRM 编码可能会-在这种有限的情况下-到达"节省一天!"

    • HWREG (ui32Base + ADC_O_SAC) |= 0x06; // 此处的目的是强制'0x06'-具有寄存器 ADCSAC 的最低3位
    • 此外-可以避免使用(之前)建议的(添加)函数'ADCClockConfigSet()'-作为寄存器 ADCCC '保险库'到0x0 -确保 PLL/25 (即16MHz ADC 时钟) Q.E.D.

    用户可能希望"实施这些更改"-并报告-我们现在"太挤了"-投入(更多)时间/精力-并相信这项分析既广泛又深入-并取得成功!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在继续"引用此线程-特别是上面的帖子-显示与"长期存在"API 文件 ADC.c.存在冲突
    这种情况将在一个新的职位上提出--因为这偏离了中心意图--在这里--我认为已经解决了这个问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 CB1、

    感谢大家关注 ADC0与 ADC1_BASE、我感到非常尴尬! 我应该更仔细地检查我写过的有关这方面的内容、以及我拉动129x 系列的时钟配置、而我们的海报使用的是123x。

    "这样就消除了"map"函数(实际上是 MCU 的 ROM 函数)-作为错误源。"

    实际上、如果映射文件正确完成、我知道这是正确的、那么它应该只发送到与闪存功能相同的 ROM 函数、这就是我们建议使用它的原因。 您觉得会有什么不同吗? 我可以检查是否是这样。

    现在、关于 ADCHardwareOversampleConfigure、我认为64是正确的输入。 我能问一下为什么你的工作人员和你觉得64的设置不会将0x06的设置应用到 ADC_O_SAC 寄存器吗?

    解析 for 循环并对其应用64的输入会导致值0x06、因此我不关注问题所在的位置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Chris、

    我想我现在看到了 ADC_TRIGGER_Always 与 ADC_TRIGGER_TIMER 之间的问题。

    您的计时器设置为5ms、这是因为您启用硬件过采样并不意味着计时器将知道它必须减少中断频率。 尝试使用 ADC_TRIGGER_TIMER、并将计时器设置为预期的采样率、而不是5ms。 然后、您应该在采样完成时获得中断触发。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Chris:

     虽然您正在获得 Ralph 和 CB1的大力支持、但我想谈谈我对硬件采样平均的看法。 平均电路的工作方式是、它将获取给定通道的样本 x 次数(即2、4、8、16、32、 或64)、然后再将平均值数据存储到 FIFO 中。 假设您以1Msps 的速度运行。 这意味着对于每个通道、理论上需要1us 的转换时间。 如果您将硬件采样平均值配置为64、则需要64uS 才能完成该平均值并将其存储到 FIFO 中、然后再移至下一个通道。 它不是每 x 个"触发器"获取通道转换的平均值。 每 x 个触发器数平均有两个问题。 这意味着在最后一次触发发生之前、需要使用另一个硬件缓冲器来存储中间值、然后再将最终平均值数据写入 FIFO。 第二个问题是、如果触发器相隔很远、则每次转换可能不再相互关联。 在您的用例中、每5ms 触发一次。 如果将触发器配置为每隔几个小时或几天发生一次、该怎么办? 也许有一些应用用例用于此目的、但这不是 ADC 硬件平均在 TM4C 器件中的工作方式。

     请参阅数据表中显示的下图、其中 A、B C 和 D 是同一通道的4个不同采样点。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Ralph Jacobi">我能否询问您的员工为什么会觉得64的设置不会将0x06的设置应用于 ADC_O_SAC 寄存器?
    [/报价]

    当然、正如我在几次写的那样、在调用该函数之后、我们对 'ADCSAC'的审查 结果显示为0x0。   这是在两块 LPad 上完成的、这两块 LPad 是客户原型系统的一部分、计划明天发货。   客户致电-要求此货件"提前发货"-因此、直到今晚 c.o.b.(营业结束)、我们才能开箱新的 LPad。  我们的仓库中有许多。  (几个街区外-在一个"气候控制"的区域-但租金却低得多。)

    因为您有了一个不那么麻烦的测试、我们没有理由"删除您的发现"、而"训练障碍"的那一部分手指可能会被移除。   我相信我们发布了这一结果、认为这是"可能的"、而不是"绝对的"。   同样、在故障排除过程中发现的任何发现、尤其是拖了之后的发现、就像这个发现的那样、肯定会被呈现出来。   (早期判断-通常-证明是错误的。)  

    Jennifer 和我没有(更多)时间阅读/审查这里的最新帖子-(你的和 Charles 的一个)-一旦我们的"后台"清空、我们将"尝试"这样做...  (员工/演员...)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    原谅查尔斯——既不是粗锐的员工——也不是我——“明白”这“四!”的重要性 它是否没有"被压住/移位"(没有任何解释)、并且(曾经)是否可以"清晰"? 抱歉-我们已经阅读了您的叙述-同意大多数-但图表-完全混淆/混淆!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 CB1、

    该图最好由以下代码片段表示。 您可以看到、在 ADC0中、CH0同时用于序列发生器0的第0步和第1步。 请注意、该图试图说明如何从给定通道获取4个样本的平均值。 对前四个 A、B、C、D 取平均值、然后存储到 FIFO 的第一个时隙中。 对同一通道的接下来四个采样点(图中所示的第二个 A、B、C、D)的平均值进行平均值计算、然后保存到 FIFO 中的"秒"插槽中。

    ADCSequenceStepConfigure (ADC0_BASE、0、0、ADC_CTL_CH0);
    ADCSequenceStepConfigure (ADC0_BASE、0、1、ADC_CTL_CH0 | ADC_CTL_IE | ADC_CTL_END);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你们——然而那个阴影的“4”的“重新定位”——仍然不在工作人员(超级聪明)和我自己(无聊的正常——在一个好日子。)
    工作人员“猜测”也许——在第7次转换时产生了中断——但没有达到这样的细节(甚至现在)。

    您在图中没有看到明显的视差吗?    (第4位的变化-从第4位(预期)到第3位(意外)  显然是... 谢谢你 然而 、您已经做出了特别的努力来寻找-然后展示它。    为什么在右侧(4数据包)中显示的'4'和位置3中放置?    目的是什么?    这里没有人“得到”——完全没有人!

    您可能会很好/很善良、但会有些细节吗?

    至于您刚才介绍的代码这很清楚、但前面的图表-正如我们确实尝试详细介绍的那样-会使我们的所有团队都无法理解。   (让我们(更多)谢谢!)    帮助!   Mercî……

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 CB1、

     希望这一点会比较清楚。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是一个缺失的链接(您需要进行大量澄清-添加了文本)!    感谢 Charles -不是您的澄清/放大-我们迷路了。   (或员工—比我聪明——“预制”——@我的“高级”。)

    我是否可以建议改进?   该图-哪个'model'是'4入口 FIFO'(您已经注意到)-也表示'4X 硬件过采样'(没有注意到-但我的印象是这样)- 是否正确?   因此-我们通过 两个(不同的-和不相关的)"4"的出现创造了"可能的困惑"-我们难道不是吗?

    如果 我们保持相同的"4入口 FIFO"、但 将"硬件过采样"更改为"8X"、那么您现在的(大幅改进)图表将如何更改?   然后、该图是否可以(仅)显示这2个中的一个入口-'4入口 FIFO'-和'仅在第8次 ADC 捕获后'到达并被处理?

    希望我能解释清楚,你可以再次缓解我们的(未知)不适。

    也就是说、我们的海报报告了、即使配置了64X 过采样、他也以远高于"非过采样率"的速率收到了 ADC 中断!   这是"直至"的问题-不是吗?

    刚才提到的员工-您的图表显示(仅一个)中断-不应该发生两个中断?

    再次感谢您在"教育不受教育的人"方面付出的时间/努力/慷慨大方。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 CB1、

    [报价 USER="CB1_MOBIT)]如果 我们保持相同的'4入口 FIFO'但 将"硬件过采样'-更改为'8X'、您的当前(大幅改进)图表将如何更改?   然后、该图是否可以(仅)显示这2个中的其中一个的条目-'4条目 FIFO'-和'仅在第8次 ADC 捕获后'到达并被处理?[/QUEST]

     下图如何?

    [引用 user="CB1_MOBIST"]刚才注意到的员工-您的图表显示(仅一个)中断-不应该发生两个中断?

    否、它只会生成一个中断。 让我们再次使用我的代码来表示图。 序列发生器0仅配置了两个步骤(步骤0和步骤1)。 两 个步骤都将对 CH0进行采样。 您可以使用8倍过采样或64倍过采样、这无关紧要。 查看第二行、其中 ADC_CTL_IE 和 ADC_CTL_END 应用于步骤1。 在第1步被转换后、一个中断被生成。 并不是每个"步骤"完成都会生成一个中断。 每个"序列发生器"完成都会生成中断。   

    ADCSequenceStepConfigure (ADC0_BASE、0、0、ADC_CTL_CH0);
    ADCSequenceStepConfigure (ADC0_BASE、0、1、ADC_CTL_CH0 | ADC_CTL_IE | ADC_CTL_END);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Ralph Jacobi"]仅仅因为您启用了硬件过采样并不意味着计时器将知道它必须减少中断频率。 尝试使用 ADC_TRIGGER_TIMER、并将计时器设置为预期的采样率、而不是5ms [/QUERP]

    我第一次读这篇文章-和员工-我们有"混合的感受"。   我有(一些)经验-他们有主要的 SMARTS -(在一个好日子)我们可能会"危险"。   (有一个希望)

    以下是在(拉尔夫和查尔斯)(以及我的天才员工)的努力的基础上、尝试在更系统(可理解的框架内提出这个"ADC 硬件过采样"问题

    • 现在、我们的海报预计会累积64个 ADC 样本、只有数据已经被处理/平均后、才会接收 ADC 中断。   (这样他就可以(只能)采取行动!)
    • 选择了200Hz (5ms 周期)的 ADC 采样率-因此-为了实现他的"目标"-他是否不需要"获得所有64个 ADC 样本"-至少比现在快64倍?
    • 通过"餐巾纸(高级)数学的背面"、可获得12、800Hz、适用于"新"计时器触发的 ADC 转换速率。   (在"管理费用/处理"方面肯定会浪费时间、因此最好(稍微)提高该频率。)

    我们目前还没有 LPAD -用于编码和观察(即测试/验证)-但这似乎是一种合理的方法-第一种方法具有完整和可用的详细信息-以启用重新启动和测试。

    再次感谢供应商代理(和朋友) Ralph & Charles 和我公司的激励人心的年轻员工、为我们讲解这条"老狗" 。 另一个新技巧。   ((也许)- 我们应该"等待并看到!")

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Charles -再次非常感谢。 我们正在检查-我们今天早上阅读的内容-这可能是最有用的-请稍候。
    (我们的运动——至少我的运动——被称为“快于一群海龟”——超越我们的 Speed Lane Charles——在远光灯上有点重…… 博伊兹!)

    这里还有一点-支持我公司的总结-主张 ADC 采样率提高64倍(最小值)-如果和何时-用户寻求实现此类 ADC 硬件过采样!

    海报写道: “硬件  解决方案似乎只有在我使用 ADC-Trigger 时才起作用:“TRIGGER_ALYWAYS”,因素64…

    现在-触发率-太快-(可能)"不合理"-但肯定符合我公司提供的"计算值(或更高)"。   和提供了肯定的确认-硬件过采样-只有当 "  ADC 采样率 -最低-等于或超过-所需的采样率乘以过采样率!"  (可能-添加了一些额外的(安全时间)。)

    现在-(有点)与 Charles 的报告相反-几位员工和我记得、我读到过采样-硬件过采样-降低了中断速率-降低了过采样因子。  (不相信查尔斯(Charles)的结论(准确)表明了这一点!)

    我们希望(再次)展示 Charles 先前的结论: "查看第二行、其中 ADC_CTL_IE 和 ADC_CTL_END 应用于步骤1。  在第1步被转换后、一个中断被生成。   并不是每个"步骤"完成都会生成一个中断。    每个"序列发生器"完成都会生成中断。"   而且-员工/我相信-篇文章值得挑战!

    ADCSequenceStepConfigure (ADC0_BASE、0、0、ADC_CTL_CH0);
    ADCSequenceStepConfigure (ADC0_BASE、0、1、ADC_CTL_CH0 | ADC_CTL_IE | ADC_CTL_END);

    回顾他(之前的图表-在此复制-为清晰起见) -对" 中断生成"索赔提出质疑!  (请注意、我已添加关键定义详细信息)

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 CB1、

    这可能也是正确的、但随后他应该期望中断每5毫秒出现一次、但他的帖子表明他认为行为是错误的:

    "问题是我仍然每5ms 获得一次采样(ADC 中断仍然每5ms 发生一次)...?"

    因此、问题是:a)已完成的样本应以5ms 为单位、因此采样率要快得多才能达到该标记、或 B)样本应以200Hz 为单位完成、然后结果应在稍后出现、 因此、应在较晚的时间周期而不是5ms 内触发中断。

    在 Amit 之前的帖子中、他描述了硬件过采样、这是为了延长接收样本中断所需的时间。 因此、如果您进行100Hz 采样、然后进行8x 过采样、则会在80ms 而不是10ms 获得中断。 这就是我对计时器太短的想法的来源。 定时器设置为 ADC 的中断、但 ADC 处理其余的中断。

    或者换句话说、在之前的 Amit 帖子中有关该主题的帖子中:"1. 触发仅用于转换开始。 ADC 模块将负责开始转换平均时间的采样数、平均时间、然后生成中断。 由设计保证的特性"

    完整的 Amit 发布、其来源为 :e2e.ti.com/.../1183450
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="CB1_MOBIT)]我们希望(再次)介绍 Charles 先前的主题: "查看第二行、其中 ADC_CTL_IE 和 ADC_CTL_END 应用于步骤1。  在第1步被转换后、一个中断被生成。   并不是每个"步骤"完成都会生成一个中断。    每个"序列发生器"完成都会生成中断。"   而且-员工/我认为-篇文章值得挑战![/引述]

    我在1中断上的发言是指我以图表表示形式提供的两行代码。 一个序列内的多个采样可以产生中断、这是合法的。 例如、如果您按如下方式更改代码。 但是、您为什么要在应用中这样做。 这就不能达到使用 FIFO 的目的。  

    ADCSequenceStepConfigure (ADC0_BASE、0、0、ADC_CTL_CH0 | ADC_CTL_IE);
    ADCSequenceStepConfigure (ADC0_BASE、0、1、ADC_CTL_CH0 | ADC_CTL_IE | ADC_CTL_END);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph、

    值得注意的是、您和我们的大部分员工仍然"激动"。

    我刚刚添加到我的帖子(就在你的正上方)。 我现在非常确信——我的公司(团队努力)提出的逻辑和语言 ——在细节上——以及(甚至)过去所表现出的清晰度(当然也是颜色)——都超过了这一点。  同样、您和 Charles 的意见很好、但我的团队有"详细信息"、并制定了合理准确的系统指南。   (如此喜欢——我们的主要(特别是)“巨人” ……  客户)

    员工赢得了“免费晚餐”——在一个体面的联合餐厅——如果我的“卡”不是“运送货物”——“没有洗过的菜”堆的高(非常高)等待着我们!   这种情况-经常发生-回声是...的条件。 “Hacienda CB1!”   (为什么要洗涤-何时可以购买新产品?)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Charles -请阅读我的《长而多彩的邮报》、为您提供出色的帮助-只需一个-小调。

    我的帖子-今天早些时候(5:14 / 17:14)、非常详细-硬(数据表)事实-我们认为-非常合乎逻辑的结果和结论。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 CB1、

     否、以下不能为真。 您希望使用只能保持一步的 SS3的图像。 如果您希望 SS3中的唯一通道获取64个样本的平均值、那么您将如何使用以下代码执行该操作。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您"应该"注意"可疑"-我们没有电路板(直至明天)来执行"现场测试"。
    我们不认为"序列发生器完成"语句将始终生成中断。 我之前(非常详细)的帖子-显示了逻辑-是我和我能够做到的最好的团队。

    同样、我在上面的尝试是尝试复制数据表中未显示的代码、从而产生图13-6所示的性能。 (除非我还在洗碗、而不是睡觉、否则我会对这个数字"噩梦"。)

    员工(适当的)饿了——他们会杀我——如果我们不离开——我们(非常)好…… 后房... (背后又有另一个... 后房)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph、

    是的、这是正确的、但某些东西仍然不起作用。 我的问题再次出现了:-)

    一些事实:

    ->我必须对4个通道进行采样

    ->因此我使用序列发生器1 (FIFO 深度-> 4)

     ADCSequenceStepConfigure (ADC0_BASE、1、0、ADC_CTL_CH0);
     ADCSequenceStepConfigure (ADC0_BASE、1、1、ADC_CTL_CH1);
     ADCSequenceStepConfigure (ADC0_BASE、1、2、ADC_CTL_CH2);
     ADCSequenceStepConfigure (ADC0_BASE、1、3、ADC_CTL_CH3 | ADC_CTL_IE |ADC_CTL_END);

    ->我使用计时器来触发采样 率为200Hz (5ms)的 ADC 转换(ADC_TRIGGER_TIMER)

    ADCSequenceConfigure (ADC0_BASE、1、ADC_TRIGGER_TIMER、0);

     SysCtlPeripheralEnable (SYSCTL_Periph_Timer1);
     TimerConfigure (Timer1_base、timer_CFG_PERIODICRACRACASE);
     TimerControlTrigger (Timer1_base、timer_A、true);
     TimerLoadSet (Timer1_base、timer_A、400000); //周期时间5ms 或200Hz
     TimerEnable (Timer1_base、timer_A);

    ->我使用硬件取平均值、系数为8

    ADCHardwareOversampleConfigure (ADC0_BASE、8);

    现在我以为情况会如此

    -每5ms 对每通道8个样本进行平均采集并保存在序列发生器 FIFO 中

    因此,我将每5ms*8*4=160ms 获得一个序列发生器1中断。

    ->问题实际上是我的中断处理程序仍然每5ms 调用一次->所以 我的假设是硬件平均不能正常工作。?!!

    非常感谢

    Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Chris:

     一些问题。 您现在更改为使用序列发生器1。 使用序列发生器0之前。 如果您使用的是序列发生器1、我希望您已使用 ADCIntEnable (ADC0_BASE、1)为序列发生器1启用中断。  下一个问题是、您说您在5ms 处获得中断。 您确定这是从 ADC 获得的中断、而不是为5ms 中断配置的计时器? 您能否尝试在计时器中断中设置一个引脚并清除 ADC 序列发生器1中断中的该引脚? 1)测量引脚在禁用硬件平均值和系数8硬件平均值的情况下的高脉冲?

     我希望这张图能说明它的工作原理。 请注意、该图未按比例绘制。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Chris:

    [引用 user="Christoph50"->"I use a timer for trigger the ADC conversion (ADC_TRIGGER_TIMER) with a sample rate of 200Hz (5ms)

    请再次阅读 Ralph 的最后一篇文章、因为他说 GPTM 仅启动 序列发生器采样周期、ADC 时钟速度处理过采样时间。    我在 Charles 图中看到的这些 X 表示 转换(完成) 中断之前模拟信号中相对于过采样周期的 FIFO 串行位时钟时间。 序列发生器 FIFO 循环 地根据 采样时钟速度(速率)将12位寄存器以串行位时间加载到每个 阶跃指定的通道中。 因此  、CB1之前 指出的 ADC 采样时钟速度对于确认其以正确的频率运行非常重要。     

    如果不正确、Charles 可以纠正我的问题、  ADC0/1只使用 SYSCLK 通过 寄存器配置外设行为和序列发生器步骤。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    您的图表颜色标记状态转换时间、但对于所有过采样率、TC 是否保持1us? CB1/我在一段时间前就开始了这一步、但他认为他是正确的、TC 仍然是静止的时间。 无论 FIFO 最终结果数据转换时间如何、FIFO 平均引擎都根据采样时钟速率增加了硬件时间。   相对于转换时间、在采样时间内调用它是否更合适?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 BP101:

     我想在图中显示序列发生器中每个通道的1X 过采样与8X 过采样之间的转换时间差。 如果您对8X 过采样进行编程、则序列发生器将获取每个通道的8倍采样并对转换结果求平均值、然后再将转换后的数据保存到 FIFO 中。 我真正要演示的是、使用8倍过采样时、完成序列发生器中的4个通道需要8倍的时间。 中断在一个序列中的所有4个通道完成后生成。 正确的做法是、对于8x 过采样、每个采样仍然需要1uS、但对于8个采样、则需要8uS (假设 ADCCLK 为16MHz)。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    现在一切对我来说都很清楚:-)

    我尝试了以下操作(就像您写的那样)...

    ->使用 ADC 触发源:ADC_TRIGGER_PROCESSOR

    ->在计时器中断(5ms)例程中、我调用 ADCProcessorTrigger (ADC0_BASE、1)并设置输出引脚

    ->在 ADC 序列发生器中断例程中、我清除了输出引脚、并测量了输出引脚的高电平时间

    ===================

    ->我看到 ADC 始终使用1Msps 进行采样(我不清楚)

    ->如果我更改了 ADC_O_PC 寄存器中的采样率,那么测量的时间也相应地发生了变化->因此硬件平均绝对有效:-)!   (工作方式与您在图片中发布的内容类似)

    ->但是、我还有一件事->如果我使用函数 ADCClockConfigSet 来更改采样率 、这不起作用->我使用了 HWREG (ADC0_BASE + ADC_O_PC)=(ADC_PC_SR_1M)、而是直接起作用

    非常感谢您的大力支持!

    Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    确实-供应商的 Charles 提供了最出色的(持续且高度详细)支持。    非常好!

    但是、

    [引用 user="Christoph50"]如果我更改了 ADC_O_PC 寄存器中的采样率,则测量的时间也相应地发生了变化->因此硬件平均绝对有效:-)!

    您在得出该结论时很可能(仅限)部分正确:

    • 实际上、您已确认硬件平均计算按预期执行-"分时"。
    • 然而-如果(如预期)您该 ADC 通道呈现(接近恒定)信号电平-您"未"确认(任何)发生了"稳定平均"!

    这证明了"结果"(无论有无硬件平均、信号电平低于(接近恒定值)、都将 证明"几乎完全相同"。   因此无法进行正确(最终)的分析。   

    为了(真正)确认硬件平均值计算是否有效-在 ADC 转换"窗口"期间、输入信号应该"变化"。    例如、假设"过采样8 "-前4个输入信号电平"等于并设置为2V5 (2.5V)"、后4个输入信号电平"等于并设置为1V5"-硬件平均"结果"-(在适当的情况下) 显示为"2V0"。   (因此-一个真正的'HW 取平均值' -已经实现-现在才确认!)   

    减去 "分析严谨性"-  证明"声称硬件平均成功"还为时过早-尤其是声称" 确实有效/成功!"

    为完整起见-海报的(原始)  采样率"200Hz"目标现在(列出) 的"200Hz/8" 速率之间仍然存在"冲突"!    HW 过采样可以通过 "乘以"ADC 触发计时器"速率-乘 以"HW 过采样值"或略高于实现(最初所需)采样率。   (允许"内部管理/其他因素...")

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、

     我希望这比上一张图更清楚地说明过采样的工作原理。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Chris:
    要启用过采样功能、您需要调用 ADCHardwareOversampleConfigure (ADC0_BASE、8)、使平均因子为8。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引述 USER="Charles Tsaaaaa">正确的是、如果使用8倍过采样、每个采样仍然需要1us、但对于8个采样、则需要8uS (假设 ADCCLK 为16MHz)。  [/报价]

    这将与我和我一个时间前在论坛上辩论的内容背道而驰。

    您可能想说 8倍 过采样时为8us、最终转换时为1us。  似乎 8x 过 采样  需要 8 x 12 个 ADC 时钟周期 、以将12位转换为 任何 (单个)序列发生器 FIFO + TL500ns。 数据表并未区分采样时间和转换时间、但从技术上讲、这两个词 的含义不同。

    示例: 单个30Mhz 时钟周期33ns * 12位移入 FIFO 或400ns x 8 样本= 3.2us + 1us 转换 可为 单个序列发生器步长提供4.2us。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 BP101:

     您可以查看我的更新图吗?

     各种文件的若干摘录。

     用户指南中找到。

    ADC 数据的硬件过采样可提高精度。 过采样因子
    2x、4x、8x、16x、32x、 或64x、但会将 ADC 的吞吐量降低相应的值
    系数。 硬件过采样统一应用于所有采样序列发生器。

    启用硬件取平均值可提高 ADC 的精度、但会以吞吐量为代价。 原因
    例如、启用4倍过采样可降低250k 次采样/秒 ADC 的吞吐量
    62.5k 个样本/秒。

    来自数据表:

    最多可累加64个采样并对其取平均值
    从而在序列发生器 FIFO 中形成单个数据条目。 吞吐量按比例下降
    平均计算中的样本数。 例如、如果配置了平均电路
    为了平均16个样本、吞吐量减少了16倍

     

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我确实看到了您的更新表、但问题是硬件平均值计算是在拓扑的模拟电平还是数字电平上进行的? 如果它在数字级/在数字级发生、则每个样本需要1us 的转换、累加和平均来形成一个单一数据条目、这意味着唯一的条目。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、这就是我在最新图表中所说的内容。 再次显示。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在查尔斯最新的画图中显示的清晰度和努力必须获得高度的掌声。    (甚至来自-这个地毯隧道-论坛记者...)

    我是否可以注意到三个(仍然)未决项目:

    • 此主题中的任何"古代历史"都必须"放弃"供应商查尔斯最近提出的图纸和叙述。   简直太棒了!
    • 客户海报的"完全可行"索赔尚未得到证实!   除非他明确提供适当的输入信号(这仍然是非常可疑的信号)、否则没有证据证明确实发生了任何"正常平均值计算"!   (应用"接近固定电平"信号-这是"简单"(因此是预期的)、无法 确定发生了此类硬件平均(实际)!)
    • 通过简单的操作、"将'ADC 触发计时器'频率乘以硬件过采样值、即可保持(最初寻求的)转换速率。   即使已经调用了硬件取平均值...  (注意:必须添加"韦斯尔因子"-某些(非常)高转换率-可能会阻止此 类高转换率的"维护"-在硬件过采样下。)

    所需的"精细细节"-介绍了一种方法、通过该方法、可以收集"硬件平均"(实际)对结果转换的影响-在02:xx 时间范围内到达这里-今天早上早些时候。   这种"硬件平均"的"假定精度"是否可能(至少)证明其转换速度(已实现)非常重要?   这一事实已被(方便)绕过-但事实证明是非常真实的!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很好的图表确实很重要-但是数学必须通过 ADC 采样时钟来计算、该时钟的串行数据速率会将顺序位移入 AD 转换器、平均单元以及最后的 FIFO 中。 硬件取平均值块在哪里准确地累加12位数据? 不是循环 FIFO、因为它只保存采样平均的最后结果。

    方框图图图图15-2表示平均值是在转换器外部发生的、但我们是否应该以这种图形方式推断它不是转换器的一部分? 信号采集点 X 的过采样(图15-6)似乎会将串行 FIFO 加入到 AD 转换器中。 为了在 ADC 时钟时间内实现不同的采集点、是否实际需要完全转换样本、以便在以后的相同信号采集点实现移动性。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    单个样本的时间转换所需的时钟节拍似乎多于1us、TSN 保持时间等等...

    否则、ADC 模块似乎可能会将 SYSCLOCK 用于循环 FIFO 和 AD 转换、但并未产生图15.2所示的任何时钟源。 与图相关的采样时钟的确切含义是什么。 15-7? 很多问题似乎困扰着这个 MCU 数据表认真对待1us 转换倍数包括硬件平均分布在序列发生器上的模拟采样时间。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="BP101"]方框图15-2指示平均值是在转换器外部进行的,但我们是否应该以这种图形方式推断它不是转换器的一部分?

    平均值计算在转换器外部完成。

    [引用 user="BP101">X 信号采集点过采样(图15-6)似乎会将串行 FIFO 加入到 AD 转换器中。 为了在 ADC 时钟时间内实现不同的采集点、实际上是否需要完全转换样本、以便在以后的相同信号采集点实现移动性。

     是的、每个采样结果将首先存储到"数字"累加器中。 然后、在将最终平均值保存到 FIFO 之前、累加器的最终结果被采样数除以。 仅支持2、4、8、16、32、 64是为了简化除法。 无需分频器逻辑。 只需将累加器右移1、2、3、4或5位即可。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="BP101]否则、ADC 块可能会使用 SYSCLOCK 进行循环 FIFO 和 AD 转换、但没有生成图15.2所示的任何时钟源。 与图相关的采样时钟的确切含义是什么。 15-7? [/报价]

    ADC 转换器如图15-7所示的"模拟"组件脱离 ADCCLK 运行。

    在图15-2中看到的所有其他内容都是 ADC 控制器逻辑、它是"数字"、它们都是从 SYSCLK 运行的。  

    这意味着当数据跨越不同的时钟域时、必须进行一些同步。 例如、当您接收到来自计时器、PWM 等的触发信号时、控制器必须使该触发信号从 SYSCLK 域同步到 ADCCLK 域。 当 ADC 完成转换时、12位结果必须通过从 ADCCLK 到 SYSCLK 的同步。   同步会占用这里的一些 SYSCLK 周期、我对此并不感到惊讶。  

     最小 NSH 为4个 ADCCLK 周期、转换需要12个 ADCCLK 周期、这为 TC 提供了16个 ADCCLK 周期。 当 ADCCLK=16MHz 时、转换为1Msps 或1uS TC 转换时间。 这是理论转换速率、不包括我刚才提到的同步和其他延迟。 在电气部分中、有一个 TLT (从触发到转换开始的延迟)、它是2个 ADC 时钟。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    检查时钟数学以确认结果时、绝不会感到很痛苦。

    [引用用户="Charles Tsaa"]。 在电气部分中、有一个 TLT (从触发到转换开始的延迟)、它是2个 ADC 时钟。  [/报价]

    然而奇怪 的是、被 描述为固定时间范围的采样窗口、例如 、触发至转换 ACDCLK @32MHz 将 TLT 62.5ns。    1us TC 中的其他500ns 发生在哪里?

    [引用 USER="Charles Tsaaa"] 最小 NSH 为4个 ADCCLK 周期,转换需要12个 ADCCLK 周期,这为 TC 提供了16个 ADCCLK 周期[/引用]

    TLT 值解释似乎 试图将采样窗口包括在 TC 值中、而不考虑 NSH 默认值。  12 位转换花费12个 ADCCLK 周期似乎是合适的、但是过采样累加器是否位于 SRAM 空间中? 它不使用 序列发生器 FIFO 、而是用于最终转换结果。 因此 、数据表中可能对累加器的解释有限、这是基于模拟的、器件中的空间电荷屏障区域、这些区域在 Cadc 电容器上保持采样充电时间范围。

    如果所有 序列发生器通道的并联累加器、 则转换器时钟必须是  模拟采样位速率的12倍、否则 ADCLK @16MHz 需要192Mhz 或更快的转换器。 点是 、当硬件取平均值似乎首先需要转换为数字时、TC 说明中似乎缺少采样窗口时间

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101、

    虽然我相信 Charles 很乐意回答您的问题、但本主题开始时有点长。本主题从 OP 的初始问题开始逐渐探讨、并更多地转向核心 ADC 操作、而不仅仅是硬件过采样、 我们能否将这些后续问题发布在标题更合适的新主题中。 通过这种方式、此主题的 OP 也可以继续回答他可能提出的任何问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 BP101:

     正如 Ralph 所建议的、如果您有与 OP 问题不同的新问题、请创建新主题。

    [引用 user="BP101]'但奇 数被 描述为固定时间范围的采样窗口、例如 、触发转换 ACDCLK @32MHz 会使 TLT 62.5ns。    1us TC 中的其他500ns 出现在何处?

     TLT 以 ADCCLK 周期为单位指定、而不是绝对时间、无论 ADCLK 是16MHz 还是32MHz。 我不明白您在说"其他500ns 在1us 内的发展情况"时所说的是什么。 对于32MHz、TC 为500ns 或0.5us。 NSH=4需要满足125ns TS。  

    [引用 user="BP101]TLT 值解释尝试 将样本窗口包括在 TC 值中,而不考虑 NSH 默认值。  12 位转换花费12个 ADCCLK 周期似乎是合适的、但是过采样累加器是否位于 SRAM 空间中? 它不使用 序列发生器 FIFO 、而是用于最终转换结果。 因此 、数据表中的累加器可能会有有限的解释、这是基于模拟的、器件中的空间电荷屏障区域、这些区域会在 Cadc 电容器上保持采样充电时间范围。

     累加器只是在触发器中实现的寄存器。 我将根据我很久以前从计算机架构课程中学到的知识绘制一张高级图。 右移逻辑是一种实现分频器的方法。 在实际的硬件设计中、这种转变是一种缠绕导线的问题。 即0移位将为 MSB:0、1移位将为 MSB:1、2移位将为 MSB:2、以此类推。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    您的图 WOW 是数据表中缺失的细枝末节的一个很好的组成部分、累加器是数字的。

    也许 DQ 触发器与 TSN 电容器保持时间耦合、并通过 TSN 采集时间帧的采样倍数形成。 这是我的观点、似乎缺少时间、因为它与 TSN 值相关、因为它与 GPTM 触发采样开始相关。

    这就是我们使用 GPTM 一次性 TnOTE 位来触发 ADC 采样事件的原因。 最后、在中断处理程序中重新加载一次性 GPTM 的倒计数。 当涉及 NVIC 时、这似乎是确保 SYSCLK 与 ADCCLK 同步的最谨慎的方法。 然而、即使这不是完全可以证明的、只是衡量定时 ARM 进度的一个步骤

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    否则、替代方法是   在 ADC 触发事件开始之前重新加载 GPTM、同时 将 TnOTE 位置位、以便仅触发一个特定序列发生器、一个序列发生器和同一个序列发生器! 其它序列发生器(根据法律)不能被触发!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    另一点不是很清楚、您在最近的帖子中提到过;电气部分不表示 NSH 是通过脚注直接链接到 TS 的因素。 当我们将 ADC 时钟数乘以 NSH 周期时、过采样位速率将会改变 TS (125n/250ns)。

    因此、Tc 并非始终为1us、过采样率会将 Tc 增加一倍(TS * NSH)。 下面的 FCONV 仅决定转换比特率、不会在表15-4/5中生成或显示一个新的周期 TC 到 NSH 周期的链接。 将 NSH 周期的 TC 包含在两个表中会很有帮助。 缺失的信息(表格)导致大多数海报假设 TC 始终为1us、如电气部分 ADC 规格所示。 表的增加将表示当谷值或位速率下降时、TC 增加。

    K. ADC 转换时间(TC)包括 ADC 采样时间(TS)。

    比特率公式不包括 Tc 系数:

    FCONV = 1/((NSH + 12)* TADC)
    其中:
    ■NSH 为 ADC 时钟的采样保持宽度
    ■TADC 是 ADC 转换时钟周期、与 ADC 时钟频率 FADC 的倒数相反

    ADC 时钟频率的倒数是多少?