К1921ВК01Т (арм Cortex-M4F)

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

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

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

Re: К1921ВК01Т (арм Cortex-M4F)

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

Ngg писал(а): 18 дек 2017, 15:39 Добрый день микроконтроллер зависает на функция вычисления Sin и Cos
uf.angle += 0.0001*rmp.output;
if(uf.angle >= 2.0*PI)
{
uf.angle = uf.angle-2.0*PI;
}

uf.freq = rmp.output;
uf.calc(&uf);
angle=uf.angle;
cosAngl=cos(angle);
sinAngl=sin(angle);
все представленные величины размерности double, так же бывают зависания на некоторых простых условия if(...), начинает работать только при переносе условия в какое либо другое место. Данная часть кода выполняется в прерывании по таймеру 10кГц, при описании синуса через ряд Тейлора все исправно работает. Среда разработки Qt Creator. Сборка основана на ваших демо проектах. Отладочная плата ОАО "НИИЭТ".
Добрый день. Как именно зависает? Посмотрите через JTAG, куда попадает процессор. Вполне возможно, что синус и косинус вызываются как-то неправильно или не оттуда, и процессор встает на несуществующей инструкции или типа того. Пройдите по шагам это место, покажите дизассемблерный код места зависания. И вообще, крайне не рекомендуется пользоваться стандартными сишными функциями вычисления тригонометрии: они реализованы в формате double, очень медленные и не поддерживают в вычислениях модуль FPU (потому что он float). Найдите быстрые табличные реализации и используйте их, и всегда контролируйте в окне дизассеблера, используется ли модуль FPU. Посмотрите рекомендации презентации отсюда (http://motorcontrol.ru/courses/courses_mc01/ , день три, там pdf).
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
rasulikv
Сообщения: 6
Зарегистрирован: 15 янв 2018, 15:38
Предприятие: КВ-Системы

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение rasulikv »

Добрый день. Работаю в сетапе JetLink9 + VectorCARD +VectorIDE, и все было хорошо, пока я не ткнул в Run до того как OpenOCD полностью сцепился с МК. Теперь он сцепляться не хочет, консоль выдает следующее:
| Показать
Open On-Chip Debugger 0.10.0-dev-00189-g554313b-dirty (2016-01-12-08:19)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
adapter speed: 2000 kHz
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
none separate
кортекс_m reset_config sysresetreq
trst_only separate trst_push_pull
adapter speed: 1500 kHz
Info : No device selected, using first device.
Info : J-Link V9 compiled Oct 6 2017 16:38:28
Info : Hardware version: 9.10
Info : VTarget = 3.303 V
Info : clock speed 1500 kHz
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: k1921vk01t.cpu: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Error: Could not initialize the debug port
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: k1921vk01t.cpu: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Error: Could not initialize the debug port
Error: Target not examined yet
in procedure 'reset' called at file "C:\Program Files (x86)\VectorIDEv1.2\Eclipse\\..\openocd/kits/k1921vk01t_jlink/simple_connect.cfg", line 15
in procedure 'ocd_bouncer'
Пробовал вставлять JetLink в другие USB, переустанавливать ему дрова. Мог ли я убить контроллер таким образом? Если нужно стереть флеш, то как подать нужную по даташиту команду во FLASH_FULL_ERASE с подтянутой ножкой H2?
Аватара пользователя
Лашкевич
Сообщения: 372
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: К1921ВК01Т (арм Cortex-M4F)

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

Добрый день. Сложно сказать, что произошло, но да, стереть контроллер в такой ситуации первое что надо попробовать. Как это делать разными способами описано в viewtopic.php?f=37&t=504&p=3556#p3558 (вверх/вниз полистайте там). Скрипты описанные лежат в дистибутиве VectorIDE в директории openocd

rasulikv писал(а): 15 янв 2018, 15:58 Добрый день. Работаю в сетапе JetLink9 + VectorCARD +VectorIDE, и все было хорошо, пока я не ткнул в Run до того как OpenOCD полностью сцепился с МК. Теперь он сцепляться не хочет, консоль выдает следующее:
| Показать
Open On-Chip Debugger 0.10.0-dev-00189-g554313b-dirty (2016-01-12-08:19)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
adapter speed: 2000 kHz
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
none separate
кортекс_m reset_config sysresetreq
trst_only separate trst_push_pull
adapter speed: 1500 kHz
Info : No device selected, using first device.
Info : J-Link V9 compiled Oct 6 2017 16:38:28
Info : Hardware version: 9.10
Info : VTarget = 3.303 V
Info : clock speed 1500 kHz
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: k1921vk01t.cpu: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Error: Could not initialize the debug port
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: k1921vk01t.cpu: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Error: Could not initialize the debug port
Error: Target not examined yet
in procedure 'reset' called at file "C:\Program Files (x86)\VectorIDEv1.2\Eclipse\\..\openocd/kits/k1921vk01t_jlink/simple_connect.cfg", line 15
in procedure 'ocd_bouncer'
Пробовал вставлять JetLink в другие USB, переустанавливать ему дрова. Мог ли я убить контроллер таким образом? Если нужно стереть флеш, то как подать нужную по даташиту команду во FLASH_FULL_ERASE с подтянутой ножкой H2?
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
rasulikv
Сообщения: 6
Зарегистрирован: 15 янв 2018, 15:38
Предприятие: КВ-Системы

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение rasulikv »

Да, это помогло. Видимо каким то образом слетела настройка выводов порта как JTAGа. У меня сработал нииэтовский скрипт. Спасибо!
Лашкевич писал(а): 15 янв 2018, 17:06 Добрый день. Сложно сказать, что произошло, но да, стереть контроллер в такой ситуации первое что надо попробовать. Как это делать разными способами описано в viewtopic.php?f=37&t=504&p=3556#p3558 (вверх/вниз полистайте там). Скрипты описанные лежат в дистибутиве VectorIDE в директории openocd

rasulikv писал(а): 15 янв 2018, 15:58 Добрый день. Работаю в сетапе JetLink9 + VectorCARD +VectorIDE, и все было хорошо, пока я не ткнул в Run до того как OpenOCD полностью сцепился с МК. Теперь он сцепляться не хочет, консоль выдает следующее:
| Показать
Open On-Chip Debugger 0.10.0-dev-00189-g554313b-dirty (2016-01-12-08:19)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
adapter speed: 2000 kHz
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
none separate
кортекс_m reset_config sysresetreq
trst_only separate trst_push_pull
adapter speed: 1500 kHz
Info : No device selected, using first device.
Info : J-Link V9 compiled Oct 6 2017 16:38:28
Info : Hardware version: 9.10
Info : VTarget = 3.303 V
Info : clock speed 1500 kHz
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: k1921vk01t.cpu: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Error: Could not initialize the debug port
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: k1921vk01t.cpu: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Error: Could not initialize the debug port
Error: Target not examined yet
in procedure 'reset' called at file "C:\Program Files (x86)\VectorIDEv1.2\Eclipse\\..\openocd/kits/k1921vk01t_jlink/simple_connect.cfg", line 15
in procedure 'ocd_bouncer'
Пробовал вставлять JetLink в другие USB, переустанавливать ему дрова. Мог ли я убить контроллер таким образом? Если нужно стереть флеш, то как подать нужную по даташиту команду во FLASH_FULL_ERASE с подтянутой ножкой H2?
DmitryK
Сообщения: 11
Зарегистрирован: 02 окт 2017, 15:20
Предприятие: -

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение DmitryK »

Здравствуйте!
Подскажите пожалуйста, при синхронизации блоков ШИМ, если все блоки включены цепочкой, задержка в один такт распространяется на каждый последующий блок? (NT_PWMn->TBPHS_bit.TBPHS = n+1) или (NT_PWM0->TBPHS_bit.TBPHS = 0; NT_PWM(1...8)->TBPHS_bit.TBPHS = 1;)
DmitryK
Сообщения: 11
Зарегистрирован: 02 окт 2017, 15:20
Предприятие: -

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение DmitryK »

Прошу прощения, в первом уравнении имелось в виду(NT_PWMn->TBPHS_bit.TBPHS = n)
bkolbov
Сообщения: 248
Зарегистрирован: 14 дек 2015, 11:37
Предприятие: АО НИИЭТ
Откуда: Воронеж

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение bkolbov »

DmitryK писал(а): 31 янв 2018, 17:10 Здравствуйте!
Подскажите пожалуйста, при синхронизации блоков ШИМ, если все блоки включены цепочкой, задержка в один такт распространяется на каждый последующий блок? (NT_PWMn->TBPHS_bit.TBPHS = n+1) или (NT_PWM0->TBPHS_bit.TBPHS = 0; NT_PWM(1...8)->TBPHS_bit.TBPHS = 1;)
Добрый день!
Задержка появляется только в момент генерации синхроипульса, через цепочку блоков этот импульс проходит "насквозь", т.е. дополнительных задержек не появляется.
Аватара пользователя
Лашкевич
Сообщения: 372
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: К1921ВК01Т (арм Cortex-M4F)

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

Добрый день!
Мы хотим применить данный микроконтроллер в металлокерамическом корпусе, однако контрактное производство по монтажу печатных плат запросило информацию о работе с таким изделием - как формовать ножки, какая для этого нужна оснастка, какое получается посадочное место на печатной плате и какие документы этот процесс описывают. Можно получить такой "ликбез", чтобы передать его производителям? Могут ли микроконтроллеры поставляться уже с сформованными ножками?
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
bkolbov
Сообщения: 248
Зарегистрирован: 14 дек 2015, 11:37
Предприятие: АО НИИЭТ
Откуда: Воронеж

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение bkolbov »

Лашкевич писал(а): 13 фев 2018, 18:34 Добрый день!
Мы хотим применить данный микроконтроллер в металлокерамическом корпусе, однако контрактное производство по монтажу печатных плат запросило информацию о работе с таким изделием - как формовать ножки, какая для этого нужна оснастка, какое получается посадочное место на печатной плате и какие документы этот процесс описывают. Можно получить такой "ликбез", чтобы передать его производителям? Могут ли микроконтроллеры поставляться уже с сформованными ножками?
Добрый день!

К сожалению, мы не занимаемся формовкой и "ликбез" осуществить не в состоянии. Всё что у нас есть - документация на корпус, остальное обычно решается на стороне потребителя.
Вложения
208-1.pdf
Корпус 4250.208-1
(98.38 КБ) 157 скачиваний
Ngg
Сообщения: 4
Зарегистрирован: 18 дек 2017, 15:29
Предприятие: ЦНИИ СЭТ

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение Ngg »

bkolbov писал(а): 09 янв 2018, 09:35 Добрый день!
Как диагностируете зависание? На какой частоте работает ядро? Какое количество waitstates по флеши стоит?
Лашкевич писал(а): 09 янв 2018, 09:37 Добрый день. Как именно зависает? Посмотрите через JTAG, куда попадает процессор. Вполне возможно, что синус и косинус вызываются как-то неправильно или не оттуда, и процессор встает на несуществующей инструкции или типа того. Пройдите по шагам это место, покажите дизассемблерный код места зависания. И вообще, крайне не рекомендуется пользоваться стандартными сишными функциями вычисления тригонометрии: они реализованы в формате double, очень медленные и не поддерживают в вычислениях модуль FPU (потому что он float). Найдите быстрые табличные реализации и используйте их, и всегда контролируйте в окне дизассеблера, используется ли модуль FPU. Посмотрите рекомендации презентации отсюда (http://motorcontrol.ru/courses/courses_mc01/ , день три, там pdf).
Спасибо за ответ. Частота ядра 100 МГц. По поводу waitsates не понял, если вы про breakpoint'ы, то не более 2х. Еще существует проблема с отладкой, контроллер постоянно приходится стирать контроллер bat файлом перед дебагом(ошибка target not halted). Программатор St-link v2(клон), до этого использовался J-link 9 работал лучше, но к сожалению умер, пример tick_1ms отлаживается без проблем, а на большом проекте зависает, причем после ресета загораются инициализированные диоды. Конфигурация Qt 3.4.2+GCC_арм_4.9+OpenOCD на основе VectorIDE. Подключил контроллер FPU зависает на обычном делении в main функции, до этого данный проект без FPU с применением "костылей" работал нормально, но довольно медленно. Проект собирался на основе MotorContor(Vector) без применения IQ библиотек.
http://dropmefiles.com/3Dgrc. Прилагаю файлы qbs,main,доп библиотеки к базе примеров перефирии Qt и скрин дизасемблера зависающего на 6 строке деление float/float.
Ответить

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