Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

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

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

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

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

Конечно посмотрю.
Хотелось бы поинтересоваться: как на практике можно определить Ld и Lq? Есть ли устоявшиеся методики?
Аватара пользователя
Лашкевич
Сообщения: 376
Зарегистрирован: 13 май 2015, 12:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

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

Мы определяем параметры так
https://youtu.be/DYH5EozHoiE?si=sXfkeIpeJyKkSH6n&t=1227
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
petrovitch
Сообщения: 110
Зарегистрирован: 15 фев 2017, 18:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

Интересный материал.
Если правильно понял, то для измерения индуктивности по оси d можно использовать режим 2,
дописав код подачи нескольких напряжений к фазе? Обработка графика тока ведётся средствами микроконтроллера?
Аватара пользователя
Лашкевич
Сообщения: 376
Зарегистрирован: 13 май 2015, 12:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

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

Ну у нас там большой дискретный автомат (машина состояний) на базе замкнутой по току системы (режим 4). Двигатель ставится под ток, ожидается таймаут, ток снимается, подаётся скачок напряжения. И так для всех 4х квадрантов. Графика никакого не снимается, для применения из статьи индуктивности были настолько большие, что за такт системы управления (там было 32кГц) ток изменялся незначительно - поэтому можно было просто ждать достижения током очередной точки заполняемого LUT в реальном времени, и если ток превысил, то заполнять точку LUT (таблицы), далее ждать превышения током следующий точки. Процесс роста тока медленный.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
petrovitch
Сообщения: 110
Зарегистрирован: 15 фев 2017, 18:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

На своей плате попытался запрограммировать ...ВК01Т. Первый раз получилось,
а в последующие попытки выдаются сообщения:
сообщение об ошибке.png
сообщение об ошибке.png (34.63 КБ) 1193 просмотра
Сообщение.png
Сообщение.png (26.16 КБ) 1193 просмотра
В чём может быть проблема?
Аватара пользователя
Лашкевич
Сообщения: 376
Зарегистрирован: 13 май 2015, 12:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

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

Скорее всего проинитили PLL неправильно (кварц другой?), и теперь проц виснет при запуске программы. Попробуйте полное стирание сделать. Там надо какую-то ножку джампером подвязать, см. мануал (вроде H2, но могу путать).
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
dav
Сообщения: 220
Зарегистрирован: 14 дек 2015, 08:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение dav »

Доброго времени суток!

Для очистки внутренней Flash памяти и конфигурации контроллера необходимо провести процедуру аварийного стирания (п. 7.3, страница 42 ТО на микроконтроллер 1921ВК01Т):

1 Во время сброса микроконтроллера анализируется состояние вывода H2. Если вывод находится в состоянии логической единицы (подтянут к 3,3 В), то загрузочная и пользовательская флеш-памяти (включая защищенный и информационный блоки) переводятся в режим, в котором чтение запрещено (при чтении возвращаются нули).

2 Далее по отладочному интерфейсу (SWD или JTAG) должна быть подана команда записи значения 00000001h в регистр FLASH_FULL_ERASE (0x80030164), после чего будет активировано полное стирание. Данный алгоритм реализован в пакете интеграции для Keil. Достаточно выбрать из меню "Flash -> Erase".
petrovitch
Сообщения: 110
Зарегистрирован: 15 фев 2017, 18:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

Я проделал ряд операций согласно Вашим рекомендациям.
И вот что получается.
Отдельно скрипт не заработал!
Я попробовал воспользоваться возможностями Keil.
Добавил микроконтроллер в менеджере пакетов. Открыл самый простой шаблон проекта .
При этом заметил, что строка меню Erase не активна. В конфигурационном меню попытался прописать
J-Link, но тут же появляется сообщение по определению микроконтроллера из списка. 1921 увы не найден!
Как в этой ситуации быть?
Тогда я подключил ST-Link и интерфейс SWD. Никаких дополнительных настроек не потребовалось!
В моём проекте вывод Н2 как раз выведен на внутренний разъём. Далее как в описании. Включил, замкнул на
+3.3В , стёр! В консоли Ок!
Потом интереснее. Вернулся в Eclipse, на котором и веду проект пока на основе MotorControl от "Вектора".
Пытаюсь писать программу. Та же ошибка flash (как на скриншоте)! Возвращаюсь в Keil. Снова беру уже
проект мигания светодиодом из SDK в репозитории, правлю в нём порты под свою схему. Программирую. Работает из flash!
Возвращаюсь в Eclipse. Беру старый пример работы со светодиодами, но ставлю линковщик и отладку на RAM.
Работает! Пересобираю на работу из flash. Пытаюсь запрограммировать. Ошибка!

Не понимаю причин, поскольку проект схемы строился на основе рабочей схемы и точно не затрагивал выводов
JTAG. Кварц 12 МГц. На момент программирования код ещё не работает, поэтому говорить о некорректном определении
альтернативных функций выводов преждевременно. В чём ещё может быть предполагаемая причина такого поведения?
Аватара пользователя
Лашкевич
Сообщения: 376
Зарегистрирован: 13 май 2015, 12:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

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

Если в вашем проекте H2 выведен на внутренний разъем, а есть ли на нём подвязка в ноль, чтобы по-умолчанию был не режим стирания, а нормальный? Может нога в воздухе болтается?

Ещё проверьте житаг. У нас ST-Link уже штук 5 вышли из строя с такими симптомами - работает после активации прошивки секунд 5. Если проект маленький (типа мигания светодиода), то проект прошивается, отладчик успевает встать на main, после чего в консоли видно что житаг отвалился (stlink_usb_error_check(): unknown/unexpected STLINK status code 0x5). Если же проект большой, то он и прошиться может не успеть - отваливается прямо во время прошивки. Но тем не менее повторно прошивается, пляска с H2 не нужна. Попробуйте другие STLINK (те что за 300р пучок на али самые нормальные).

Чтобы исключить проблему с запуском ПО MotorControlDemo и некорректной инициализацией, попробуйте поставить бесконечный цикл сразу в начале main, чтобы ничего не вызывалось дальше. А ещё лучше прямо сверху Reset_Handler в startup.c, чтобы совсем в самом начале программа зацикливалась. Тогда повторно прошиваться точно должен.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
Ответить

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