作者psw (ICK)
看板Electronics
标题[问题] 关於SPI的Register
时间Thu Dec 2 21:48:35 2010
各位先进好
我想请问这个function的运作
这个是SPI的reset
void spi_module_reset(void)
{
BIU *regBiuPtr = (BIU *) BIU_BASE;
BYTE tmp;
// Reset SPI
regBiuPtr->BiuArst |= ARST_SPI;
regBiuPtr->BiuArst &= ~ARST_SPI;
for (tmp = 0; tmp < 0x10; tmp++);
regBiuPtr->BiuArst |= ARST_SPI;
}
#define ARST_SPI 0X00040000
#define BIU_BASE (REGISTER_BASE + 0x00008000)
typedef struct{
volatile DWORD BiuArst; // 0x00
volatile DWORD BiuSrst; // 0x04
volatile DWORD BiuChid; // 0x08
volatile DWORD BIU_STRAP_CFG; // 0x0c
} BIU;
这是一个SPI的reset function 我想请问,
如果最後,regBiuPtr->BiuArst为0X00040000时,这代表在SPI的reset的Register为
0X00040000,使得SPI被reset吗?
但我在SPEC里郤找不到SPE的reset的Register.. = =
谢谢大家看完.. <(_ _)>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.195.4.173
1F:推 palapalaqoo:看起来是BiuArst的bit16为1时会reset 12/03 18:02
2F:→ palapalaqoo:说错了,是bit18 12/03 18:04
3F:→ palapalaqoo:动作是bit16先设1,再设0,再连续设16次1... 12/03 18:06
4F:→ palapalaqoo: bit18 (打错一次again= =) 12/03 18:07
5F:推 TroyLee:看起来你要找得不是 reset 的 register, 而是 reset 的bit 12/05 10:11