STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: STM32 новичку в ARM что к чему

Сообщение uldemir »

спасибо, но reference manual мне цитировать не нужно. Я в нём постоянно верчусь и написал только тогда, когда сломал мозг: или не вижу ответа в даташите, или делаю какую-то глупость. Просто из даташита ясно не понять поведение флага ALRAWF. Полагал, что если установлен ALRAE, то ALRAWF должен быть постоянно равен 0. Только после снятия ALRAE этот флаг установится спустя сколько-то там RTC клоков. Но получается, что не так... Этот ALRAWF может быть установлен даже и при установленном ALRAE? Но явного описания про это я не вижу. Во всяком случае, исходя из такого предположения я строил программу - теперь приходится переделывать.

кстати, строчка /* 11 */ у меня вызывает подозрения.

Да и вообще, кристалл стрёмный. Я уже тащился от флага INITS. Не понимаю я ихнюю логику. И нахрена в ембеддедном приложении время считать в БКД?!
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: STM32 новичку в ARM что к чему

Сообщение oleg110592 »

uldemir писал(а):Просто из даташита ясно не понять...

Есть еще у производителя AN3371 Using the hardware real-time clock (RTC) in STM32 F0, F2, F3, F4 and L1 series of MCUs,
там есть таблица Table 4. Steps to configure the alarm
шагов всего шесть
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: STM32 новичку в ARM что к чему

Сообщение uldemir »

Ой блин, оне снова свой сайт перекрасили.
Не нашел ответа на свой вопрос. Ну да ладно, я только убедился, что это ALRAWF может стоять как угодно и как признак, что я залез править будильник, использовать нельзя. Хотя, действительно, это было ошибочное решение.
Придётся обходить эти грабли стороной.
Alex_Golubev
Встал на лапы
Сообщения: 87
Зарегистрирован: Вс ноя 15, 2015 05:54:13

Re: STM32 новичку в ARM что к чему

Сообщение Alex_Golubev »

В iar 7.40 сломались breakpoint. В момент выполнения программы устанавливаю breakpoint а в этом месте не срабатывает точка останова. Хотя принудительно программа останавливается. Это глюк иара или что?
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: STM32 новичку в ARM что к чему

Сообщение uldemir »

Может, вы установили слишком высокий уровень оптимизации? У меня при самом высоком уровне брейкпоинты работают только в ассемблерном листинге.
Alex_Golubev
Встал на лапы
Сообщения: 87
Зарегистрирован: Вс ноя 15, 2015 05:54:13

Re: STM32 новичку в ARM что к чему

Сообщение Alex_Golubev »

Не оптимизацию не трогал. До этого точки останова работали в настройках не лазил а тут раз и сломались. При чем если сначала принудительно остановить программу после выставить точку останова и запустить программу то все работает. Но как только уберешь точку останова и поставишь заново (при выполнение программы) то все сразу ломается (не останавливается программа). Я просто не разу с таким не сталкивался.
Alex_Golubev
Встал на лапы
Сообщения: 87
Зарегистрирован: Вс ноя 15, 2015 05:54:13

Re: STM32 новичку в ARM что к чему

Сообщение Alex_Golubev »

Скажите можно синхронизировать два таймера для шим? Чтоб начали счет одновременно?
alexi$
Родился
Сообщения: 14
Зарегистрирован: Вт окт 30, 2012 23:34:54

Re: STM32 новичку в ARM что к чему

Сообщение alexi$ »

добрый день. Немного не в тему, но скиньте мне на мыло Stm32cubeMX(последнею версию 4,14), и библиотеку для f1 (посл.версия 1,3,0). 5 дней не могу скачать с моим интернетом. С сайта после обрыва качается сначала. alex555cs@yandex.ru
Аватара пользователя
es131245
Потрогал лапой паяльник
Сообщения: 369
Зарегистрирован: Пт фев 01, 2013 21:05:30

Re: STM32 новичку в ARM что к чему

Сообщение es131245 »

Возможно ли вообще подключить 2 slave moda на 1 таймер? Хочу таймер что работает в режиме IC подключить еще 2ой таймер для увеличения разрядности.
Это вообще возможно?
JustinTime
Родился
Сообщения: 7
Зарегистрирован: Вт мар 15, 2016 20:09:33

Re: STM32 новичку в ARM что к чему

Сообщение JustinTime »

alexi$ писал(а):добрый день. Немного не в тему, но скиньте мне на мыло Stm32cubeMX(последнею версию 4,14), и библиотеку для f1 (посл.версия 1,3,0). 5 дней не могу скачать с моим интернетом. С сайта после обрыва качается сначала. alex555cs@yandex.ru


Я уже несколько дней вообще практически ничего не могу скачать с сайта ST.com (как раз Cube нужен был) - выдает SORRY, PAGE NOT FOUND.

Это у меня одного такая фигня ?
Alex_Golubev
Встал на лапы
Сообщения: 87
Зарегистрирован: Вс ноя 15, 2015 05:54:13

Re: STM32 новичку в ARM что к чему

Сообщение Alex_Golubev »

Нет у меня также PAGE NOT FOUND.
Аватара пользователя
Мяукните!
Открыл глаза
Сообщения: 63
Зарегистрирован: Пн апр 20, 2015 14:00:32
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Мяукните! »

es131245

Каскадирование счётчиков, это стандартная фишка у многих камней. Включается битиком в настройках..
Аватара пользователя
es131245
Потрогал лапой паяльник
Сообщения: 369
Зарегистрирован: Пт фев 01, 2013 21:05:30

Re: STM32 новичку в ARM что к чему

Сообщение es131245 »

На почту же выслал свой старый установщик.
Могу сам куб кинуть
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

Обнаружил непонятную для себя вещь при измерении температуры по внутреннему сенсору STM32F030. В примерах (codesnippets) от ST температуру вычисляет следующая функция:

Код: Выделить всё

/**
  * @brief  This function computes the temperature from the temperature sensor measure
  *         The computation uses the following formula :
  *         Temp = (Vsense - V30)/Avg_Slope + 30
  *         Avg_Slope = (V110 - V30) / (110 - 30)
  *         V30 = Vsense @30°C (calibrated in factory @3.3V)
  *         V110 = Vsense @110°C (calibrated in factory @3.3V)
  *         VDD_APPLI/VDD_CALIB coefficient allows to adapt the measured value
  *         according to the application board power supply versus the
  *         factory calibration power supply.
  * @param  measure is the a voltage measured from the temperature sensor (can have been filtered)
  * @retval returns the computed temperature
  */
int32_t ComputeTemperature(uint32_t measure)
{
  int32_t temperature;
 
  temperature = ((measure * VDD_APPLI / VDD_CALIB) - (int32_t) *TEMP30_CAL_ADDR ) ;   
  temperature = temperature * (int32_t)(110 - 30);                     
  temperature = temperature / (int32_t)(*TEMP110_CAL_ADDR - *TEMP30_CAL_ADDR);                 
  temperature = temperature + 30;
  return(temperature);
}


И все с ней было бы понятно, если б не таинственный параметр TEMP110_CAL_ADDR. То, что он должен означать, понятно -- это указатель на сохраненное значение АЦП, полученное при температуре кристалла в 110 градусов. Таинственным же я называю его потому, что в даташите на STM32F030, каких либо упоминаний о нем мне отыскать не удалось. Есть TEMP30_CAL_ADDR (в даташите он называется TS_CAL1), есть Avg_Slope (и это именно его вычисляют в вышеприведенной функции с использованием значения TEMP110_CAL -- опять же не понятно, зачем его вычислять, если его значение приведено в даташите), но никаких калибровочных данных, сохраненных в чипе для температуры 110 градусов, даташит не упоминает.

С одной стороны, вполне можно допустить, что производитель забыл в мануале описать этот самый TS_CAL2 для STM32F030. Ну мало ли и с кем не бывает. Да вот только вышеприведенная функция вычисляет температуру с точностью не лучше 4 градусов, если ее использовать в оригинальном веде и об этом я говорю на основе личного опыта после проверок на нескольких экземплярах STM32F030F4P6. Если же не вычислять Avg_Slope по TEMP110_CAL_ADDR, а взять значение из даташита, то этот же алгоритм начинает вычислять температуру с точностью 1 градус. Обнаружив это, я пребываю в некоторой растерянности. В интернетах в куче мест (включая этот форум) используется оригинальный код из снайпетов и всевозможные уроки и примеры настаивают, что именно так и надлежит вычислять температуру. Это все жертвы тупой копипасты или, наоборот, я чего-то не понимаю? Откуда взялся TEMP110_CAL_ADDR ?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25163
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: STM32 новичку в ARM что к чему

Сообщение КРАМ »

Страница 738 референс-мануала RM0360
Пункт A.7.16

Код: Выделить всё

/* Temperature sensor calibration value address */
#define TEMP110_CAL_ADDR ((uint16_t*) ((uint32_t) 0x1FFFF7C2))
#define TEMP30_CAL_ADDR ((uint16_t*) ((uint32_t) 0x1FFFF7B8))


Вообще то все уже рассматривали: viewtopic.php?f=59&t=115949&p=2342163
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: STM32 новичку в ARM что к чему

Сообщение oleg110592 »

a5021 писал(а):С одной стороны, вполне можно допустить, что производитель забыл в мануале описать этот самый TS_CAL2 для STM32F030

да забыл - в документации, например на STM32F042, TS_CAL2 присутствует
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Re: STM32 новичку в ARM что к чему

Сообщение scorpi_0n »

В DocID024849 Rev 1 присутствуют оба. Это в Rev 2 TS_CAL2 потеряли.
JustinTime
Родился
Сообщения: 7
Зарегистрирован: Вт мар 15, 2016 20:09:33

Re: STM32 новичку в ARM что к чему

Сообщение JustinTime »

Alex_Golubev писал(а):Нет у меня также PAGE NOT FOUND.


Оказывается, если повторно зайти на страницу загрузки (кликнув еще раз на ссылку, присланную в письме в ответ на заполнение формы получения софта), то на второй раз все срабатывает...
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

Полез перепроверять еще раз и к своему стыду нашел, где у меня шла потеря точности. Теперь вижу, что Avg_Slope в снайпетах вычисляется правильно и значение температуры эта функция возвращает правдоподобное. Таким образом, все указывает на то, что TS_CAL2 реально существует, хоть в мануале и не описана.

Насчет забывчивости производителя, как-то теперь мне начинает казаться, что это особого вида маркетинговая забывчивость, стимулирующая потребителя покупать более дорогие модели, где производитель ухитрился "забыть" значительно меньше. Вообще-же, глядя на область памяти, где эти самые TS_CALx храняться, создается впечатление, что там еще чего-нибудь забытого может отыскаться.

Изображение
Вложения
2016-04-10_220836.jpg
(81.84 КБ) 1162 скачивания
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: STM32 новичку в ARM что к чему

Сообщение pokk »

Подскажите какие дополнительные возможности открывает отладка stm32 через jtag вместо swd?
В общем в чем разница?
Ответить

Вернуться в «ARM»