К1921ВК01Т (арм Cortex-M4F)

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

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

Александр
Сообщения: 40
Зарегистрирован: 03 июл 2017, 09:28
Предприятие: ЛЭМЗ

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение Александр » 12 сен 2019, 10:59

Спасибо! Такой еще вопрос:
В первый момент включения ножки контроллера находятся в 3 состоянии? Или могут выдавать логические уровни(при подаче питания)

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

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение Лашкевич » 13 сен 2019, 12:06

В документации вроде описано, какие ножки в каком состоянии. Насколько я помню, в 3 состоянии все, кроме житага.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

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

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение bkolbov » 13 сен 2019, 12:15

Состояние по сбросу регистров GPIODEN и ALTFUNCSET как раз и говорит о том, что будет с ножками в момент включения.
Не в z-состоянии могут быть только некоторые ноги порта B, D и E.

petrovitch
Сообщения: 69
Зарегистрирован: 15 фев 2017, 19:07

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение petrovitch » 25 сен 2019, 18:01

Какова последовательность подачи питания на микросхему? Не могу найти в документации.
Просто в моей схеме процессор не всегда запускается при подаче питания.

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

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение dav » 26 сен 2019, 09:31

petrovitch писал(а):
25 сен 2019, 18:01
Какова последовательность подачи питания на микросхему? Не могу найти в документации.
Просто в моей схеме процессор не всегда запускается при подаче питания.
Порядок подачи питания на микроконтроллер рассматривался на форуме: Обсуждение
Также в теме: К1921ВК01Т, 1921ВК01Т1 - FAQ собраны вопрос-ответы, ссылки на полезные посты, обзорная и прочая информация по микроконтроллеру.

Laimer
Сообщения: 3
Зарегистрирован: 10 окт 2019, 10:28
Предприятие: СКиТ

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение Laimer » 15 окт 2019, 11:20

Здравствуйте. Помогите, не могу понять где ошибся. Блок PWM0 использует сигнал аварии по входу TZ0 настроил на однократное срабатывание. При возникновении события аварии, выводы ШИМ ,как настроено, сбрасываются в 0, срабатывает прерывание, но прерывание срабатывает только 1 раз, сброс флагов в прерывании не помогает. Что бы запустить в работу блок ШИМ необходимо в главном цикле сбросить флаг прерывания, но прерывание не срабатывает в дальнейшем. Если включать циклическую обработку сигнала аварии, то на одном канале появляется импульс длительностью ровно в 1 такт контроллера , а прерывание все равно срабатывает 1 раз. Файл с инициализацией и работой прилагается.
Вложения
main.c
(5.92 КБ) 13 скачиваний

Laimer
Сообщения: 3
Зарегистрирован: 10 окт 2019, 10:28
Предприятие: СКиТ

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение Laimer » 23 окт 2019, 18:03

Начали осваивать К1921ВК01Т, возник вопрос. Как правильно очищать флаги прерываний?
Настройка прерывания

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

    
    PWM_TZ_ActionConfig(NT_PWM0,PWM_TZ_Action_ToZero,PWM_TZ_Action_ToZero);
    PWM_TZ_CycleCmd(NT_PWM0,AlarmChannel,ENABLE);
    PWM_TZ_ITCmd(NT_PWM0,PWM_TZ_ITSource_Cycle,ENABLE);
    Энвик_EnableIRQ(PWM0_TZ_IRQn);
Обработчик прерывания:
//Так прерывание работает только 1 раз

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

void PWM0_TZ_IRQHandler(void)
{
    if(PWM_TZ_ITStatus(NT_PWM0,PWM_TZ_ITStatus_Cycle) == Flag_SET && PWM_TZ_ITPendStatus(NT_PWM0)== Flag_SET)
    {
        PWM_TZ_ITStatusClear(NT_PWM0,PWM_TZ_ITStatus_Cycle);
        GPIO_ToggleBits(NT_GPIOD,(GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15));
        PWM_TZ_ITPendClear(NT_PWM0);
    }
}
//А так прерывание вечное

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

void PWM0_TZ_IRQHandler(void)
{
    if(PWM_TZ_ITStatus(NT_PWM0,PWM_TZ_ITStatus_Cycle) == Flag_SET && PWM_TZ_ITPendStatus(NT_PWM0)== Flag_SET)
    {
        PWM_TZ_ITStatusClear(NT_PWM0,PWM_TZ_ITStatus_Cycle);
        GPIO_ToggleBits(NT_GPIOD,(GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15));
    }
}

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

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение Лашкевич » 28 окт 2019, 18:50

NT_PWM0->ETCLR_bit.INT = 1;
NT_PWM0->INTCLR_bit.INT = 1;

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

pavel
Сообщения: 7
Зарегистрирован: 17 сен 2018, 14:08
Предприятие: Университет ИТМО

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение pavel » 14 ноя 2019, 17:49

Здравствуйте.
Возникают проблемы с использованием WatchDog-таймера по прямому назначению. При сбросе по нему контроллер попадает в непонятную область памяти. В то же время при сбросе через регистр AIRCR никаких проблем не возникает (попадаю в обработчик сброса Reset_Handler). Чем это может быть вызвано?

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

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение bkolbov » 15 ноя 2019, 09:19

Добрый день!

А мк от какого источника в момент сброса тактируется? Ну и на самом деле не должно быть разницы wdt или aircr - они по ИЛИ объединяются потом.

Ответить

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

Пользователи онлайн

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