公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
sansheng
Level 1
Level 1
5 likes given 10 sign-ins First like received

你好,

我在配置EVADC的时候,在我使用软件触发的时候,如:

IfxEvadc_Adc_startQueue(&adcGroup[3], IfxEvadc_RequestSource_queue0);
IfxEvadc_Adc_startQueue(&adcGroup[3], IfxEvadc_RequestSource_queue1);

只有Queue0能够正常的进行转换,经过查阅手册发现是GxQxRx.EXTR 为0导致队列选用Refill之后不需要软件触发就能自己转换,但是我将它设置为1以后,调用一次

IfxEvadc_Adc_startQueue(&adcGroup[3], IfxEvadc_RequestSource_queue0);以后就会GxQxRx.EXTR自动变为0,导致无法使用同一个EVADC组的多个Queue来转换通道,而且使采样软件触发不可控,请问一下这种情况应该如何解决呢

1 解答
wangyj
Level 2
Level 2
5 replies posted 10 sign-ins 5 sign-ins

你好sansheng:

你进行软件触发后,假如先触发queue0,那么queue0的队列寄存器中外部触发EXTR变为0后就不会再受软件触发控制了,有有效地入口便开始自动转换(使用refill);如果之后触发queue1,而且queue1的优先级与queue0相同,则queue1的转换就会被abort。

可以在软件触发后将queue对应的EXTR重新设置为1,再软件触发queue1;或者不使用refill,清除queue后添加想要转换的channel。

在原帖中查看解决方案

3 回复数
wangyj
Level 2
Level 2
5 replies posted 10 sign-ins 5 sign-ins

我也遇到了这个问题

0 点赞
Kunqiao_L
Moderator
Moderator
Moderator
First comment on blog First like given 25 likes received

你好sansheng,

首先你这个寄存器GxQxRx.EXTR是哪个?是不是写错名字了。

其次。同一个group里面不同的queue谁进行采样是通过arbiter进行选择的,他们会根据不同的priority选择最高的queue进行ADC采样。如果queue0, queue1都是一样的priority,而且又是refill, 有可能queue1永远不会有机会开始采样。

如果你不开启refill,当你使用IfxEvadc_Adc_startQueue调用两个queue后, 那queue0,queue1应该都可以依次开始采样, 当然也只是一次性,不会重复采样。

具体请参考user manual 32.6 章节

wangyj
Level 2
Level 2
5 replies posted 10 sign-ins 5 sign-ins

你好sansheng:

你进行软件触发后,假如先触发queue0,那么queue0的队列寄存器中外部触发EXTR变为0后就不会再受软件触发控制了,有有效地入口便开始自动转换(使用refill);如果之后触发queue1,而且queue1的优先级与queue0相同,则queue1的转换就会被abort。

可以在软件触发后将queue对应的EXTR重新设置为1,再软件触发queue1;或者不使用refill,清除queue后添加想要转换的channel。