il-2 (24.02.2015 09:00 - 09:23, просмотров: 647) ответил LightElf на Я никогда не пользовал либы от ST, бо интереснее ловить свои баги, чем чужие. Отличия у USB контроллера F042 от F103 небольшие: отличается разрядность доступа к USB RAM, появился встроенный резистор pull-up и тактирование надо по-другому
Я так понял, что ты вживую поработал с F042 серией? Ответь еще пожалуйста на такой вопросик: Для F103 была выделена линия контроллера внешних прерываний EXTI_18(USB_Wakeup). Соответственно можно было при входе в USB Suspend переводить МК в Stop, и пробуждаться по асинхронному прерыванию. В F042 это не работает, и я не могу понять - почему. В даташите на F0x2 серию есть упоминание о том, что линия EXTI_18 используется как USB_Wakeup. Однако в описаниях регистров контроллера EXTI ее нет. Не показывает ее и Кейловский отладчик. Программный поллинг - тоже не работает. Создается впечатление - что ее в МК нет. Что за х.., как быть? Получается что Stop использовать нельзя, только обычный Sleep??? Или городить внешний отвод с линии DP/DM???
... Хе как говорится, стоит сформулировать вопрос, как тут-же на него находится ответ:
12.2 Extended interrupts and events controller (EXTI)
...
The EXTI allows the management of up to 32 external/internal event line (23 external event lines and 9 internal event lines).
The active edge of each external interrupt line can be chosen independently, whilst for internal interrupt the active edge is always the rising one. An interrupt could be left pending: in case of an external one, a status register is instantiated and indicates the source of the interrupt; an event is always a simple pulse and it’s used for triggering the core Wake-up (e.g. Cortex-M0 RXEV pin). For internal interrupts, the pending status is assured by the generating IP, so no need for a specific flag. Each input line can be masked independently for interrupt or event generation, in addition the internal lines are sampled only in STOP mode.