К1921ВК01Т - вопросы по ТО и его доработка
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т - вопросы по ТО и его доработка
Вероятно, было бы полезно добавить в документацию (или отдельный документ) рекомендации по конфигурации модулей ШИМ под разные задачи, как это сделано у TI в их описании. Сейчас можно посмотреть прямо в тексасовый документ, там на стр. 68 и далее для разных силовых преобразователей есть примеры с кодом. Ну или почитайте motorcontroldemo, там мертвое время настраивается тоже.
-
- Сообщения: 107
- Зарегистрирован: 15 фев 2017, 19:07
Re: К1921ВК01Т - вопросы по ТО и его доработка
В motorcontroldemo я не увидел работы с DMA. С чем это связано?
Кстати, очень туманное описание DMA в документации.
Кстати, очень туманное описание DMA в документации.
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т - вопросы по ТО и его доработка
DMA в основном нужно для задач широкополосной передачи данных, для приложений, работающих с потоками данных - аудио, фото, видео, IO. Именно в motorcontrol задачах DMA редко для чего можно приспособить. Примеры работы с DMA можно найти на битбакете.
- Disona
- Сообщения: 81
- Зарегистрирован: 06 дек 2016, 11:18
- Предприятие: НПФ Вектор
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т - вопросы по ТО и его доработка
Здравствуйте
У меня проблема с настройкой порогового выключателя в модулях ШИМ, а именно с регистром "HDSEL".
У меня не получается выставить биты "CBC" и/или "OSHT". Все остальные биты в этом регистре взводятся/сбрасываются нормально, а эти два никак.
Пробовал взводить их программно побитово (NT_PWM0->HDSEL_bit.OSHT= 1), программно через маску (NT_PWM0->HDSEL= (1 << 31)), пробовал в среде разработки в режиме отладке через просмотр памяти (адрес 0xA000B088 согласно документации), через окно "Watch", и через просмотр периферийных регистров, не получается никак.
Пробовал прописывать в регистр "HDSEL" значение 0xFFFFFFFF - при нажатии "Enter" значение регистра становится 0x07FFFFFF.
Про проблему со старым заголовочником с ошибкой знаю, её сейчас нет.
Такое поведение у регистра HDSEL во всех модулях ШИМ, не только в PWM0.
В документации указано, что эти регистры и на запись, и на чтение - то есть должны при чтении показывать, что в них записано, а не нули.
Не подскажите, в чем может быть проблема?
У меня проблема с настройкой порогового выключателя в модулях ШИМ, а именно с регистром "HDSEL".
У меня не получается выставить биты "CBC" и/или "OSHT". Все остальные биты в этом регистре взводятся/сбрасываются нормально, а эти два никак.
Пробовал взводить их программно побитово (NT_PWM0->HDSEL_bit.OSHT= 1), программно через маску (NT_PWM0->HDSEL= (1 << 31)), пробовал в среде разработки в режиме отладке через просмотр памяти (адрес 0xA000B088 согласно документации), через окно "Watch", и через просмотр периферийных регистров, не получается никак.
Пробовал прописывать в регистр "HDSEL" значение 0xFFFFFFFF - при нажатии "Enter" значение регистра становится 0x07FFFFFF.
Про проблему со старым заголовочником с ошибкой знаю, её сейчас нет.
Такое поведение у регистра HDSEL во всех модулях ШИМ, не только в PWM0.
В документации указано, что эти регистры и на запись, и на чтение - то есть должны при чтении показывать, что в них записано, а не нули.
Не подскажите, в чем может быть проблема?
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
ООО "НПФ Вектор"
Re: К1921ВК01Т - вопросы по ТО и его доработка
Добрый день!
Вот здесь было некоторое обсуждение удержания (применительно к его сбросу):
viewtopic.php?f=37&t=538&start=40#p3714
Могу лишь дополнить, что биты выбора режима удержания CBC и OST (регистр HDSEL) не влияют ни на что (писать туда бесполезно, читаются нули). Оба сигнала на удержание генерируются одновременно и объединяются через ИЛИ без учета разрешения конкретного режима. И если сигнал циклического удержания будет сброшен по новому периоду ШИМ автоматически, то сигнал одиночного удержания должен быть сброшен через флаг. Т.е. фактически циклический режим не функционирует, т.к. чтобы снять удержание необходимо также сбрасывать флаг одиночного удержания OST в регистре HDCLR.
В итоге, снятие удержания возможно только при сбросе флага OST в HDCLR лишь после наступления нового периода PWM (CTR==0).
Вот здесь было некоторое обсуждение удержания (применительно к его сбросу):
viewtopic.php?f=37&t=538&start=40#p3714
Могу лишь дополнить, что биты выбора режима удержания CBC и OST (регистр HDSEL) не влияют ни на что (писать туда бесполезно, читаются нули). Оба сигнала на удержание генерируются одновременно и объединяются через ИЛИ без учета разрешения конкретного режима. И если сигнал циклического удержания будет сброшен по новому периоду ШИМ автоматически, то сигнал одиночного удержания должен быть сброшен через флаг. Т.е. фактически циклический режим не функционирует, т.к. чтобы снять удержание необходимо также сбрасывать флаг одиночного удержания OST в регистре HDCLR.
В итоге, снятие удержания возможно только при сбросе флага OST в HDCLR лишь после наступления нового периода PWM (CTR==0).
- Disona
- Сообщения: 81
- Зарегистрирован: 06 дек 2016, 11:18
- Предприятие: НПФ Вектор
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т - вопросы по ТО и его доработка
Большое спасибо!
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
ООО "НПФ Вектор"
- Disona
- Сообщения: 81
- Зарегистрирован: 06 дек 2016, 11:18
- Предприятие: НПФ Вектор
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т - вопросы по ТО и его доработка
Да, и ещё.
В описании аналогового компаратора указано, что бит "TOEN" в регистре "CTLn" позволяет запретить запуск секвенсора АЦП.
Но оказалось, что одновременно с этим он также запрещает и триггер для порогового выключателя ШИМ.
То есть я установил "TOEN = 1", чтобы АЦП не запускать, и искал причину, почему у меня ШИМ не отключается.
В описании аналогового компаратора указано, что бит "TOEN" в регистре "CTLn" позволяет запретить запуск секвенсора АЦП.
Но оказалось, что одновременно с этим он также запрещает и триггер для порогового выключателя ШИМ.
То есть я установил "TOEN = 1", чтобы АЦП не запускать, и искал причину, почему у меня ШИМ не отключается.
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
ООО "НПФ Вектор"
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т - вопросы по ТО и его доработка
Описание 1.5.1.0
1. Стр.98, на "рис. 14.1. – Функциональная схема блока ШИМ" на вход подается частота SysCLK, однако в тексте под рисунком говорится про синхросигнал SynCLK (на рисунке не показан и поиском в документе не находится).
2. Стр. 99, написано "Входной сигнал тактирования TBCLK для первого блока ШИМ формируется на основе сигнала, приходящего с вывода PWM_SYNCI микроконтроллера.". Хотя выше было сказано, и на рисунке показано, что TBCLK формируется на основе SynCLK.
на мой взгляд во всём этом тексте и картинке присутствует путаница, что от чего синхронизирует и на что влияет. Синхросигналы, обнуляющие таймер TBCTR перепутаны с его тактированием.
3. Стр. 108, Фильтр коротких импульсов. "Ширина минимального импульса, допускаемого к прохождению на выход, задается в регистре FWDTH в тактах PCLK". Термин "PCLK" по документу поиском не находится, что это и как формируется - необходимо указать хотя бы, см. рисунок такой-то или раздел такой-то.
4. В FAQ (viewtopic.php?f=37&t=931) в разделе с предложением скачать документацию ссылки устарели. Для 1921ВК01Т1 даже на сайте нельзя открыть страницу продукта, ссылка ведет на несуществующую страницу https://niiet.ru/chips/microcont/602-арм
1. Стр.98, на "рис. 14.1. – Функциональная схема блока ШИМ" на вход подается частота SysCLK, однако в тексте под рисунком говорится про синхросигнал SynCLK (на рисунке не показан и поиском в документе не находится).
2. Стр. 99, написано "Входной сигнал тактирования TBCLK для первого блока ШИМ формируется на основе сигнала, приходящего с вывода PWM_SYNCI микроконтроллера.". Хотя выше было сказано, и на рисунке показано, что TBCLK формируется на основе SynCLK.
на мой взгляд во всём этом тексте и картинке присутствует путаница, что от чего синхронизирует и на что влияет. Синхросигналы, обнуляющие таймер TBCTR перепутаны с его тактированием.
3. Стр. 108, Фильтр коротких импульсов. "Ширина минимального импульса, допускаемого к прохождению на выход, задается в регистре FWDTH в тактах PCLK". Термин "PCLK" по документу поиском не находится, что это и как формируется - необходимо указать хотя бы, см. рисунок такой-то или раздел такой-то.
4. В FAQ (viewtopic.php?f=37&t=931) в разделе с предложением скачать документацию ссылки устарели. Для 1921ВК01Т1 даже на сайте нельзя открыть страницу продукта, ссылка ведет на несуществующую страницу https://niiet.ru/chips/microcont/602-арм
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т - вопросы по ТО и его доработка
Сторожевой таймер описан скудно. Регистр LOCK и как им пользоваться не описан в тексте, как сбрасывать таймер тоже. В описании регистра LOCK (Таблица А.7.5) описывается регистр WDTLOCK. Непонятно, то одно и то же или нет.
Re: К1921ВК01Т - вопросы по ТО и его доработка
Столкнулся с проблемой при настройке усреднителя АЦП. Сделал параметр AVG настраиваемым. При изменении параметра на несколько единиц вниз стабильно зависает весь АЦП: перестают выполняться измерения, не формируются прерывания. Например, если задать AVG=4, а потом сбросить на AVG=0. Или сбросить AVG с 6 до 3.
В документации не нашел запретов редактирования параметра AVG в каких-либо режимах работы микроконтроллера.
Код: Выделить всё
if (p->Idc_AVG_setting < 0)
p->Idc_AVG_setting = 0;
if (p->Idc_AVG_setting > 6)
p->Idc_AVG_setting = 6;
NT_ADC->SAC_bit.AVG2=p->Idc_AVG_setting;