STM32 новичку в ARM что к чему
Re: STM32 новичку в ARM что к чему
спасибо, но reference manual мне цитировать не нужно. Я в нём постоянно верчусь и написал только тогда, когда сломал мозг: или не вижу ответа в даташите, или делаю какую-то глупость. Просто из даташита ясно не понять поведение флага ALRAWF. Полагал, что если установлен ALRAE, то ALRAWF должен быть постоянно равен 0. Только после снятия ALRAE этот флаг установится спустя сколько-то там RTC клоков. Но получается, что не так... Этот ALRAWF может быть установлен даже и при установленном ALRAE? Но явного описания про это я не вижу. Во всяком случае, исходя из такого предположения я строил программу - теперь приходится переделывать.
кстати, строчка /* 11 */ у меня вызывает подозрения.
Да и вообще, кристалл стрёмный. Я уже тащился от флага INITS. Не понимаю я ихнюю логику. И нахрена в ембеддедном приложении время считать в БКД?!
кстати, строчка /* 11 */ у меня вызывает подозрения.
Да и вообще, кристалл стрёмный. Я уже тащился от флага INITS. Не понимаю я ихнюю логику. И нахрена в ембеддедном приложении время считать в БКД?!
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: STM32 новичку в ARM что к чему
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
шагов всего шесть
Re: STM32 новичку в ARM что к чему
Ой блин, оне снова свой сайт перекрасили.
Не нашел ответа на свой вопрос. Ну да ладно, я только убедился, что это ALRAWF может стоять как угодно и как признак, что я залез править будильник, использовать нельзя. Хотя, действительно, это было ошибочное решение.
Придётся обходить эти грабли стороной.
Не нашел ответа на свой вопрос. Ну да ладно, я только убедился, что это ALRAWF может стоять как угодно и как признак, что я залез править будильник, использовать нельзя. Хотя, действительно, это было ошибочное решение.
Придётся обходить эти грабли стороной.
-
Alex_Golubev
- Встал на лапы
- Сообщения: 87
- Зарегистрирован: Вс ноя 15, 2015 05:54:13
Re: STM32 новичку в ARM что к чему
В iar 7.40 сломались breakpoint. В момент выполнения программы устанавливаю breakpoint а в этом месте не срабатывает точка останова. Хотя принудительно программа останавливается. Это глюк иара или что?
Re: STM32 новичку в ARM что к чему
Может, вы установили слишком высокий уровень оптимизации? У меня при самом высоком уровне брейкпоинты работают только в ассемблерном листинге.
-
Alex_Golubev
- Встал на лапы
- Сообщения: 87
- Зарегистрирован: Вс ноя 15, 2015 05:54:13
Re: STM32 новичку в ARM что к чему
Не оптимизацию не трогал. До этого точки останова работали в настройках не лазил а тут раз и сломались. При чем если сначала принудительно остановить программу после выставить точку останова и запустить программу то все работает. Но как только уберешь точку останова и поставишь заново (при выполнение программы) то все сразу ломается (не останавливается программа). Я просто не разу с таким не сталкивался.
-
Alex_Golubev
- Встал на лапы
- Сообщения: 87
- Зарегистрирован: Вс ноя 15, 2015 05:54:13
Re: STM32 новичку в ARM что к чему
Скажите можно синхронизировать два таймера для шим? Чтоб начали счет одновременно?
Re: STM32 новичку в ARM что к чему
добрый день. Немного не в тему, но скиньте мне на мыло Stm32cubeMX(последнею версию 4,14), и библиотеку для f1 (посл.версия 1,3,0). 5 дней не могу скачать с моим интернетом. С сайта после обрыва качается сначала. alex555cs@yandex.ru
Re: STM32 новичку в ARM что к чему
Возможно ли вообще подключить 2 slave moda на 1 таймер? Хочу таймер что работает в режиме IC подключить еще 2ой таймер для увеличения разрядности.
Это вообще возможно?
Это вообще возможно?
-
JustinTime
- Родился
- Сообщения: 7
- Зарегистрирован: Вт мар 15, 2016 20:09:33
Re: STM32 новичку в ARM что к чему
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 что к чему
Нет у меня также PAGE NOT FOUND.
- Мяукните!
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Пн апр 20, 2015 14:00:32
- Контактная информация:
Re: STM32 новичку в ARM что к чему
es131245
Каскадирование счётчиков, это стандартная фишка у многих камней. Включается битиком в настройках..
Каскадирование счётчиков, это стандартная фишка у многих камней. Включается битиком в настройках..
NXP i.MX7D на чистом ассемблере
Re: STM32 новичку в ARM что к чему
На почту же выслал свой старый установщик.
Могу сам куб кинуть
Могу сам куб кинуть
Re: STM32 новичку в ARM что к чему
Обнаружил непонятную для себя вещь при измерении температуры по внутреннему сенсору STM32F030. В примерах (codesnippets) от ST температуру вычисляет следующая функция:
И все с ней было бы понятно, если б не таинственный параметр 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 ?
Код: Выделить всё
/**
* @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
Вообще то все уже рассматривали: viewtopic.php?f=59&t=115949&p=2342163
Пункт 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 что к чему
a5021 писал(а):С одной стороны, вполне можно допустить, что производитель забыл в мануале описать этот самый TS_CAL2 для STM32F030
да забыл - в документации, например на STM32F042, TS_CAL2 присутствует
Re: STM32 новичку в ARM что к чему
В DocID024849 Rev 1 присутствуют оба. Это в Rev 2 TS_CAL2 потеряли.
-
JustinTime
- Родился
- Сообщения: 7
- Зарегистрирован: Вт мар 15, 2016 20:09:33
Re: STM32 новичку в ARM что к чему
Alex_Golubev писал(а):Нет у меня также PAGE NOT FOUND.
Оказывается, если повторно зайти на страницу загрузки (кликнув еще раз на ссылку, присланную в письме в ответ на заполнение формы получения софта), то на второй раз все срабатывает...
Re: STM32 новичку в ARM что к чему
Полез перепроверять еще раз и к своему стыду нашел, где у меня шла потеря точности. Теперь вижу, что Avg_Slope в снайпетах вычисляется правильно и значение температуры эта функция возвращает правдоподобное. Таким образом, все указывает на то, что TS_CAL2 реально существует, хоть в мануале и не описана.
Насчет забывчивости производителя, как-то теперь мне начинает казаться, что это особого вида маркетинговая забывчивость, стимулирующая потребителя покупать более дорогие модели, где производитель ухитрился "забыть" значительно меньше. Вообще-же, глядя на область памяти, где эти самые TS_CALx храняться, создается впечатление, что там еще чего-нибудь забытого может отыскаться.

Насчет забывчивости производителя, как-то теперь мне начинает казаться, что это особого вида маркетинговая забывчивость, стимулирующая потребителя покупать более дорогие модели, где производитель ухитрился "забыть" значительно меньше. Вообще-же, глядя на область памяти, где эти самые TS_CALx храняться, создается впечатление, что там еще чего-нибудь забытого может отыскаться.
- Вложения
-
- 2016-04-10_220836.jpg
- (81.84 КБ) 1162 скачивания
Re: STM32 новичку в ARM что к чему
Подскажите какие дополнительные возможности открывает отладка stm32 через jtag вместо swd?
В общем в чем разница?
В общем в чем разница?