目前我们想使用F280049M(主频100M)做高速脉冲计数器。我们产品的规格书是做到4路高速(200kHz)脉冲同时计数,4路pwm(200kHz)同时输出。
1.当我们使用eCap模块作为我们的高速脉冲计数器时:
(1). 如果F280049M仅仅跑eCap功能的话,可以轻松达到4路高速脉冲计数器–4路200kHz同时计数
(2). 如果跑eCap的同时跑4路pwm 200kHz输出 和 SPI 2M 的时钟速速率通信,那么4路eCap中只有2路可以抓到正确的脉冲数,其他2路不能。
2.目前我们的pwm输出使用中断进行计数,每15个脉冲中断一次,4路200kHz同时输出的话,会频繁的进入中断。
同时eCap是接收到一次上升沿就进入中断,4路200kHz同时接收也会频繁进入中断。
SPI的通信目前是使用2M的时钟速率,每接收1byte的数据就会进入中断。
这三个中断优先级pwm的最高,eCap的中间,SPI最低。我们推测是因为pwm的中断优先级比eCap的中断高,所以eCap的中断被抢占,因此脉冲计数不准
3.如果我们使用外部中断XINT的模块,外部中断1–XINT1和外部中断2–XINT2这两个比PWM的优先级高,但是外部中断3–XINT3和外部中断4–XINT4比PWM和SPI的中断低,所以只有XINT1/XINT2计数准确,其他的外部中断不准。
对于这样的情况有什么建议吗?
Young Hu:200KHz的脉冲输入和200KHz的PWM有什么对应关系么?
目前我们想使用F280049M(主频100M)做高速脉冲计数器。我们产品的规格书是做到4路高速(200kHz)脉冲同时计数,4路pwm(200kHz)同时输出。
1.当我们使用eCap模块作为我们的高速脉冲计数器时:
(1). 如果F280049M仅仅跑eCap功能的话,可以轻松达到4路高速脉冲计数器–4路200kHz同时计数
(2). 如果跑eCap的同时跑4路pwm 200kHz输出 和 SPI 2M 的时钟速速率通信,那么4路eCap中只有2路可以抓到正确的脉冲数,其他2路不能。
2.目前我们的pwm输出使用中断进行计数,每15个脉冲中断一次,4路200kHz同时输出的话,会频繁的进入中断。
同时eCap是接收到一次上升沿就进入中断,4路200kHz同时接收也会频繁进入中断。
SPI的通信目前是使用2M的时钟速率,每接收1byte的数据就会进入中断。
这三个中断优先级pwm的最高,eCap的中间,SPI最低。我们推测是因为pwm的中断优先级比eCap的中断高,所以eCap的中断被抢占,因此脉冲计数不准
3.如果我们使用外部中断XINT的模块,外部中断1–XINT1和外部中断2–XINT2这两个比PWM的优先级高,但是外部中断3–XINT3和外部中断4–XINT4比PWM和SPI的中断低,所以只有XINT1/XINT2计数准确,其他的外部中断不准。
对于这样的情况有什么建议吗?
mangui zhang:这个中断太多了肯定会出问题尤其是四路相近的时候
SPI的通信不是很重要会主机在得不到响应是重复发送的话可以将SPI用作查询方式
目前我们想使用F280049M(主频100M)做高速脉冲计数器。我们产品的规格书是做到4路高速(200kHz)脉冲同时计数,4路pwm(200kHz)同时输出。
1.当我们使用eCap模块作为我们的高速脉冲计数器时:
(1). 如果F280049M仅仅跑eCap功能的话,可以轻松达到4路高速脉冲计数器–4路200kHz同时计数
(2). 如果跑eCap的同时跑4路pwm 200kHz输出 和 SPI 2M 的时钟速速率通信,那么4路eCap中只有2路可以抓到正确的脉冲数,其他2路不能。
2.目前我们的pwm输出使用中断进行计数,每15个脉冲中断一次,4路200kHz同时输出的话,会频繁的进入中断。
同时eCap是接收到一次上升沿就进入中断,4路200kHz同时接收也会频繁进入中断。
SPI的通信目前是使用2M的时钟速率,每接收1byte的数据就会进入中断。
这三个中断优先级pwm的最高,eCap的中间,SPI最低。我们推测是因为pwm的中断优先级比eCap的中断高,所以eCap的中断被抢占,因此脉冲计数不准
3.如果我们使用外部中断XINT的模块,外部中断1–XINT1和外部中断2–XINT2这两个比PWM的优先级高,但是外部中断3–XINT3和外部中断4–XINT4比PWM和SPI的中断低,所以只有XINT1/XINT2计数准确,其他的外部中断不准。
对于这样的情况有什么建议吗?
qingzhu wei:
回复 Young Hu:
输入和输出没有关系,只不过它们都会使用中断的方式计数,因此频率很高的时候就会频繁进入中断。这样DSP的性能就会下降,目前我们正在想办法不让他们频繁进入中断。请问有什么建议吗?
目前我们想使用F280049M(主频100M)做高速脉冲计数器。我们产品的规格书是做到4路高速(200kHz)脉冲同时计数,4路pwm(200kHz)同时输出。
1.当我们使用eCap模块作为我们的高速脉冲计数器时:
(1). 如果F280049M仅仅跑eCap功能的话,可以轻松达到4路高速脉冲计数器–4路200kHz同时计数
(2). 如果跑eCap的同时跑4路pwm 200kHz输出 和 SPI 2M 的时钟速速率通信,那么4路eCap中只有2路可以抓到正确的脉冲数,其他2路不能。
2.目前我们的pwm输出使用中断进行计数,每15个脉冲中断一次,4路200kHz同时输出的话,会频繁的进入中断。
同时eCap是接收到一次上升沿就进入中断,4路200kHz同时接收也会频繁进入中断。
SPI的通信目前是使用2M的时钟速率,每接收1byte的数据就会进入中断。
这三个中断优先级pwm的最高,eCap的中间,SPI最低。我们推测是因为pwm的中断优先级比eCap的中断高,所以eCap的中断被抢占,因此脉冲计数不准
3.如果我们使用外部中断XINT的模块,外部中断1–XINT1和外部中断2–XINT2这两个比PWM的优先级高,但是外部中断3–XINT3和外部中断4–XINT4比PWM和SPI的中断低,所以只有XINT1/XINT2计数准确,其他的外部中断不准。
对于这样的情况有什么建议吗?
qingzhu wei:
回复 mangui zhang:
产品作为从SPI设备,我们也正在想办法使用DMA的方式,这样就可以减少CPU参与传输的。
目前我们想使用F280049M(主频100M)做高速脉冲计数器。我们产品的规格书是做到4路高速(200kHz)脉冲同时计数,4路pwm(200kHz)同时输出。
1.当我们使用eCap模块作为我们的高速脉冲计数器时:
(1). 如果F280049M仅仅跑eCap功能的话,可以轻松达到4路高速脉冲计数器–4路200kHz同时计数
(2). 如果跑eCap的同时跑4路pwm 200kHz输出 和 SPI 2M 的时钟速速率通信,那么4路eCap中只有2路可以抓到正确的脉冲数,其他2路不能。
2.目前我们的pwm输出使用中断进行计数,每15个脉冲中断一次,4路200kHz同时输出的话,会频繁的进入中断。
同时eCap是接收到一次上升沿就进入中断,4路200kHz同时接收也会频繁进入中断。
SPI的通信目前是使用2M的时钟速率,每接收1byte的数据就会进入中断。
这三个中断优先级pwm的最高,eCap的中间,SPI最低。我们推测是因为pwm的中断优先级比eCap的中断高,所以eCap的中断被抢占,因此脉冲计数不准
3.如果我们使用外部中断XINT的模块,外部中断1–XINT1和外部中断2–XINT2这两个比PWM的优先级高,但是外部中断3–XINT3和外部中断4–XINT4比PWM和SPI的中断低,所以只有XINT1/XINT2计数准确,其他的外部中断不准。
对于这样的情况有什么建议吗?
qingzhu wei:
回复 mangui zhang:
我们的产品是做为SPI的从设备,我们目前还不会重复发送。我们正在想办法使用DMA的方式,这样就可以减少CPU参与传输。
目前我们想使用F280049M(主频100M)做高速脉冲计数器。我们产品的规格书是做到4路高速(200kHz)脉冲同时计数,4路pwm(200kHz)同时输出。
1.当我们使用eCap模块作为我们的高速脉冲计数器时:
(1). 如果F280049M仅仅跑eCap功能的话,可以轻松达到4路高速脉冲计数器–4路200kHz同时计数
(2). 如果跑eCap的同时跑4路pwm 200kHz输出 和 SPI 2M 的时钟速速率通信,那么4路eCap中只有2路可以抓到正确的脉冲数,其他2路不能。
2.目前我们的pwm输出使用中断进行计数,每15个脉冲中断一次,4路200kHz同时输出的话,会频繁的进入中断。
同时eCap是接收到一次上升沿就进入中断,4路200kHz同时接收也会频繁进入中断。
SPI的通信目前是使用2M的时钟速率,每接收1byte的数据就会进入中断。
这三个中断优先级pwm的最高,eCap的中间,SPI最低。我们推测是因为pwm的中断优先级比eCap的中断高,所以eCap的中断被抢占,因此脉冲计数不准
3.如果我们使用外部中断XINT的模块,外部中断1–XINT1和外部中断2–XINT2这两个比PWM的优先级高,但是外部中断3–XINT3和外部中断4–XINT4比PWM和SPI的中断低,所以只有XINT1/XINT2计数准确,其他的外部中断不准。
对于这样的情况有什么建议吗?
10#:既然使用了F280049,建议可以利用它片上的CLA来帮助中断的处理。
目前我们想使用F280049M(主频100M)做高速脉冲计数器。我们产品的规格书是做到4路高速(200kHz)脉冲同时计数,4路pwm(200kHz)同时输出。
1.当我们使用eCap模块作为我们的高速脉冲计数器时:
(1). 如果F280049M仅仅跑eCap功能的话,可以轻松达到4路高速脉冲计数器–4路200kHz同时计数
(2). 如果跑eCap的同时跑4路pwm 200kHz输出 和 SPI 2M 的时钟速速率通信,那么4路eCap中只有2路可以抓到正确的脉冲数,其他2路不能。
2.目前我们的pwm输出使用中断进行计数,每15个脉冲中断一次,4路200kHz同时输出的话,会频繁的进入中断。
同时eCap是接收到一次上升沿就进入中断,4路200kHz同时接收也会频繁进入中断。
SPI的通信目前是使用2M的时钟速率,每接收1byte的数据就会进入中断。
这三个中断优先级pwm的最高,eCap的中间,SPI最低。我们推测是因为pwm的中断优先级比eCap的中断高,所以eCap的中断被抢占,因此脉冲计数不准
3.如果我们使用外部中断XINT的模块,外部中断1–XINT1和外部中断2–XINT2这两个比PWM的优先级高,但是外部中断3–XINT3和外部中断4–XINT4比PWM和SPI的中断低,所以只有XINT1/XINT2计数准确,其他的外部中断不准。
对于这样的情况有什么建议吗?
qingzhu wei:
回复 10#:
我們嘗試了CLA的機制,每一個路的PWM觸發一個cla的任務,當多路pwm同時跑起來的時候,效果差很多。如果只是一路pwm的話,看起來還行。所以CLA的機制感覺不太給力
目前我们想使用F280049M(主频100M)做高速脉冲计数器。我们产品的规格书是做到4路高速(200kHz)脉冲同时计数,4路pwm(200kHz)同时输出。
1.当我们使用eCap模块作为我们的高速脉冲计数器时:
(1). 如果F280049M仅仅跑eCap功能的话,可以轻松达到4路高速脉冲计数器–4路200kHz同时计数
(2). 如果跑eCap的同时跑4路pwm 200kHz输出 和 SPI 2M 的时钟速速率通信,那么4路eCap中只有2路可以抓到正确的脉冲数,其他2路不能。
2.目前我们的pwm输出使用中断进行计数,每15个脉冲中断一次,4路200kHz同时输出的话,会频繁的进入中断。
同时eCap是接收到一次上升沿就进入中断,4路200kHz同时接收也会频繁进入中断。
SPI的通信目前是使用2M的时钟速率,每接收1byte的数据就会进入中断。
这三个中断优先级pwm的最高,eCap的中间,SPI最低。我们推测是因为pwm的中断优先级比eCap的中断高,所以eCap的中断被抢占,因此脉冲计数不准
3.如果我们使用外部中断XINT的模块,外部中断1–XINT1和外部中断2–XINT2这两个比PWM的优先级高,但是外部中断3–XINT3和外部中断4–XINT4比PWM和SPI的中断低,所以只有XINT1/XINT2计数准确,其他的外部中断不准。
对于这样的情况有什么建议吗?
qingzhu wei:
回复 qingzhu wei:
目前把SPI的FIFO的LEVEL值,设成1,这样每次接收1Byte都进一次中断,看起来有提升了。然后把eCap换成eQep功能,这样就不用频繁进去中断了。目前可以达到6ePwm+2Qep+2eCap+spi同时使用,不会出现问题。