大家好,我现在用ecap和ehrpwm两种方式输出方波信号,ecap可以输出,ehrpwm方式无法输出。
看到官方guide的:processors.wiki.ti.com/.../Linux_Core_PWM_User's_Guide
难道只能用ecap方式控制PWM么?还是ehrpwm也可以输出,我没有调对?
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.
大家好,我现在用ecap和ehrpwm两种方式输出方波信号,ecap可以输出,ehrpwm方式无法输出。
看到官方guide的:processors.wiki.ti.com/.../Linux_Core_PWM_User's_Guide
难道只能用ecap方式控制PWM么?还是ehrpwm也可以输出,我没有调对?
是可以用ehrpwm两种方式输出方波信号
不知道您是否按照这个link :http://processors.wiki.ti.com/index.php/Linux_Core_PWM_User%27s_Guide#eHRPWM的最后的的地方,在devicetree上修改了吗?
首先,EHRPWM是可以输出的,ECAP也是可以输出的。所以如果你的EHRPWM没有输出来,建议按照上面的guide再调试一下。
另外,解释一下原来那个里面的note意思,就是我们的eCAP既可以工作在capture mode捕获模式下,也可以工作在pwm模式下,作为单通道的pwm输出,在TRM的15.3.1.2 Features章节有描述:
• When not used in capture mode, the ECAP module can be configured as a single channel PWM output
这个是硬件上支持的特性。
但是从软件上来说,你目前使用的这个Linux SDK仅做了PWM模式的代码支持,没有capture的代码支持。如果要用capture mode,需要自己写driver,就是这么个意思。
您好,请问如何通过DMA方式控制PWM输出不固定占空比波形呢?我现在项目当中需要驱动ws2812,这个ws2812的原理是根据不同的占空比来表示0、1,然后组成3字节的RGB数据显示LED灯。
您好,请问如何通过DMA方式控制PWM输出不固定占空比波形呢?我现在项目当中需要驱动ws2812,这个ws2812的原理是根据不同的占空比来表示0、1,然后组成3字节的RGB数据显示LED灯。
我感觉你的意思实现起来比较简单,无非就是建立一个数组,然后数组里面有很多不同占空比的数据,把数组的相关位置的值付给pwm的占空比的寄存器,周期不变。
如果要求占空比,周期非常精确,也就是说实时性要求很高,建议使用4379的PRU来实现,更加简单实时,io翻转只需要5ns
有相关参考例程,通过PRU的eCap输出PWM,下载我们的SDK,在/SDK/example-applications/pru-icss-5.0.1/labs/lab_3/solution/PRU_HDQ_TempSensor0和1
您好,用TIMER可以么?TIMER里面有比较输出寄存器,也可以输出PWM波形,把数据送给这个比较输出寄存器,就可以实时的调节占空比了。我看网上STM32单片机就是用DMA方式给TIMER比较输出寄存器送数据来实现这个功能的。还有树莓派的例程也都用到了DMA。但另外一个TI工程师说DMA是用来做数据搬运的。
用TIMER当然也可以,其实eCap模块里面就包含一个time,用做PWM输出。
EDMA就是用做搬运数据,无非就是在某一块内存空间定义一个占空比数组,把这个数组的指针地址告诉EDMA数据源从这里开始,也就是数据源SRC,你还有告诉EDMA这些数据要去哪里,也就是目标地址DST,在这里的例子就是PWM的占空比的寄存器;你还有告诉EDMA每次触发,要传多少个数据等等一些配置。
EDMA一些介绍和配置可以在网上搜索
您好,我用2016-05版本的u-boot,内核是3.14.43,,我在/board/ti/am43xx/board.c里面就初始化了spi,然后编译u-boot,最后把MLO和u-boot.img拷贝到SD的/boot目录下,系统就起不来呢?
我这边想用pru控制输出pwm,有没有对应的例子供参考的?我的开发环境是am437x的idk板子,现在想用pru控制pwm输出,同时能够进行ecap的采样,需要实现两路。请问怎么操作?有没有相应的参考例程?