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.

[参考译文] TM4C1294NCPDT:用于捕获交流电压频率的 ADC 示例代码

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/828398/tm4c1294ncpdt-adc-sample-code-for-capturing-ac-voltage-frequency

器件型号:TM4C1294NCPDT
主题中讨论的其他器件:TIDA-01088


你(们)好

我尝试使用 ADC 来捕获本地交流电源的降压电压波形参数。

在示波器上、它是 ADC 引脚上的50Hz +/- 1V 正弦波。

想知道是否有人共享用于捕获频率和 Vpk 的示例代码?

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

    Ronnie、您好!

    我们在外设文件夹下的 TivaWare 中提供了一个 ADC 示例、用于实现它的简单操作。 它的标题为 single_ended.c 从此处开始调整 while 循环中的轮询间隔、以便它以大于100Hz 的速率(200可能会更好)进行检查、并查看它的工作原理、如果您有其他问题、请根据需要澄清仍然无法正常工作的内容。

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

    [引述 USER="Ronni"]在示波器上   、它是 ADC 引脚上的50Hz +/- 1V 正弦波。[/quot]

    除了供应商代理的指导之外、您还必须确保您的交流信号具有足够的"电压电平偏移"、这样波形的负下降(其谷底)绝不会低于 ADC 的"最小电压输入规格"。   (0VDC)   如果您的输入信号(实际)将1V 的电压驱动至低于 MCU GND -这是严重违反"MCU 规范!"   "交流输入信号"的所有部分都必须保持 ≥ 0V 和≤3V3"-以符合 MCU 的 ADC  规格。   (这里有人可能声称"交流包络的正半部分可能达到5V"-我认为(及时)这种"过多输入"可能会损坏-也许更重要的是 - ADC 对高于3V3的信号"视而不见" (仅将其报告为3V3)  因此,这 种做法具有风险,不符合(任何)衡量 标准!

    没有提到"精确度"。   您  的目标应该是准确的"V_Peak "测量值:

    • 您可能必须减少任何"波形滤波"-这将吸收(从而屏蔽)任何电压峰值
    • 并提高采样频率、以"增加可能性"、即至少(一个)电压捕获发生在 V_Peak (  建议8x50Hz)或其周围(建议8x50Hz)

    通过外部(或内部)模拟比较器-您可以通过其"通过信号的'识别电压电平'点"来确定交流信号的频率。   外部比较器可实现宽松的"迟滞"、从而确保清晰的输出信号转换、这对于如此稳健的测量至关重要。    然后、如果 您升级到"命名"而不是"其他" MCU、您的"IP"会立即"可重复使用"。

    BTW -如果模拟比较器处于"运行状态"(更好的仍然是"R2R"运算放大  器)-则可以实现经典的硬件"电压峰值检测器"。     这证明非常出色 、因为     它通过高奈奎斯特采样率实现了对峰值电压的正确"捕获"、同时避免了对 ADC 施加的要求!   (以及哪个(仍然)- 无法 保证 捕获"绝对峰值电压"-因为您(仅)有一个'±11°窗口' - 以正弦波的'90°V_Peak '为中心-以实现 ≥98%的精度!    错误快速/强制到达-"11°峰值测量窗口"的"外部"!)

    还请注意、硬件峰值检测 器具有"内置"采样保持功能 -大大减少(即有可能消除) 先前建议的"仅 ADC "方法所强制的激进时序需求。

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

    您好 CB1_MOBILE

    感谢您提醒我们引脚-ve 限制。  

    我检查了一下、结果还可以。 直流偏移和交流电组合在3V 和0V 之间、并且处于可接受的范围内。

    我希望有一个独立函数可以执行频率和峰值电压计算。

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

    谢谢我的朋友-"帮助者"并不总是得到感谢-尤其是当他们(远离)供应商代理时。

    请注意、MCU 中有一些"保护结构"尝试"吸收"超出电压范围的情况。   这些元件很小-(不)用于"长期"电压吸收。   如果依赖这些(保护/ESD)元件、则必须始终限制电流、但经过大量调查发现、(偶尔)而非(持续)使用证明了这些引脚的"最佳"生存...

    对于您对"封装解决方案"(也称为"标准功能")的"希望"、该供应商已选择(不)"为您带来"自定义解决方案"的乐趣。   还应考虑您拥有的"在 MCU ADC 范围内投射您的解决方案(仅限)"。    在测量"频率"-您是否不会使用 MCU 的扩展定时器-证明(两者)更快且更容易?    (赦免-但海报所指的"解决方案"-请(不)始终-证明是最好的或甚至可行的... 解决方案。)  

    频率测量帮助程序:   

    如前文所述-使用"外部模拟比较器"可检测信号通过(高于或高于)预设跳闸点的通道。 (由简单的"2 R -分压器"确定)   当比较器的输出被馈送到 MCU 时-可能会生成一个"中断"和/或 MCU 计时器可能会"记录该事件的(接近)确切时间"。   然后-下一个(完全生成)比较器输出-可能与"捕获/记录"类似-并且这两者之间的值差异-如您所知-与频率相关(反比)。   (较大的定时器'delta'(差异)表示较低的频率)  对于此类频率测量功能、您(现在)是否同意使用 MCU 的定时器(或2个定时器)比 ADC 更胜一步?   

    除了可能有趣之外: 除非您能做到、"强制您的 ADC 在"精确已知的"时间点"进行测量-然后搜索/扫描(接近)相同的 ADC 值(这表明您(可能)在(接近)相同的(重复/跟踪波形点)进行测量 -我不知道您如何从 MCU 的低功耗 ADC 中"获取此类功能"!    很明显-上述"计时器方法"似乎是一种出色的解决方案。   您的“希望”(并经供应商批准) ADC 方法... 相反、当我的年轻员工"到达太远了"时、他们会充当"整洁的酷刑车"、超级聪明的员工!   (全天-每天...)   

    ADC 测量帮助程序:

    另一个建议的小型文件(single_end.c)遵循"V_Peak "测量的"十英尺规则"(10英尺内未出现)-这不是真的?   

    • 对于这种精确(时间点)模拟电压捕获而言、什么真的很重要?   
    • 您如何以输入正弦波的90°波形点为基准、"捕获"输入信号的峰值-此处哪一个被识别为"在±11°窗口中居中"?   

    在(或许)这些问题的答案中:

    • 您如何向(近)正弦波输入信号建议"同步您的 ADC "?   
    • 甚至可以实现这一点吗?   
    • 如果是、精度和精度(可重复性)的合理程度是多少?   

    您说、"没有提到前面建议的硬件、添加了"电压峰值检测器"-它被呈现为"极大地加速/放松/增强"(有多好!) -您对"V_Peak Detection、Capture & Eased Measurement"的需求。     添加此类硬件(尽管 MCU 包含"合理"运算放大器作为一项功能时不需要此类硬件)可显著简化 ADC 的测量、因为"完全消除了 ADC 采集的所有"时间限制"!   (即硬件"捕获峰值-然后"保持峰值"(在合理的持续时间内)。

    供应商的"不断扩展到任务列表"不可能包含此类"独立"功能、但我们可能会感到惊讶。   我在这里的目的是(希望)激发您的思考和考虑——通常超出了“总是和只”的限制范围... MCU 作为"整体解决方案!"    相反-"(包括) MCU 和选择硬件的分类组合"-通常情况下(如此处清楚地说明)-证明是最好的!   可重复使用的硬件在"最高容量应用程序"之外的所有应用程序中都保持了其应有的位置、并且(非常)这些应用程序中很少有人会到达这里...

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

    我看到了您添加硬件检测电路以帮助获取频率的建议。  

    我感谢您考虑简化获取频率的工作、而不是执行非常昂贵的算法、但是  

    看起来我一直在使用 ADC 方法、因为电路板已"标记"进行大规模部署。  :(

     不过还可以,我相信我将能够从一些参考文献中找到一些东西,例如 TIDA-01088。

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

    我的朋友-再次感谢您的回应和善良奖-始终很感激。

    虽然"标记为大规模部署"-这是否 意味着"及早而不是(远)后-上市"证明是至关重要的?   "压力"是否会变得巨大-随着周的过去-以及采用的"过于复杂"(根据我的经验)方法(始终/仅 MCU 的 ADC)-'面临过度挑战的边界?'   

    当"基本部署"是一个目标时、还需要考虑其他关键项目。   ARM Cortex MCU 组包括:M0、M0+、M3、M4 (此处所示)和 M7。   现在(两者) M0和 M0+器件实现(显著)成本降低!    (être 其'存在理由'!')   它们还采用尺寸更小的封装、可减小电路板尺寸、从而进一步降低成本。

    这种"广泛/战略思维"可能(再次)""更快、更轻松、更强"的方式实现设计目标"、这对于"整体部署"至关重要。   (此外、对于更"合理"(更低)的销售预测、"尽早成功地进入市场"可实现"最高利润率"、而那些"过早优化"(MCU 仅尝试)的(挣扎中)则会延迟(太频繁) (或从不)到达、并 大幅降低利润率、同时还会带来根深蒂固的竞争!