作者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