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.

AM335x的Control Module寄存器不能写,只能读的问题,求救!!!

Other Parts Discussed in Thread: AM3358

使用AM3358进行开发,在进行pin mux操作时,

意外发现,我的板子的AM3358芯片的Control Module寄存器无法写入,从而导致无法正常操作芯片的管脚输入和输出。

开机复位时Control Module的寄存器,也与TI官网手册的复位值不一样,

读取Control Module的device_id等寄存器值正确,应该说明读取Control Module寄存器的值是正确的。

下图为读取的寄存器值。

从上图可以看出,地址0x44E10600是Control Module中device_id的地址,其值读取出来的是0x2B94402E。

与下图手册中对device_id的描述是一致的。

对Control Module寄存器写的示例代码如下所示:

HWREG(SOC_CONTROL_REGS + CONTROL_CONF_UART_RXD(0)) = 0x0000001F;

HWREG(SOC_CONTROL_REGS + CONTROL_CONF_UART_TXD(0)) = 0x0000001F;

HWREG(SOC_CONTROL_REGS + CONTROL_CONF_UART_RXD(1)) = 0x00000030;

HWREG(SOC_CONTROL_REGS + CONTROL_CONF_UART_TXD(1)) = 0x00000010;

或者如下所示:


*((volatile unsigned int *)0x44E10970) = 0x0000001F;

*((volatile unsigned int *)0x44E10974) = 0x0000001F;


*((volatile unsigned int *)0x44E10980) = 0x00000030;

*((volatile unsigned int *)0x44E10984) = 0x00000010;

但是各寄存器的结果总是如下图所示,没有变化。在掉电后,开机,各寄存器值也是如下图所示。

烦请各位路过的英雄豪杰给指点指点,不胜感激。