Example #1
0
void board_init(void)
{
    /* Raise core clock to 204MHz */
    CGU_Init(204000000);
    /* Set up USB0 clock */
    /* Disable PLL first */
    CGU_EnableEntity(CGU_CLKSRC_PLL0, DISABLE);

    /* the usb core require output clock = 480MHz */
    if (CGU_SetPLL0() != CGU_ERROR_SUCCESS) {
        while (1);
    }

    CGU_EntityConnect(CGU_CLKSRC_XTAL_OSC, CGU_CLKSRC_PLL0);
    /* Enable PLL after all setting is done */
    CGU_EnableEntity(CGU_CLKSRC_PLL0, ENABLE);
    /* Turn on the USB0PHY */
    LPC_CREG->CREG0 &= ~(1 << 5);
}
Example #2
0
/**********************************************************************
 ** Function name:
 **
 ** Description:
 **
 ** Parameters:
 **
 ** Returned value:
 **********************************************************************/
void Hid_init (void)
{
  USBD_API_INIT_PARAM_T usb_param;
  USB_CORE_DESCS_T desc;
	ErrorCode_t ret;
  USB_INTERFACE_DESCRIPTOR* pIntfDesc;
 volatile uint32_t CoreM4Freq;

//	SystemInit();
//	CGU_Init();
	CoreM4Freq = CGU_GetPCLKFrequency(CGU_PERIPHERAL_M3CORE);
	/* Disable PLL first */
	CGU_EnableEntity(CGU_CLKSRC_PLL0, DISABLE);
	/* the usb core require output clock = 480MHz */
	if(CGU_SetPLL0() != CGU_ERROR_SUCCESS)
		while(1);
	CGU_EntityConnect(CGU_CLKSRC_PLL0, CGU_CLKSRC_PLL0);
	/* Enable PLL after all setting is done */
	CGU_EnableEntity(CGU_CLKSRC_PLL0, ENABLE);
	/* Re-Update the clock freq */
	CGU_UpdateClock();
	/* Distribute to USB0 base clock */
	CGU_EntityConnect(CGU_CLKSRC_PLL0, CGU_BASE_USB0);

	/* Generate interrupt @ 1000 Hz */
//	SysTick_Config(CGU_GetPCLKFrequency(CGU_PERIPHERAL_M3CORE)/1000);

  /* initilize call back structures */
  memset((void*)&usb_param, 0, sizeof(USBD_API_INIT_PARAM_T));

  usb_param.usb_reg_base = LPC_USB0_BASE;
  usb_param.max_num_ep = 6;

  usb_param.mem_base = 0x20004000;
  usb_param.mem_size = 0x2000;
  usb_param.USB_Configure_Event1 = USB_Configure_Event1;

  /* for eagle/raptor the local SRAM is not accesable to USB
  * so copy the descriptors to USB accessable memory
  */
  copy_descriptors(&desc, usb_param.mem_base + usb_param.mem_size);

	/* Turn on the phy */
	LPC_CREG->CREG0 &= ~(1<<5);

  /* USB Initialization */
  ret = USBD_API->hw->Init(&hUsb, &desc, &usb_param);
  if (ret == LPC_OK) {

    pIntfDesc = (USB_INTERFACE_DESCRIPTOR*)((uint32_t)desc.high_speed_desc + USB_CONFIGUARTION_DESC_SIZE);
    ret = usb_hid_init(hUsb, pIntfDesc, &usb_param.mem_base, &usb_param.mem_size);
    if (ret != LPC_OK)
      vCatchError(0); //"usb_hid_init error!!!"


    if (ret == LPC_OK) {
      NVIC_EnableIRQ(USB0_IRQn); //  enable USB0 interrrupts
      /* now connect */
      USBD_API->hw->Connect(hUsb, 1);
    }

  }
  else {
    vCatchError(1); //"\r\nhwUSB_Init error!!!"
  }
#if 0
	while (1)
	{
		u32Milliseconds = 100;

		/* Wait... */
		while(u32Milliseconds);

	}
#endif
}