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

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

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

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

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

Сообщение Александр »

Спасибо! Такой еще вопрос:
В первый момент включения ножки контроллера находятся в 3 состоянии? Или могут выдавать логические уровни(при подаче питания)
Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

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

Сообщение Лашкевич »

В документации вроде описано, какие ножки в каком состоянии. Насколько я помню, в 3 состоянии все, кроме житага.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
bkolbov
Сообщения: 248
Зарегистрирован: 14 дек 2015, 11:37
Предприятие: АО НИИЭТ
Откуда: Воронеж

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

Сообщение bkolbov »

Состояние по сбросу регистров GPIODEN и ALTFUNCSET как раз и говорит о том, что будет с ножками в момент включения.
Не в z-состоянии могут быть только некоторые ноги порта B, D и E.
petrovitch
Сообщения: 107
Зарегистрирован: 15 фев 2017, 19:07

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

Сообщение petrovitch »

Какова последовательность подачи питания на микросхему? Не могу найти в документации.
Просто в моей схеме процессор не всегда запускается при подаче питания.
dav
Сообщения: 209
Зарегистрирован: 14 дек 2015, 09:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

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

Сообщение dav »

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

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

Сообщение Laimer »

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

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

Сообщение Laimer »

Начали осваивать К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));
    }
}
Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

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

Сообщение Лашкевич »

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 »

Здравствуйте.
Возникают проблемы с использованием WatchDog-таймера по прямому назначению. При сбросе по нему контроллер попадает в непонятную область памяти. В то же время при сбросе через регистр AIRCR никаких проблем не возникает (попадаю в обработчик сброса Reset_Handler). Чем это может быть вызвано?
bkolbov
Сообщения: 248
Зарегистрирован: 14 дек 2015, 11:37
Предприятие: АО НИИЭТ
Откуда: Воронеж

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

Сообщение bkolbov »

Добрый день!

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

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