Part Number:TMS320C6748
使用EDMA时,配置paRam参数写不进寄存器,连接仿真器查看具体值时,发现是一堆随机变化的数值。在排查EDMACC0寄存器的同时,发现OSCEL寄存器也无法写,初步判断这是同一个原因导致的。
确认过PSC已经打开,请问什么原因会导致这种情况发生?跟芯片上电时序有没有关系,或者芯片内部有没有对某些寄存器地址写保护的开关?我翻遍了手册,都没有找到相关说明,请教有丰富经验的DSP工程师指点迷津!
Shine:
请问您运行的是TI的例程吗?板子是自己的还是TI的EVM板? 您说的OSCEL是下面这个28.3.19 Oscillator Register (OSC)寄存器吗?如果是的话,这个寄存器需要先写kick寄存器解锁。 https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_DSP_spruh77c.pdf
,
mingjun le:
不好意思写错了,是OCSEL寄存器(0x01C11104),用于指定输出时钟绑定到OBSCLK引脚的寄存器。
,
Shine:
要先写kick寄存器解锁,请看下面的帖子。https://e2e.ti.com/support/processors-group/processors/f/processors-forum/851390/omap-l138-pll0arm-ocsel-is-not-changed
,
mingjun le:
非常感谢您的答疑解惑,按照这个帖子的指点,OCSEL可以设置并通过OBSCLK引脚观测到了时钟。
但是EDMACC0的问题依然存在,无法配置,请问这是什么原因?
,
Shine:
板子是自己的还是TI的EVM板?您跑一下TI SDK里的例程试试,有没有同样的问题?
,
mingjun le:
自己的板子,跑了例程,一样无法配置,EVM板子上同样的程序就正常运行。令我费解的是,我做的这块板子其他外设可以正常配置并工作(Uart、Mcbsp、EMIFA和SPI),就EDMA不行。
,
Shine:
如果在EVM板上能运行的话,说明代码的配置应该是对的。
建议检查一下您板子的硬件,看一下供电,时钟,复位,电源纹波等是否都稳定输出。
,
mingjun le:
可是我的硬件上其他外设可以正常工作,应该供电和时钟没有啥问题吧,EDMA无法正常工作,是不是需要依赖某个特别的设置?
,
Shine:
您看一下GEL文件是否和EVM板的gel文件初始化差不多吗?一般PSC使能了的话,应该就能工作了。