32-разрядные микроконтроллеры разработки АО "НИИЭТ"
Модераторы: dav, bkolbov, Alis, pip, _sva_, dav, bkolbov, Alis, pip, _sva_, dav, bkolbov, Alis, pip, _sva_
-
Василий
- Сообщения: 11
- Зарегистрирован: 15 ноя 2017, 15:30
- Предприятие: ООО "НПФ Вектор"
Сообщение
Василий » 13 дек 2017, 17:29
bkolbov писал(а): ↑16 ноя 2017, 15:40
Для сброса удержания необходимо чтобы произошел отрицательный результат сравнения компаратора, и затем триггер был сброшен через DCRTC. И тогда по ближайшему событию TBCTR = 0000h удержание будет отключено, и продолжится генерация ШИМ, согласно настройкам модуля.
Путем экспериментов обнаружил, что для сброса удержания необходимо также сбросить флаг OST в регистре HDCLR.
Пороговый выключатель настраивается на многократный режим срабатывания так:
Код: Выделить всё
NT_PWM0->HDSEL_bit.DCMP0 = 1; //выбор цифрового компаратора блока АЦП, с выхода которого берется сигнал для формирования события удержания
NT_PWM0->HDSEL_bit.CBC = 1; //многократный режим срабатывания
NT_PWM0->HDCTL_bit.HDA = 1; //по событию от компаратора (ток меньше задания) верхний ключ - в состояние "1"
NT_PWM0->HDCTL_bit.HDB = NT_PWM0->HDCTL_bit.HDA;
При этом без выполнения строчки:
Код: Выделить всё
NT_PWM0->HDCLR = (1<<2); //Сброс флага OST порогового переключателя
Из режима удержания он не выходит, не смотря на то, что однократный режим срабатывания выключен.
-
bkolbov
- Сообщения: 245
- Зарегистрирован: 14 дек 2015, 11:37
- Предприятие: АО НИИЭТ
- Откуда: Воронеж
Сообщение
bkolbov » 09 янв 2018, 10:27
Благодарю, Василий, что поделились результатами эксперимента. Наши исследования подтвердили его. Дополню лишь, что сброс удержания вне зависимости от режима осуществится лишь при сбросе OST после наступления нового периода ШИМ (TBCTR = 0000h).
Сведения об этом внесем в errata.
-
Bond
- Сообщения: 3
- Зарегистрирован: 18 фев 2018, 21:27
- Предприятие: ООО "ГАМЕМ"
Сообщение
Bond » 18 фев 2018, 22:04
По вопросу Александра от 03 июл 2017:
3)Энвик->IP[(uint32_t)(IRQn)] = ((priority << (8 - __Энвик_PRIO_BITS)) & 0xff); Так мы задаем Приоритет... Вопрос чему равен регистр __Энвик_PRIO_BITS(обычно это число равно 4)...
и ответу на этот вопрос от 17 июл 2017:
3) Равен 3.
А так же ответа:
4)Контроллер прерываний Энвик
Контроллер обеспечивает:
- программное задание уровня приоритета независимо для каждого прерывания в
диапазоне от 0 до 15 (прерывание с уровнем 0 имеет наивысший приоритет);
При __Энвик_PRIO_BITS, равном 3 (что соответствует действительности - проверялось экспериментально), приоритеты прерываний не могут лежать в диапазоне 0...15. Они лежат в диапазоне 0...7.
-
Лашкевич
- Сообщения: 200
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
-
Contact:
Сообщение
Лашкевич » 19 апр 2018, 12:00
Не очень понятно написано про поле INTPRD регистра ETPS. В таблице А. 12. 21 сказано, что значение 00 используется для прерывания по каждому событию, а 01 по первому событию, что уже несколько путает: что такое каждое, а что такое первое. Кроме того, на стр. 112 есть такая фраза "Каждая запись в INTPRD сбрасывает счетчик INTCNT. Запись единицы в бит INT
регистра ETFRC увеличит значение счетчика на единицу. Если значение INTPRD = 00b,
то счетчик отключен, а входные события игнорируются."
Наш программист это понял так: если присовить INTPRD равным нулю, то прерываний не будет. А на самом деле это не так. Конечно, прочитав подробнее про все эти счетчики и триггеры догадаться можно как это работает, но, думаю, стоит это описать чуть более однозначно.
-
Лашкевич
- Сообщения: 200
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
-
Contact:
Сообщение
Лашкевич » 03 июл 2018, 16:46
Вопрос по регистру FWDTH - ограничения минимальной длины импульса. И в тексте, и в таблице регистров указано максимальное значение Fh, что, судя по всему, ошибка, и верное значение 0xFF. Кроме того, кажется, масштаб там тоже неверный, и у нас получилось что реальное ограничение минимального импульса в разы меньше, чем по документации.
-
bkolbov
- Сообщения: 245
- Зарегистрирован: 14 дек 2015, 11:37
- Предприятие: АО НИИЭТ
- Откуда: Воронеж
Сообщение
bkolbov » 04 июл 2018, 09:04
Лашкевич писал(а): ↑03 июл 2018, 16:46
Вопрос по регистру FWDTH - ограничения минимальной длины импульса. И в тексте, и в таблице регистров указано максимальное значение Fh, что, судя по всему, ошибка, и верное значение 0xFF. Кроме того, кажется, масштаб там тоже неверный, и у нас получилось что реальное ограничение минимального импульса в разы меньше, чем по документации.
Да, верное 0xFF. В 10 раз меньше, если быть точным - при 100МГц 10нс * 256 = 2,56мкс.
-
_Desh_
- Сообщения: 2
- Зарегистрирован: 25 июл 2018, 14:43
- Предприятие: Филиал АО "РКЦ "Прогресс" - ОКБ "Спектр"
Сообщение
_Desh_ » 25 июл 2018, 14:51
Не смог найти в ТО явного указания о поддержке (или отсутствии таковой) режима High Speed для интерфейса USB 2.0 (High Speed). Предлагаю добавить в соответствующий раздел, а лучше в начало, где перечислены характеристики МК.
-
Илья
- Сообщения: 16
- Зарегистрирован: 28 ноя 2018, 00:10
- Предприятие: ЛЭМЗ
Сообщение
Илья » 28 ноя 2018, 00:31
И все же я хотел бы закончить тему о приоритетах прерываний. Не нашел в вышесказанном ответа на вопрос, который задавался несколько раз
вопрос1: сколько же уровней приоритета прерываний в контроллере, 8 или16?
В ТО (стр.73) написано 16 . Здесь я встретил опровержение, и что их 8. ??
вопрос 2 касается содержимого регистра AIRCR, а именно битового поля определяющего количество групп и подгрупп.
Данное битовое поле шириной в три бита [10:8] . Так? Хотелось бы увидеть табличку зависимости количества групп/подгрупп от содержимого этого битового поля, как это сделано в импортной документации на кортекс-M4, чтобы раз и на всегда исключить недопонимание.
Благодарю.
-
bkolbov
- Сообщения: 245
- Зарегистрирован: 14 дек 2015, 11:37
- Предприятие: АО НИИЭТ
- Откуда: Воронеж
Сообщение
bkolbov » 29 ноя 2018, 09:17
Илья писал(а): ↑28 ноя 2018, 00:31
И все же я хотел бы закончить тему о приоритетах прерываний. Не нашел в вышесказанном ответа на вопрос, который задавался несколько раз
вопрос1: сколько же уровней приоритета прерываний в контроллере, 8 или16?
В ТО (стр.73) написано 16 . Здесь я встретил опровержение, и что их 8. ??
вопрос 2 касается содержимого регистра AIRCR, а именно битового поля определяющего количество групп и подгрупп.
Данное битовое поле шириной в три бита [10:8] . Так? Хотелось бы увидеть табличку зависимости количества групп/подгрупп от содержимого этого битового поля, как это сделано в импортной документации на кортекс-M4, чтобы раз и на всегда исключить недопонимание.
Благодарю.
Добрый день!
1) 3 бита, 8 приоритетов
2) Данное поле является неизменяемой частью ядра, соответственно, довольно исчерпывающее описание данного поля приведено в Reference Manual на ядро
-
Илья
- Сообщения: 16
- Зарегистрирован: 28 ноя 2018, 00:10
- Предприятие: ЛЭМЗ
Сообщение
Илья » 29 ноя 2018, 10:48
В описании на ядро (кортекс™-M4 Devices Generic User Guide) говорится о том, что данное поле AIRCR[10:8] (PRIGROUP) определяет не само количество приоритетов, а разделение приоритетов прерываний на группы и подгруппы в регистрах установки приоритетов прерываний IPR_n, и приводится табличка соответствия содержимого данного поля (PRIGROUP) и разбиения на группы/подгруппы. Общее количество приоритетов определяется исполнением, где-то 256, где-то 16...Соответственно в регистрах IPR_n работают либо все 8 бит, отведенные для установки приоритета, либо часть из них.
http://keep4u.ru/image/SY1T9
Вот я и хочу узнать, в контроллере К1921ВК01Т используется тот же принцип?
Благодарю.
Пользователи онлайн
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость