完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,你好,鲁宾,正如我在前一个帖子中已经指出的,我感觉到我定制的MCU上的相电流有困难。看来,PWM没有触发ADC在正确的时刻。在理论上(以及在实践中),当用PWM驱动源驱动电感性负载时,输出电流具有三角波的形式。因此,对于反馈控制,在其中间值即PWM信号的中间感测电流是重要的。由于PWM占空比为50%(应该是0A的电流)时没有得到预期的结果,所以我认为触发ADC的时间点是错误的。我在Simulink中为MCLV2建立了一个示例模型,它代表了我在自定义MCU上所做的工作。它由一个ADC模块、一个高速PWM模块、一个用于调整PWM行为的C函数调用模块和两个数字输出组成。我编译了模型,并在MPLAB X中打开了项目,在那里我稍微编辑了它,以便在其中一个调试LED上输出一个信号,以指示ADC何时被触发。这些文件都附在这篇文章上。然后我运行了项目,为ADC触发器设置了不同的设置,这个设置可以通过SEVTCMP值设置。我运行它的值从0%到100%的PWM周期值。对于每一个设置,我感觉到ADC触发器,PWM2H和PWM2L引脚与示波器。所有设置的结果总结在附加的GIF动画中。信道1上的变化边缘指示ADC触发时刻。(绿色是PWM2H,蓝色是PWM2L)现在你可以看到什么困扰我:我认为特殊事件触发器(SEVT)在时间上被抵消。我认为它在80%左右的行为是0%的设置(或者如果我感到困惑的话可能是100%)。如果你看我附上这篇文章的图14-66图14节,就更是如此。当触发器设置为0%时,ADC会在高周期中触发,如果设置为100%,则在低周期中触发。为什么代码生成使用SEVT来触发ADC而不是tiGX?使用SEVT差异是使用Trimx的行为吗?它不指定在数据表中使用SEVT的行为,所以我假设它应该与TRIGx的行为相同。在Simulink模型中,由于我的设置,是否使用SEVT?如果是这样,我错了什么?我真的希望能够像图14-63到14-67所示的数据表那样精确地设置触发时间。Simulink中是否有方法影响TRGDIV和/或TRGSTRT值,并使用TRIGx代替SEVT(如果导致不匹配)?莫里兹
|
|
相关推荐
5个回答
|
|
您好,Moritz,谢谢说明。旁注:PWM块触发参数触发器每个PWM周期只触发一次,而不是您上传的数据表中显示的两个。从提供的触发器输入(块输入或块gui)中,块相应地设置触发计数器(SEVT)和“在上升边上”或“在下降边上的拨号”位,以便在你所决定的位置得到扳机。因此,在PWM周期中,你可以很容易地在任何地方放置一个触发器。在PWM触发器和ADC中断之间切换:PWM触发器开始ADC采样和转换。在你的情况下,采样是在4个通道上并行进行的,并且需要33NS。然后在第四个采样值上依次进行转换。这4个通道的采样和转换总时间为4.45us,ADC在PWM触发后提供转换结果4.45us。当所有采样值被转换时,ADC中断发生。这个延迟(~5US)可以在你提供的插图上看到。(用动画gif很难测量)。所有的这些值都显示在ADC块的底部(参见块图示)。根据这些信息,如果需要的话,您可以进行补偿。采样时间是最重要的,所以电流设定应该是可以的。您可以将触发器移动343ns,以在触发器的准确位置结束采样。ADC被配置为匹配ADC关于最小转换时间的电气特性。(参见数据表)使用Trimx寄存器而不是SEVT应该提供相同的行为。鲁宾
|
|
|
|
你好,鲁宾,谢谢你的回复。所以我想我误解了我在看什么。当我编辑MCHP_ADC1_Inter..c文件以便用示波器切换LED时,我并没有查看采样开始的时间、采样停止和转换开始的时间,而是查看转换完成的时间?如果是这样,这是否意味着在采样和转换过程之后执行MCHPYADC1YBUTION.C文件中的代码?这意味着必须有另一个中断来告诉ADC启动整个采样和转换过程。这将是SEVTCMP值设置的中断。我现在得到它了吗?此外,我还能够测量理论ADC采样起始点与中断调用之间的延迟,中断调用是4,65秒,这足够接近我猜ADC块指示的4,46秒(?)莫里兹
|
|
|
|
你好,莫里茨,你在ADC采样和真实采样之间测量的德尔塔是200ns,大约是15个指令周期@70MIPS:70s6*210e-9。这可能是输入中断、切换上下文和切换引脚端口所花费的时间。在检测代码时可能使用特殊事件中断。由于在BuBSET中还没有可用的数据,所以需要手动为测试配置它。也许我们在下一个版本中添加了这样的“调试”工具。鲁宾
|
|
|
|
嗨,鲁宾,我不知道如何配置这样的中断,但我很高兴听到这些调试选项可能成为下一个版本中的一个特性:)我只需要再问一次,因为我认为我的问题还没有得到回答:MCHP_ADC1_Inter..c文件中的指令是在整个版本之后执行的吗?ADC的采样和转换过程?对不起,如果我没有从你的答复得到这一点。莫里兹
|
|
|
|
嗨,莫里兹,简短的回答是肯定的。ADC中断发生在上次ADC输入用当前设置采样之后。在dsPIC33EPxxMC上,有先进的特性允许在PWM周期内触发两次ADC采样&转换:并行采样n个输入(n=1,2或4),第一次触发得到n个采样&转换。N和第二TIG得到4个其他样本和转换。在这种配置中,您可以决定触发ADC中断,每个n个转换(块输出将提供n个标量值)或每个2n个转换(块输出将提供8个值)。这可能是有用的电机控制单分流算法,例如鲁宾。
|
|
|
|
只有小组成员才能发言,加入小组>>
5160 浏览 9 评论
1998 浏览 8 评论
1927 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3170 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2225 浏览 5 评论
727浏览 1评论
612浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
501浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
626浏览 0评论
524浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:04 , Processed in 1.235998 second(s), Total 85, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号