eldarkg / emdr1986x-std-per-lib

Milandr MCU 1986x Standard Peripherals Library. Mirror:

Home Page:https://code.launchpad.net/~eldar/emdr1986x-std-per-lib/+git/emdr1986x-std-per-lib

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

assert_param triggered in USB module

vitkorob opened this issue · comments

When I do implementation of assert_failed function and use #define USE_ASSERT_INFO 2, I observed that assert statement occurred in file MDR32F9Qx_usb_device.c line 740

static void USB_EP_SetReady(USB_EP_TypeDef EPx, uint32_t val)
{
  ...
  /* Clear pending bits */
  USB_SetSIS(USB_SIS_Msk);
  ...
}

Function USB_SetSIS uses the IS_USB_SIS_VALUE(...) macro with argument USB_SIS_Msk. Need fix IS_USB_SIS_VALUE macro.

@vitkorob Please check bug fix

Now code is good. Thank you! But I still have triggered assert_param.

USB_Result USB_DeviceDispatchEvent(void)
{
  ...
  /* Get masked interrupt flags */
  USB_IT = USB_GetSIS();
  ...
  /* Clear pending bits, except for SCTDONE */
  USB_SetSIS(USB_IT & (~USB_SIS_SCTDONE_Set));
  ...
}

I think this time it's hardware problem, because in the manual MDR_USB->SIS has 5 first significant bits, but it can return 6th bit.

I will write letter to technical support and I'll keep you informed.

The first message:

От кого: Отдел технической поддержки ЦП ИС АО ПКК Миландр support@milandr.ru
Дата: 6 июля 2016 г., 12:42
Тема: Запрос N [], Re: 1986BE92QI (aka MDR32F9Q2I) поведение MDR_USB->SIS регистра
Кому: Victor Korobkovsky

Здравствуйте Виктор Андреевич,

Бит 5 (считая с 0) в регистре MDR_USB->SIS устанавливается в 1 при включении блока USB. Его необходимо игнорировать.
В следующую версию спецификации будут внесены соответствующие изменения.

С наилучшими пожеланиями,
Отдел технической поддержки ЦП ИС АО «ПКК Миландр»
E-mail: support@milandr.ru
Skype: support.milandr
Телефон: +7(495)221-13-55

The second message:

От кого: Отдел технической поддержки ЦП ИС АО ПКК Миландр support@milandr.ru
Дата: 11 июля 2016 г., 10:52
Тема: Запрос N [], Re: 1986BE92QI (aka MDR32F9Q2I) поведение MDR_USB->SIS регистра
Кому: Victor Korobkovsky

Здравствуйте Виктор Андреевич,

Бит 5 устанавливается в "1" при вклюении блока USB в тех микроконтроллерах, в которых есть такой же блок USB. Блок USB одинаковый в 1986ВЕ1Т, 1986ВЕ9х, 1901ВЦ1Т.

С наилучшими пожеланиями,
Отдел технической поддержки ЦП ИС АО «ПКК Миландр»
E-mail: support@milandr.ru
Skype: support.milandr
Телефон: +7(495)221-13-55

@vitkorob Please test.

От кого: Отдел технической поддержки ЦП ИС АО ПКК Миландр support@milandr.ru
Дата: 12 июля 2016 г., 11:03
Тема: Запрос N [], Re: 1986BE92QI (aka MDR32F9Q2I) поведение MDR_USB->SIS регистра
Кому: Victor Korobkovsky

Здравствуйте Виктор Андреевич,

Да, 1986ВЕ3 это тоже касается, там такой же USB блок.

С наилучшими пожеланиями,
Отдел технической поддержки ЦП ИС АО «ПКК Миландр»
E-mail: support@milandr.ru
Skype: support.milandr
Телефон: +7(495)221-13-55