Страница 28 из 62

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

Добавлено: 09 янв 2018, 09:37
Лашкевич
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).

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

Добавлено: 15 янв 2018, 15:58
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?

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

Добавлено: 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?

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

Добавлено: 15 янв 2018, 18:23
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?

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

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

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

Добавлено: 31 янв 2018, 17:13
DmitryK
Прошу прощения, в первом уравнении имелось в виду(NT_PWMn->TBPHS_bit.TBPHS = n)

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

Добавлено: 01 фев 2018, 09:24
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;)
Добрый день!
Задержка появляется только в момент генерации синхроипульса, через цепочку блоков этот импульс проходит "насквозь", т.е. дополнительных задержек не появляется.

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

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

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

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

К сожалению, мы не занимаемся формовкой и "ликбез" осуществить не в состоянии. Всё что у нас есть - документация на корпус, остальное обычно решается на стороне потребителя.

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

Добавлено: 05 мар 2018, 17:44
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.