Проблемы с таймерами на ВК035

32-разрядные микроконтроллеры разработки ОАО "НИИЭТ"

Модераторы: dav, bkolbov, pip, _sva_

blessedt
Сообщения: 13
Зарегистрирован: 25 фев 2019, 00:09
Предприятие: АОКБ Импульс

Проблемы с таймерами на ВК035

Сообщение blessedt » 25 фев 2019, 00:39

Товарищи!
Прошу не закидывать совсем тухлыми помидорами )
Столкнулся с проблемой, которая выражается в несоблюдении периода прерываний таймера.
| Показать
Изображение
Импульсы положительной полярности - дергаю ножкой вверх в начале прерывания, вниз - в конце.
Прерывания настроены на 125кГц. Пробовал на TMR0 и TMR1, разницы нет.
Прерывание всего одно. Из периферии используется один таймер, SPI, несколько ножек. Частота ядра 100МГц.
Как отловить, ума не приложу :?
Вложения
123.png
123.png (160.28 КБ) 414 просмотров

bkolbov
Сообщения: 226
Зарегистрирован: 14 дек 2015, 11:37
Предприятие: АО НИИЭТ
Откуда: Воронеж

Re: Проблемы с таймерами на ВК035

Сообщение bkolbov » 25 фев 2019, 09:39

Добрый день!

А можете скинуть сюда или в личку код, который демонстрирует данное поведение?

blessedt
Сообщения: 13
Зарегистрирован: 25 фев 2019, 00:09
Предприятие: АОКБ Импульс

Re: Проблемы с таймерами на ВК035

Сообщение blessedt » 25 фев 2019, 13:31

Код - в студию!
Использую последнюю версию plib035, никаких изменений не вносил.
Инициализация файлом system_K1921VK035.c с дефайнами

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

#define SYSCLK_PLL
#define OSECLK_VAL 12000000ULL
Резонатор на плате проверил, вроде хорошие 12МГц.
Плата - штатная отладочная 1921ВК035-DEV
Вложения
main.c
(3.75 КБ) 18 скачиваний

Аватара пользователя
Лашкевич
Сообщения: 193
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Contact:

Re: Проблемы с таймерами на ВК035

Сообщение Лашкевич » 25 фев 2019, 13:55

А если sendData закомментить?
(не люблю while внутри прерываний, но сходу сложно сказать, он ли виноват).
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

blessedt
Сообщения: 13
Зарегистрирован: 25 фев 2019, 00:09
Предприятие: АОКБ Импульс

Re: Проблемы с таймерами на ВК035

Сообщение blessedt » 25 фев 2019, 14:44

sendData использовался для проверки корректности вычислений. Он вызывался только в фоне. Сейчас уарт не используется, я просто удалил весь код, который был закомментирован в проекте. Перед тем как выложить код, я проверил, косячок остался. Я вот думаю сейчас, что дело может быть в фапч, но мнение мое в данном вопросе не особо авторитетно =) Когда буду в районе рабочего места, я проверю ещё с запиткой ядра от встроенного генератора, а также без использования фапч. Пока идей больше нет...

bkolbov
Сообщения: 226
Зарегистрирован: 14 дек 2015, 11:37
Предприятие: АО НИИЭТ
Откуда: Воронеж

Re: Проблемы с таймерами на ВК035

Сообщение bkolbov » 25 фев 2019, 15:13

А величины cConst[0] и sConst[0] в коде откуда берутся?

Скачал main и вместо них записал случайные float числа - код работает. Период стабильно 8 мкс. Только ширина положительной части периода плавает - видимо вычисления занимают разное количество времени раз от раза. Но показанного на осциллограмме не наблюдаю.

blessedt
Сообщения: 13
Зарегистрирован: 25 фев 2019, 00:09
Предприятие: АОКБ Импульс

Re: Проблемы с таймерами на ВК035

Сообщение blessedt » 25 фев 2019, 15:32

Да, все верно, это табличные константы из userdefs.h ) пардон, забыл про них. Дело в том, что период вот таким образом прыгает часто с учётом частоты вычислений, но все же не регулярно. Возможно, у Вас действительно и нет этого глюка. Ладно, буду пока грешить на стабильность тактовой частоты. Если получится побороть эту беду, сообщу. За дополнительные идеи или сведения тоже буду признателен )

blessedt
Сообщения: 13
Зарегистрирован: 25 фев 2019, 00:09
Предприятие: АОКБ Импульс

Re: Проблемы с таймерами на ВК035

Сообщение blessedt » 25 фев 2019, 21:41

Мда... Проверка с тактированием от встроенного генератора с фапч, а также от кварца и встроенного генератора без фапч результата не дало. Переключение ножки в прерывании от SysTickTimer тоже показывает нарушение тактирования.
То есть фапч и кварц тут ни при чем. Пробовал увеличить задержку выборки из FLASH, тоже не помогло.
Че та Халк грустно )))

blessedt
Сообщения: 13
Зарегистрирован: 25 фев 2019, 00:09
Предприятие: АОКБ Импульс

Re: Проблемы с таймерами на ВК035

Сообщение blessedt » 25 фев 2019, 21:50

bkolbov писал(а):
25 фев 2019, 15:13
Период стабильно 8 мкс. Только ширина положительной части периода плавает - видимо вычисления занимают разное количество времени раз от раза. Но показанного на осциллограмме не наблюдаю.
Простите, а на каком оборудовании смотрели? И при каких настройках? А то варианта осталось только два ) Или кристалл МК битый или подгорел, или у меня осциллограф кривоват х_Х

bkolbov
Сообщения: 226
Зарегистрирован: 14 дек 2015, 11:37
Предприятие: АО НИИЭТ
Откуда: Воронеж

Re: Проблемы с таймерами на ВК035

Сообщение bkolbov » 26 фев 2019, 09:16

Ну если даже в прерывании от SysTick такое же...
По всем косвенным признакам это похоже на глитчи осциллографа. А пробовали настраивать на другую частоту таймера? Менять настройки осциллографа (шаг по времени, триггер, размер буфера и т.п.)?

Сам я проверял в железе на точно такой же плате. К сообщению прикрепил hex, который заливал внутрь. Сможете им прошить и посмотреть поведение?
Вложения
example.hex
(8.14 КБ) 9 скачиваний

Ответить

Вернуться в «32-разрядные микроконтроллеры на ядре ARM Cortex»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя