К1921ВК01Т - вопросы по ТО и его доработка

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

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

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

Re: К1921ВК01Т - вопросы по ТО и его доработка

Сообщение Лашкевич » 27 июн 2017, 17:49

1. В описании регистра AQCSFRC и при поиске этого регистра по тексту описания не получается найти, когда именно (в какой момент времени) применятся настройки, которые он конфигурирует. У тексаса есть специальное поле RLDCSF регистра AQSFRC, которое настраивает поведение регистра AQCSFRC (параметры теневой загрузки). В данном ТО написано, что RLDCSF трогать нельзя, но как при этом работает AQCSFRC я не нашел.

2. В описании регистра AQSFRC про поле ACTSFB написано, что это действие с сигналом на выходе, но не указано, когда это действие выполняется. Нужно указать что-то типа, "действие при получении сигнала формирования выхода полем OTSFB" или как-то так, иначе трудно догадаться, как регистр AQSFRC работает и как им пользоваться. Или более подробно расписать в тексте ТО. Аналогично нужно дополнить про поля OTSFA и ACTSFA. Также написать, как у этого регистра с "теневыми" значениями - имеются ли они, и в какой момент применяются его настройки.

3. Поле CAPSYNCSEL регистра PWM_CTRL. Про него написано, что он выбирает источник синхронизации, но не написано, что для блоков захвата. Из описания поля можно подумать, что он влияет на синхронизацию модулей ШИМ. Можно, конечно, из рисунка 14.3 понять что куда, но лучше дополнить описание регистра более четко.

4. Поле CAPSYNCSEL, как и многие другие, не ищется по PDF документу из-за того, что оно разбито на несколько строк. Это очень неудобно, нужно что-то с этим сделать. Иначе, глядя в код программы, сложно быстро найти в документации что имеется ввиду.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

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

Re: К1921ВК01Т - вопросы по ТО и его доработка

Сообщение Лашкевич » 28 июн 2017, 15:53

Описание регистра VTOR - в оригинальной документации на ARM про этот регистр написано больше важного и интересного. Например, указано, что записываемое в поле TBLOFF смещения должно быть само сдвинуто на столько же бит, насколько этого поле сдвинуто в регистре VTOR - видимо, чтобы приравнивать VTOR напрямую желаемому адресу. Кроме того, есть взаимосвязь между количеством используемых прерываний и количеством нулей в нижней части адреса.
Думаю, в описании надо это все детализировать для однозначности.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

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

Re: К1921ВК01Т - вопросы по ТО и его доработка

Сообщение Лашкевич » 29 июн 2017, 17:12

Не могу найти в описании регистра AIRCR (определение групп и подгрупп NVIC) и его взаимосвязи с регистрами приоритетов прерываний NVIC->ICPR. Есть ли ограничения на распределение групп и подгрупп прерываний в данном изделии? Сколько допустимо групп, подгрупп? Думаю, нужно дополнить ТО и описание регистров этими данными.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

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

Re: К1921ВК01Т - вопросы по ТО и его доработка

Сообщение bkolbov » 30 июн 2017, 10:58

Лашкевич писал(а):
27 июн 2017, 17:49
В описании регистра AQCSFRC и при поиске этого регистра по тексту описания не получается найти, когда именно (в какой момент времени) применятся настройки, которые он конфигурирует. У тексаса есть специальное поле RLDCSF регистра AQSFRC, которое настраивает поведение регистра AQCSFRC (параметры теневой загрузки). В данном ТО написано, что RLDCSF трогать нельзя, но как при этом работает AQCSFRC я не нашел.
Да, его трогать не стоит. По умолчанию там 00b, что значит условие CTR=0 (как и в тексасе). Да, пояснить это стоит.
Не могу найти в описании регистра AIRCR (определение групп и подгрупп NVIC) и его взаимосвязи с регистрами приоритетов прерываний NVIC->ICPR. Есть ли ограничения на распределение групп и подгрупп прерываний в данном изделии? Сколько допустимо групп, подгрупп? Думаю, нужно дополнить ТО и описание регистров этими данными.
Наверное вы имели ввиду регистр NVIC->IPR. Битов приоритета 3, соответственно, всего 8 приоритетов.

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

Re: К1921ВК01Т - вопросы по ТО и его доработка

Сообщение Лашкевич » 30 июн 2017, 11:23

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

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

Re: К1921ВК01Т - вопросы по ТО и его доработка

Сообщение Александр » 03 июл 2017, 09:48

1)Регистр ECCTL1. Поле STOP_WRAP. Вопрос Что произойдет при циклическом захвате с таймером и кольцевым буфером, когда сработает счетчик событий. Написано "останов" в описании поля, но это для однократного захвата, а циклический не расписан...Будет ли останов таймера при циклической обработке?
2)VTOR. Записывая адрес смещения в этот регистр, нужно ли его сдвигать на 7 бит?(первые 7 бит возможно зарезервированы). Или можно брать адрес и писать в этот регистр напрямую без сдвигов?
3)NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); Так мы задаем Приоритет... Вопрос чему равен регистр __NVIC_PRIO_BITS(обычно это число равно 4)...

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

Re: К1921ВК01Т - вопросы по ТО и его доработка

Сообщение Александр » 03 июл 2017, 09:56

4)Контроллер прерываний NVIC
Контроллер обеспечивает:
- программное задание уровня приоритета независимо для каждого прерывания в
диапазоне от 0 до 15 (прерывание с уровнем 0 имеет наивысший приоритет);
- генерирование сигнала прерывания по фронту и по уровню сигнала;
- динамическое изменение приоритета прерываний;
- разделение по группам с одинаковым приоритетом и по подгруппам внутри одной
группы;
- передача управления из одного обработчика в другой без восстановления
контекста.

Это описание прерываний... Вопрос что значит фраза "передача управления из одного обработчика в другой без восстановления
контекста"

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

Re: К1921ВК01Т - вопросы по ТО и его доработка

Сообщение bkolbov » 17 июл 2017, 12:15

Александр писал(а):
03 июл 2017, 09:48
1)Регистр ECCTL1. Поле STOP_WRAP. Вопрос Что произойдет при циклическом захвате с таймером и кольцевым буфером, когда сработает счетчик событий. Написано "останов" в описании поля, но это для однократного захвата, а циклический не расписан...Будет ли останов таймера при циклической обработке?
2)VTOR. Записывая адрес смещения в этот регистр, нужно ли его сдвигать на 7 бит?(первые 7 бит возможно зарезервированы). Или можно брать адрес и писать в этот регистр напрямую без сдвигов?
3)NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); Так мы задаем Приоритет... Вопрос чему равен регистр __NVIC_PRIO_BITS(обычно это число равно 4)...
4)Контроллер прерываний NVIC
Контроллер обеспечивает:
- программное задание уровня приоритета независимо для каждого прерывания в
диапазоне от 0 до 15 (прерывание с уровнем 0 имеет наивысший приоритет);
- генерирование сигнала прерывания по фронту и по уровню сигнала;
- динамическое изменение приоритета прерываний;
- разделение по группам с одинаковым приоритетом и по подгруппам внутри одной
группы;
- передача управления из одного обработчика в другой без восстановления
контекста.
Это описание прерываний... Вопрос что значит фраза "передача управления из одного обработчика в другой без восстановления
контекста"
1) Поле STOP_WRAP не влияет на работу счетчика TSCTR, только на возможность осуществления захвата. Счет таймера управляется состоянием бита TSCTRSTOP в ECCTL1.
2) Необходимо писать адрес на прямую, т.е. просто глобальный адрес, обязательно выравненный (биты 6-0 равны нулю).
3) Равен 3.
4) Контекст - состояние регистров общего назначения ядра. При переходе между прерываниями, контекст основной программы не восстанавливается, за счет этого переход происходит за 6 тактов, а не за 12. Описание с сайта ARM (найдите поиском там Tail chaining).

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

Re: К1921ВК01Т - вопросы по ТО и его доработка

Сообщение Александр » 24 июл 2017, 13:44

А что Вы подразумеваете под регистрами общего назначения?


Ответить

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

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

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