реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> STM32 проблема: запись в EEPROM и USB
Паф
сообщение Jun 4 2013, 12:28
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 21-02-08
Из: Тула
Пользователь №: 35 244



Добрый день!

МК STM32L152, IAR6.5
Работаю с EEPROM вроде бы правильно: функция записи в EEPROM, таблица векторов прерываний и обработчик критического прерывания в RAM(ну и вызываемые функции соответственно тоже). Перед записью в EEPROM запрещаю прерывания кроме критического. Работает без проблем. Осциллографом контролирую работу критического прерывания.
Затем подключаю STM32F10x, STM32L1xx and STM32F3xx USB-FS-Device Driver Virtual COM port. Вижу, что программа залипает на время доступа к EEPROM(критическое прерывание не вызывается). USB прерывания запрещаю перед записью в EEPROM - проверил. Никакой передачи данных по VCP со стороны хоста и МК не делаю. Т.е. кто-то пытается доступиться до FLASH, если я правильно понимаю.
Кто-нибудь сталкивался с подобным поведением или что-то я делаю не так? Спасибо.
Go to the top of the page
 
+Quote Post
Паф
сообщение Jun 6 2013, 07:38
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 21-02-08
Из: Тула
Пользователь №: 35 244



Была проблема с запрещением Suspend/Resume.
Я неправильно запрещал Suspend в usb_pwr.с:
Код
__IO bool fSuspendEnabled = FALSE;  /* true when suspend is possible */


Правильно делать так:
Код
STM32_USB-FS-Device_Lib_V4.0.0/Projects/Virtual_COM_Port/inc/usb_conf.h

/* IMR_MSK */
/* mask defining which events has to be handled */
/* by the device application software */
// #define IMR_MSK (CNTR_CTRM  | CNTR_WKUPM | CNTR_SUSPM | CNTR_ERRM  | CNTR_SOFM \
//                | CNTR_ESOFM | CNTR_RESETM )

// Disable Suspend/Resume response completely
#define IMR_MSK (CNTR_CTRM  | CNTR_WKUPM | CNTR_ERRM  | CNTR_SOFM | CNTR_RESETM )


Работать стало как задумано. Осталось понять взаимосвязь..
Go to the top of the page
 
+Quote Post
igorle
сообщение Oct 31 2013, 20:04
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753



Спасибо. Информация мне очень помогла. А откуда пришла идея менять IMR_MSK?
Go to the top of the page
 
+Quote Post
rat
сообщение Nov 1 2013, 02:55
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 497
Регистрация: 9-06-05
Из: Новосибирск
Пользователь №: 5 852



Цитата(Паф @ Jun 4 2013, 19:28) *
Добрый день!

МК STM32L152, IAR6.5
Работаю с EEPROM вроде бы правильно: функция записи в EEPROM, таблица векторов прерываний и обработчик критического прерывания в RAM(ну и вызываемые функции соответственно тоже). Перед записью в EEPROM запрещаю прерывания кроме критического. Работает без проблем. Осциллографом контролирую работу критического прерывания.
Затем подключаю STM32F10x, STM32L1xx and STM32F3xx USB-FS-Device Driver Virtual COM port. Вижу, что программа залипает на время доступа к EEPROM(критическое прерывание не вызывается). USB прерывания запрещаю перед записью в EEPROM - проверил. Никакой передачи данных по VCP со стороны хоста и МК не делаю. Т.е. кто-то пытается доступиться до FLASH, если я правильно понимаю.
Кто-нибудь сталкивался с подобным поведением или что-то я делаю не так? Спасибо.


Не подскажете работающий пример для STM32 USB?
Go to the top of the page
 
+Quote Post
Паф
сообщение Nov 1 2013, 06:19
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 21-02-08
Из: Тула
Пользователь №: 35 244



Цитата(igorle @ Nov 1 2013, 00:04) *
Спасибо. Информация мне очень помогла. А откуда пришла идея менять IMR_MSK?

Идею подсказали на форуме поддержки ST. Могу поискать линк.

Цитата(rat @ Nov 1 2013, 06:55) *
Не подскажете работающий пример для STM32 USB?

STM32_USB-FS-Device_Lib_V4.0.0
Go to the top of the page
 
+Quote Post
rat
сообщение Nov 1 2013, 09:22
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 497
Регистрация: 9-06-05
Из: Новосибирск
Пользователь №: 5 852



Цитата(Паф @ Nov 1 2013, 13:19) *
Идею подсказали на форуме поддержки ST. Могу поискать линк.


STM32_USB-FS-Device_Lib_V4.0.0


Спасибо )
Go to the top of the page
 
+Quote Post
igorle
сообщение Nov 1 2013, 13:08
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753



Цитата(Паф @ Nov 1 2013, 09:19) *
Идею подсказали на форуме поддержки ST. Могу поискать линк.

Это конкретно вам ответили? Я искал на этом форуме. И, как оказалось, читал ту ветку, где говорилось о модификации IMR_MSK. Фокус в том, что там обсуждалось так много разных вариантов, что именно этот я не понял и пропустил sad.gif

Если это ваша ветка - дайте линк, пожалуйста. Поучусь, как спрашивать чтобы тебя поняли. Я вот эту ветку находил.

PS. Этот их clive1 - это живой человек, или собирательный образ, типа кукрыниксы?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 03:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01406 секунд с 7
ELECTRONIX ©2004-2016