Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
-
- Сообщения: 110
- Зарегистрирован: 15 фев 2017, 18:07
Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
Конечно посмотрю.
Хотелось бы поинтересоваться: как на практике можно определить Ld и Lq? Есть ли устоявшиеся методики?
Хотелось бы поинтересоваться: как на практике можно определить Ld и Lq? Есть ли устоявшиеся методики?
-
- Сообщения: 110
- Зарегистрирован: 15 фев 2017, 18:07
Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
Интересный материал.
Если правильно понял, то для измерения индуктивности по оси d можно использовать режим 2,
дописав код подачи нескольких напряжений к фазе? Обработка графика тока ведётся средствами микроконтроллера?
Если правильно понял, то для измерения индуктивности по оси d можно использовать режим 2,
дописав код подачи нескольких напряжений к фазе? Обработка графика тока ведётся средствами микроконтроллера?
- Лашкевич
- Сообщения: 376
- Зарегистрирован: 13 май 2015, 12:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
Ну у нас там большой дискретный автомат (машина состояний) на базе замкнутой по току системы (режим 4). Двигатель ставится под ток, ожидается таймаут, ток снимается, подаётся скачок напряжения. И так для всех 4х квадрантов. Графика никакого не снимается, для применения из статьи индуктивности были настолько большие, что за такт системы управления (там было 32кГц) ток изменялся незначительно - поэтому можно было просто ждать достижения током очередной точки заполняемого LUT в реальном времени, и если ток превысил, то заполнять точку LUT (таблицы), далее ждать превышения током следующий точки. Процесс роста тока медленный.
-
- Сообщения: 110
- Зарегистрирован: 15 фев 2017, 18:07
Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
На своей плате попытался запрограммировать ...ВК01Т. Первый раз получилось,
а в последующие попытки выдаются сообщения: В чём может быть проблема?
а в последующие попытки выдаются сообщения: В чём может быть проблема?
- Лашкевич
- Сообщения: 376
- Зарегистрирован: 13 май 2015, 12:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
Скорее всего проинитили PLL неправильно (кварц другой?), и теперь проц виснет при запуске программы. Попробуйте полное стирание сделать. Там надо какую-то ножку джампером подвязать, см. мануал (вроде H2, но могу путать).
-
- Сообщения: 220
- Зарегистрирован: 14 дек 2015, 08:21
- Предприятие: АО НИИЭТ
- Откуда: АО НИИЭТ, Воронеж
Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
Доброго времени суток!
Для очистки внутренней Flash памяти и конфигурации контроллера необходимо провести процедуру аварийного стирания (п. 7.3, страница 42 ТО на микроконтроллер 1921ВК01Т):
1 Во время сброса микроконтроллера анализируется состояние вывода H2. Если вывод находится в состоянии логической единицы (подтянут к 3,3 В), то загрузочная и пользовательская флеш-памяти (включая защищенный и информационный блоки) переводятся в режим, в котором чтение запрещено (при чтении возвращаются нули).
2 Далее по отладочному интерфейсу (SWD или JTAG) должна быть подана команда записи значения 00000001h в регистр FLASH_FULL_ERASE (0x80030164), после чего будет активировано полное стирание. Данный алгоритм реализован в пакете интеграции для Keil. Достаточно выбрать из меню "Flash -> Erase".
Для очистки внутренней Flash памяти и конфигурации контроллера необходимо провести процедуру аварийного стирания (п. 7.3, страница 42 ТО на микроконтроллер 1921ВК01Т):
1 Во время сброса микроконтроллера анализируется состояние вывода H2. Если вывод находится в состоянии логической единицы (подтянут к 3,3 В), то загрузочная и пользовательская флеш-памяти (включая защищенный и информационный блоки) переводятся в режим, в котором чтение запрещено (при чтении возвращаются нули).
2 Далее по отладочному интерфейсу (SWD или JTAG) должна быть подана команда записи значения 00000001h в регистр FLASH_FULL_ERASE (0x80030164), после чего будет активировано полное стирание. Данный алгоритм реализован в пакете интеграции для Keil. Достаточно выбрать из меню "Flash -> Erase".
-
- Сообщения: 110
- Зарегистрирован: 15 фев 2017, 18:07
Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
Я проделал ряд операций согласно Вашим рекомендациям.
И вот что получается.
Отдельно скрипт не заработал!
Я попробовал воспользоваться возможностями Keil.
Добавил микроконтроллер в менеджере пакетов. Открыл самый простой шаблон проекта .
При этом заметил, что строка меню Erase не активна. В конфигурационном меню попытался прописать
J-Link, но тут же появляется сообщение по определению микроконтроллера из списка. 1921 увы не найден!
Как в этой ситуации быть?
Тогда я подключил ST-Link и интерфейс SWD. Никаких дополнительных настроек не потребовалось!
В моём проекте вывод Н2 как раз выведен на внутренний разъём. Далее как в описании. Включил, замкнул на
+3.3В , стёр! В консоли Ок!
Потом интереснее. Вернулся в Eclipse, на котором и веду проект пока на основе MotorControl от "Вектора".
Пытаюсь писать программу. Та же ошибка flash (как на скриншоте)! Возвращаюсь в Keil. Снова беру уже
проект мигания светодиодом из SDK в репозитории, правлю в нём порты под свою схему. Программирую. Работает из flash!
Возвращаюсь в Eclipse. Беру старый пример работы со светодиодами, но ставлю линковщик и отладку на RAM.
Работает! Пересобираю на работу из flash. Пытаюсь запрограммировать. Ошибка!
Не понимаю причин, поскольку проект схемы строился на основе рабочей схемы и точно не затрагивал выводов
JTAG. Кварц 12 МГц. На момент программирования код ещё не работает, поэтому говорить о некорректном определении
альтернативных функций выводов преждевременно. В чём ещё может быть предполагаемая причина такого поведения?
И вот что получается.
Отдельно скрипт не заработал!
Я попробовал воспользоваться возможностями 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, чтобы совсем в самом начале программа зацикливалась. Тогда повторно прошиваться точно должен.
Ещё проверьте житаг. У нас ST-Link уже штук 5 вышли из строя с такими симптомами - работает после активации прошивки секунд 5. Если проект маленький (типа мигания светодиода), то проект прошивается, отладчик успевает встать на main, после чего в консоли видно что житаг отвалился (stlink_usb_error_check(): unknown/unexpected STLINK status code 0x5). Если же проект большой, то он и прошиться может не успеть - отваливается прямо во время прошивки. Но тем не менее повторно прошивается, пляска с H2 не нужна. Попробуйте другие STLINK (те что за 300р пучок на али самые нормальные).
Чтобы исключить проблему с запуском ПО MotorControlDemo и некорректной инициализацией, попробуйте поставить бесконечный цикл сразу в начале main, чтобы ничего не вызывалось дальше. А ещё лучше прямо сверху Reset_Handler в startup.c, чтобы совсем в самом начале программа зацикливалась. Тогда повторно прошиваться точно должен.