当前位置: 代码迷 >> WinCE >> 6410的otg寄存器怎么操作
  详细解决方案

6410的otg寄存器怎么操作

热度:77   发布时间:2016-04-28 13:14:47.0
6410的otg寄存器如何操作?
怎么关闭6410的otg功能,如何写寄存器?
static void InitializeOTGCLK(void)
{
  volatile S3C6410_SYSCON_REG *pSysConReg = (S3C6410_SYSCON_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_SYSCON, FALSE);
  volatile OTG_PHY_REG *pOtgPhyReg = (OTG_PHY_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_USBOTG_PHY, FALSE);

  pSysConReg->HCLK_GATE |= (1<<20);

  pSysConReg->OTHERS |= (1<<16);

  pOtgPhyReg->OPHYPWR = 0x0; // OTG block, & Analog bock in PHY2.0 power up, normal operation
   
  //pOtgPhyReg->OPHYCLK = 0x20; // Externel clock/oscillator, 48MHz reference clock for PLL
  pOtgPhyReg->OPHYCLK = 0x0; // External crystal, 48MHz reference clock for PLL
   
  pOtgPhyReg->ORSTCON = 0x1;
  Delay(100);  
  pOtgPhyReg->ORSTCON = 0x0;
  Delay(100); //10000

  pSysConReg->HCLK_GATE &= ~(1<<20);

}

上面是初始化,那怎么关闭呢?

------解决方案--------------------
pSysConReg->HCLK_GATE &= ~(1<<20); 这个不是关闭了吗
------解决方案--------------------
探讨
在前面已经连接了,这样直接关的话,会死机
那怎么先断掉前面的连接呢?

------解决方案--------------------
探讨
引用:
在前面已经连接了,这样直接关的话,会死机
那怎么先断掉前面的连接呢?

拔线,呵呵