Перейти к содержанию
    

STM32 – вопросы – проблемы - решения.

Народ, кто уже успел попробовать stm32L151-152?

Большая проблема: В СТОП-МОДе потребление составляет 300мкА, вместо заявленных 1-2!!!

В Стэндбай-Моде всё честно- 1мкА, но он мне не подходит, т.к. во-первых не сохраняет SRAM,

а во-вторых, отключает ИОН, который мне нужен все время совне.

Почему в СТОПе такое потребление? Пример я взял стандартный из библиотеки, он маленький, запутаться невозможно.

Единственное, что я изменил -это тактирование: не от внешнего резонатора, а от внутреннего(пробовал и MSI и HSI+PLL)

--------------------------------

Все, проблема решена: необходимо дополнительно перевести все порты с цифрового входа на аналоговый вход.

Изменено пользователем fiim

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Появилось на сайте ST:

STM32F105/107xx USB Host library (UM1021)

 

Опробовал на флешках, мышках и клавиатуре. Флешки больше 8 Гб в упор не видит. У флешек на 8 Гб видит только 4. Почему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Опробовал на флешках, мышках и клавиатуре. Флешки больше 8 Гб в упор не видит. У флешек на 8 Гб видит только 4. Почему?

Где-то под размер отвели 32-битную переменную или в промежуточных вычислениях недосмотрели, а 232 как раз 4G.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ, кто уже успел попробовать stm32L151-152?

Большая проблема: В СТОП-МОДе потребление составляет 300мкА, вместо заявленных 1-2!!!

В Стэндбай-Моде всё честно- 1мкА, но он мне не подходит, т.к. во-первых не сохраняет SRAM,

а во-вторых, отключает ИОН, который мне нужен все время совне.

Почему в СТОПе такое потребление? Пример я взял стандартный из библиотеки, он маленький, запутаться невозможно.

Единственное, что я изменил -это тактирование: не от внешнего резонатора, а от внутреннего(пробовал и MSI и HSI+PLL)

--------------------------------

Все, проблема решена: необходимо дополнительно перевести все порты с цифрового входа на аналоговый вход.

А где вы разжились этими камушками? Образцы уже поставляют?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где вы разжились этими камушками? Образцы уже поставляют?

У нас уже доступны по предзаказу

http://www.elcopro.ru/catalog/price-list/?search=STM32L

Пока только STM32L151CBT6 по 300 рублей.

Но у меня пока руки не дошли

только с дисковери побаловался

http://ziblog.ru/category/mikrokontrolleryi/stm32/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где вы разжились этими камушками? Образцы уже поставляют?

Да, это образец, просто повезло, вовремя отхватил, наверно последний был в Терре.

Думаю скоро появятся в продаже.

Note: Переводить все порты на аналоговый вход желательно, но не обязательно(тем более, что в стоп-моде могут потребоваться какие-то уровни на пинах): главное отключить подтяжки(пулап-пулдаун)жтага-это они в основном столько кушают.

Изменено пользователем fiim

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Статейка для совсем начинающих:

http://www.codeproject.com/KB/cpp/STM32_Di...ry_Project.aspx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предлагаю в этой теме обсуждать вопросы разработчиков на STM32.

 

ТЕМА: неверное значение при считывании регистра DBGMCU_IDCODE, STM32F103RB.

 

Попробовал в программе вывести значение этого RO регистра (с помощью printf(), разумеется). Согласно Reference Manual RM0008, стр. 1055, регистр всегда доступен. С удивлением увидел нули!

 

1. Начал под отладчиком пошагово - вдруг все считалось правильно!

2. Вышел из отладчика, нажимал RESET, перезапуская процессор, - по-прежнему все правильно.

3. Передернул питание - опять нули!.

 

Повторяем с шага 1. - опять правильно считывается, пока питание не передернешь.

 

Кто сталкивался?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну правильно, DBG различают POR и остальные резеты. 0 читается один раз после включения?

Может какие-то тонкости синхронизации шин. На 100м не воспроизвелось.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну правильно, DBG различают POR и остальные резеты. 0 читается один раз после включения?

Может какие-то тонкости синхронизации шин. На 100м не воспроизвелось.

 

Пробовал читать подрят несколько раз - все равно нули после передергивания питания.

О синхронизации не скажу... Читаю лишь после того, как запущена вся периферия.

 

Как я написал, согласно актуальному Reference Manual регистр читается и из пользовательской программы. Где-то в недрах форума ST я действительно нашел упоминание, что считывается только в режиме debug, а иначе - нули, но это касалось первых ревизий. Мой процессор имеет в DBGMCU_IDCODE (если удалось считать) значение 0x20030410, что означает Medium Density Device Revision Y.

 

Интересно, что втыкает единократный вход в режим debug после переброски питания, что после этого считывается реальное значение... Может надо прочесть разок POR?

Изменено пользователем KnightIgor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может надо прочесть разок POR?

Не представляю, как можно прочитать POR :)

Но вот если прочитать errata, то можно выяснить

The DBGMCU_IDCODE and DBGMCU_CR debug registers are accessible only in debug

mode (not accessible by the user software). When these registers are read in user mode,

the returned value is 0x00.

И касается походу всех ревизий 101 и 103го.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но вот если прочитать errata, то можно выяснить

И касается походу всех ревизий 101 и 103го.

Хорошо, тогда почему все же регистр читается, пусть даже после того, как единожды попользовались отладчиком, но потом жали на RESET?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потому что обычный RESET на эти регистры не влияет.

Изменено пользователем akimych

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день всем. Всех с праздником.

Я вот перехожу на стм32, до этого работал с 8/16 битными.

Скачал с сайта производителя библиотеки для работы с стм32...

Нашел пример программы для инициализации МК:

 

NVIC_InitTypeDef NVIC_InitStructure;

 

RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;

RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;

 

GPIOA->CRH &= ~(GPIO_CRH_MODE9 | GPIO_CRH_CNF9);

 

GPIOA->CRH |= GPIO_CRH_MODE9_0;

 

 

/* Enable the TIM2 gloabal Interrupt */

NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

 

Вопрос, где в библиотека объявлен тип NVIC_InitTypeDef структуры NVIC_InitStructure ?

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

stm32f10x_nvic.h

 

/* NVIC Init Structure definition */
typedef struct
{
 u8 NVIC_IRQChannel;
 u8 NVIC_IRQChannelPreemptionPriority;
 u8 NVIC_IRQChannelSubPriority;
 FunctionalState NVIC_IRQChannelCmd;
} NVIC_InitTypeDef;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...