X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=inline;f=usb%2FSrc%2Fusb.c;h=f7b92a66ebb19829fd3c80d44b0adb09bad71e75;hb=HEAD;hp=ffac01d0e768ac94c08786519b0dc0bd52d95d6e;hpb=985bd34a1d699d8870cd4be9e170bcb80dadcf3a;p=home-hw.git diff --git a/usb/Src/usb.c b/usb/Src/usb.c index ffac01d..f7b92a6 100644 --- a/usb/Src/usb.c +++ b/usb/Src/usb.c @@ -6,6 +6,11 @@ #include +// Layout of packet memory +#define PMA_EP00 0x18 +#define PMA_EP80 0x58 +#define PMA_USER 0x98 + void usb_init(struct usb *usb, PCD_HandleTypeDef *hpcd) { memset(usb, 0, sizeof(*usb)); @@ -17,8 +22,8 @@ void usb_init(struct usb *usb, PCD_HandleTypeDef *hpcd) void usb_start(struct usb *usb) { - HAL_PCDEx_PMAConfig(usb->hpcd, 0x00, PCD_SNG_BUF, 0x18); - HAL_PCDEx_PMAConfig(usb->hpcd, 0x80, PCD_SNG_BUF, 0x58); + HAL_PCDEx_PMAConfig(usb->hpcd, 0x00, PCD_SNG_BUF, PMA_EP00); + HAL_PCDEx_PMAConfig(usb->hpcd, 0x80, PCD_SNG_BUF, PMA_EP80); HAL_PCD_Start(usb->hpcd); } @@ -223,6 +228,7 @@ static void dev_set_configuration(struct usb *usb, struct setup_request *setup) { usb->config = cfg; usb->state = USB_STATE_CONFIGURED; + usb->last_pma_alloc = PMA_USER; usb_dev_configure(usb); } usb_ctl_send_status(usb); @@ -239,6 +245,7 @@ static void dev_set_configuration(struct usb *usb, struct setup_request *setup) { usb_dev_unconfigure(usb); usb->config = cfg; + usb->last_pma_alloc = PMA_USER; usb_dev_configure(usb); } usb_ctl_send_status(usb);