Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

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

Ср июн 05, 2019 14:44:43

Заново файлы создавай или конвертируй, они уже в другой кодировке...

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

Чт июн 20, 2019 16:09:21

Порешал)))

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

Вс июн 23, 2019 17:08:46

Заново файлы создавай или конвертируй, они уже в другой кодировке...
Странно. Конвертируется, вроде-бы, правильно. А вот в свежесозданном (кубическом, чтобы железно собралось) проекте при переключении на русский регистр вместо букв набираются только вопросительные знаки. Кодировка стоит Russian Windows-1251, проверил. Что еще крутить? Кейл 5.28.0.

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

Ср июн 26, 2019 09:31:48

Здравствуйте.
Нужно как-то генерировать импульсы на STM32F103 на двух выводах. Импульсы управляют драйверами транзисторов, которые не должны быть включены одновременно.
Проблема в том, что у этих импульсов нет фиксированной частоты и ширины. Но надо обеспечить возможность переключения периодом 10 мкс.
Ширина импульса и интервалы задаются неким массивом, каждая ячейка определяет состояние драйверов в течение 10 мкс. Если значение в ячейке положительное - включен один драйвер, отрицательное - другой. Пока на ум приходит только таймер, который по прерыванию каждые 10 мкс перемещает указатель на следующую ячейку и просто переключает выводы GPIO.
Выводы тактируются от шины 32MHz, но в настройках GPIO можно установить 50 МГц. Я правильно понимаю, что это скорость, с которой способен переключаться вывод и он все равно будет 32Мгц? По идее GPIO должен справится с задачей, но хотелось бы какой-то более красивый вариант, но в голову больше ничего не приходит.

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

Ср июн 26, 2019 09:36:40

bezzabotna писал(а):Импульсы управляют драйверами транзисторов, которые не должны быть включены одновременно.
Смотрите раздел Dead-time. http://robocraft.ru/blog/ARM/739.html
В STM32F103 необходимо использовать TIM1.

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

Ср июн 26, 2019 09:50:03

К сожалению доступны только каналы 2 и 5 таймера. У них нет комплиментарных выходов, но есть ШИМ.
Может быть организовать шим для каждого вывода с периодом 10мкс и коэффициентом заполнения 100%. А в другом таймере сделать счетчик, который будет включать/выключать каналы шим в зависимости от полярности ячейки. Ну и задержку небольшую на переключение каналов.

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

Ср июн 26, 2019 09:57:04

К сожалению доступны только каналы 2 и 5 таймера. У них нет комплиментарных выходов, но есть ШИМ.

Если нет dead-time, то можно взять два таймера с ШИМ и одновременно записывать в них значения скорректированные вручную так, чтобы между ними был необходимый dead-time.
PS: А вообще надо выбирать МК соответствующий задаче.

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

Пт июн 28, 2019 08:12:59

Здравствуйте. Еще один вопрос. Мне необходимо синхронизировать цепочку таймеров, чтобы триггером служило событие обновления. Вопрос в том, происходит ли событие обновления при первом запуске таймера? Мне нужно чтобы все таймеры запустились одновременно по цепной реакции, а не так, чтобы каждый таймер сначала досчитал до перезагрузки и только потом запустил следующий.
Запустить всех от от одного триггера не вариант. Они должны именно управлять друг другом.

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

Пт июл 05, 2019 14:09:38

Добрый день!
Keil uVision V5.23 (с Keil uVision V5.28 таже фигня), камень STM32F103C8T6.
Проблемы с дебаггером.
В режиме Use Simulator не могу установить breakpoint, вернее могу, но далеко не везде. Например, не получается поставить -

/* Private user code ----------*/
/* USER CODE BEGIN 0 */

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance == TIM1) //check if the interrupt comes from TIM1
{
Тут получается
}
}
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
после этого не получается
{
if(htim->Instance == TIM1)
{
if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1)
{
Тут не получается
}
if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2)
{
Тут не получается
}
}
}
Затем, иногда можно, иногда нет.

Кроме того, если дебажу в Use ST-link debugger, breakpointы отлично ставятся, НО!!! Регистры, например, CNT TIM1, при останове показывает рындомные (random, случайные) значения.
Первый и второй случай сводят на нет возможность отладки в Keil. Получается что отладка как таковая отсутствует.
В жезном железе (прошитый камень) - работает.
Может кто знаком с проблемой? Как отлаживать то? Варианты есть?

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

Пт июл 05, 2019 15:54:26

Как отлаживать то? Варианты есть?

На реальном железе естественно. Ума не приложу - на кой вам этот симулятор? :shock:

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

Пн июл 08, 2019 08:46:42

Нужно ветку форума открыть "Нужен ли симулятор или лучше отлаживать в железе".
А если серьёзно, может кто окажет информационную поддержку?
Такого ведь не может быть, что весь мир использует STM32 без симулятора.

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

Пн июл 08, 2019 10:48:04

Кроме того, если дебажу в Use ST-link debugger, breakpointы отлично ставятся, НО!!! Регистры, например, CNT TIM1, при останове показывает рындомные (random, случайные) значения.


Периферия живет своей жизнью, в частности что бы таймер фризился надо конфигурировать Debug MCU configuration register.
Лучший дебаггер это Ozone c jlink.
И начните изучать периферию а не тыркайтесь в калокубах...

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

Пн июл 08, 2019 13:31:58

Лучший дебаггер это Ozone c jlink.
Я так понимаю что это только с железом?

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

Пн июл 08, 2019 14:26:16

Про симулятор забудьте...

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

Пн июл 08, 2019 15:28:34

Этого просто не может быть...
Контроллеры такого уровня и без симулятора? Смысл тогда?
Раскладывать на столе всё железо с осциллографами, да не с простыми, а золотыми (отматывать десяток другой экранов вперед-назад). Подключать различные генераторы и др. источники сигналов.
Например, отладить разгон - торможение асинхронной машины на максимальное ускорение (замедление) не допуская условий срыва синхронизма... Даже такая задача будет нерешаема.
НЕ МОЖЕТ БЫТЬ!
С симуляторами для avr вообще проблема отсутствует...

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

Пн июл 08, 2019 15:37:36

Смысл вашего перехода с авр ?

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

Пн июл 08, 2019 18:38:38

С симуляторами для avr вообще проблема отсутствует...

Так может вам на avr и остаться тогда? Раз тут так сложно.... 8)

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

Вт июл 09, 2019 10:09:49

Смысл вашего перехода с авр ?


Смысл очевиден) Перестало хватать производительности.

Добавлено after 4 minutes 35 seconds:
Так может вам на avr и остаться тогда? Раз тут так сложно.... 8)


Расцениваю этот вопрос как попытку "закарнавалить" тему.

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

Вт июл 09, 2019 10:52:45

Расцениваю этот вопрос как попытку "закарнавалить" тему.

Вам уже всё сказали. Какой смысл в симуляторах если на реальном железе (с эмулятором) всё можно отладить? И это будет намного качественнее, так как симулятор - это одно, а реальное железо - совсем другое. И если в реальном железе такого уровня как современные ARM-ы производители делают кучу багов (почитайте errata) + баги симулятора - и какой смысл в такой отладке??? Отладите в симуляторе, а в реальном железе оно работать не будет с вероятностью 90%.
ARM - это не примитивный AVR - написать качественно на него симулятор на порядки сложнее. И также на порядке - менее нужно, так как ARM имеет развитые встроенные аппаратные средства отладки. В отличие от AVR.
Среди реальных разработчиков на ARM никто не пользует симуляторы - никому оно не нужно. В крайнем случае что-то сложное алгоритмически (и не привязанное к железу) можно отладить на компе под VS или билдером. А потом просто перетащить как есть на ARM.

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

Вт июл 09, 2019 12:22:42

Fgt_dg23.jpg
(78.58 KiB) Скачиваний: 258
Дело в том, что почти всегда "сложное алгоритмически"...
На симуляторах (да в том же протеусе) мне приходилось сотни раз "катать" алгоритм взад-вперёд, добиваясь точной работы.
Не знаю как у других (статистику не собирал), а у меня проекты, после отладки в симуляторе запускаются (тьфу, тьфу, тьфу) всегда.
Для примера мааааленький фрагментик алгоритма управления двигателями геостационарной платформы.
Вобщем буду искать...
Для начала такая тактика:
Отладка в симуляторе Keil отдельных фрагментов программы камень stm32f103c8 (доступен для отладки)
Далее, при необходимости, проверить в железе осциллом.
Потом подзаливать в F4xx и смотреть что получилось....

Добавлено after 6 minutes 24 seconds:
Вот картинка, не ту вставил
Изображение
Ответить