К1921ВГ015 общее

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

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

ea
Администратор
Сообщения: 72
Зарегистрирован: 10 окт 2014, 09:08

Re: К1921ВГ015 общее

Сообщение ea »

Vcoder писал(а): 06 май 2025, 18:16 Всем привет!
Очень медленная отладка - это нормально, или я что-то делаю не так? При пошаговой отладке около десяти секунд один шаг выполняется. Использую J-Link v9.

Привожу схему подключения отладочного разъёма:
Jtag.png

Для соединения с отладчиком использую скрипт следующего содержания:

Код: Выделить всё

source [find interface/jlink.cfg]
transport select jtag
source [find target/k1921vg015.cfg]
reset_config trst_only
adapter speed 1000
init
reset halt
1) Можно увеличить скорость адаптера до 2000 кГц в следующей строке скрипта:
adapter speed 2000.

2) Скорость отладки также зависит от количества просматриваемых переменных/регистров. Логично, что чем большее количество мы наблюдаем при отладке, то тем медленнее будут идти отладка по шагам.

Так при отладке в Eclipse (Syntacore IDE) чем больше элементов в списке "Expressions" (особенно больших массивов) и вкладок "Memory" (в том числе большое количесво регистров периферии), тем медленнее происходит отладка по шагам.
Vcoder
Сообщения: 15
Зарегистрирован: 01 май 2025, 14:50
Предприятие: .
Откуда: Уфа

Re: К1921ВГ015 общее

Сообщение Vcoder »

ea, спасибо за ответ!

Я пробовал менять adapter speed, но это не дало ощутимого эффекта.
Нашёл причину медленной отладки: дело оказалось в том, к какому USB порту присоединён адаптер JLINK. Если к USB-2, то все действия происходят очень медленно: и загрузка программы, и отладка. Причём отладка происходит медленно даже вообще без IDE, чисто в интерфейсе gdb. Если же присоединить к порту USB-3, то отладка происходит с привычной скоростью, а загрузка программы вообще молниеносно. Странно, ведь и сам адаптер, и его кабель имеют разъёмы USB-2.

Пользуясь случаем присоединяюсь к вопросам ejsan-а про конденсаторы Vaon_cap, Vbat_cap и Vcore_cap и резистор параллельно кварцевому резонатору HSE.

От себя ещё хочу уточнить по второму пункту ERRATA про смещение нуля АЦП. В еррате сказано:
Возможно добиться результата АЦП без смещения нуля увеличив время подключения
входа к зарядной емкости АЦП с помощью регистра CH_DELAY[].
Каким должно быть это время для устранения смещения нуля? В соответствии с разделом 21.5 "Минимальное время измерения" (РП от 03.04.2025) или больше? Если больше, то насколько?
Аватара пользователя
ejsan
Сообщения: 28
Зарегистрирован: 15 авг 2022, 21:17
Предприятие: vbrspb.ru

Re: К1921ВГ015 общее

Сообщение ejsan »

Vcoder писал(а): 12 май 2025, 21:41 Нашёл причину медленной отладки: дело оказалось в том, к какому USB порту присоединён адаптер JLINK.
Вы бы взяли в таком случае какую-нибудь софтину, вроде AIDA64, или https://www.uwe-sieber.de/usbtreeview_e.html и проверили, на какой же на самом деле скорости ваш JLink подключается? Если в компе материночный чипсет тупит и подключает его только в режиме USB 1.x aka "Full Speed", то ничего удивительного. Иногда помогает "ускориться" включение девайса не напрямую, а через качественный USB хаб.
ea
Администратор
Сообщения: 72
Зарегистрирован: 10 окт 2014, 09:08

Re: К1921ВГ015 общее

Сообщение ea »

dezna писал(а): 07 май 2025, 08:22
ea писал(а): 06 май 2025, 18:25
dezna писал(а): 29 апр 2025, 16:29 добрый день!
так вы научите с батарейкой работать на вашем МК, чтоб не потреблял от батарейки 700мкА (2 МК проверял).
при выключении питания кварц 12МГц все так же молотит. подозреваю, что не настроен батарейный домен...
пробовал выключать LDO прям при включении, никак не отразилось ни на кварце, ни на потреблении, только программа не работала и все...
Осциллятор при отключении LDO0 не должен работать. Осциллятор (HSE) потребляет около 1,5 мА. Принудительно отключить HSE (перевести в PoweDown) можно записью 1 в битовое поле EXTOSC регистра PMURTC->PMU_VBATPER_FORCE.

С решением уменьшения потребления в режиме PowerOFF можно ознакомиться в обновленной версии Errata в репозитории: https://gitflic.ru/project/niiet/niiet_ ... qfp100.pdf
как я понимаю, при выключении питания должно все тушиться. остается только батарейное питание VBAT и все!
по факту, HSE молотит дальше 12МГц, и потребление 700мкА.
потребляет меньше вероятно потому, что по факту напряжение VBAT не 3В, а 3В - Vдиода - Vмилиамперметра.
Снимок_инд_схема.JPG

проверяю вот так, при выключенном питании.
часы заранее настроены и работают. собсно после возобновления подачи основного питания, часы продолжают работать.
Снимок_инд_схема_1.JPG
может я чего не понял? вот и прошу научить как все отключить чтобы при пропадании питания остались только часы с часовым кварцем и потребление ниже 10мкА, не 700!
подозреваю, что в еррата п.8 приведен пример для POWERDOWN не для данного варианта?

ссылка = 404!!
Такое поведение возможно при частичной подпитки микроконтроллера через выводы USB или JTAG, если к микроконтроллеру подключенны устройства отдельным питанием. К выводу №30 USB_DP на плате подключается PullUp резистор, через который также возможа частичная запитка схемы.
Vcoder
Сообщения: 15
Зарегистрирован: 01 май 2025, 14:50
Предприятие: .
Откуда: Уфа

Re: К1921ВГ015 общее

Сообщение Vcoder »

ejsan писал(а): 12 май 2025, 23:35на какой же на самом деле скорости ваш JLink подключается?
Внезапно на full-speed, но дело не в этом.

Вот сообщения ядра при подключении в порт USB-2:

Код: Выделить всё

[ 4763.904873] usb 1-3: new full-speed USB device number 2 using ohci-pci
[ 4764.083620] usb 1-3: New USB device found, idVendor=1366, idProduct=0105, bcdDevice= 1.00
[ 4764.083635] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4764.083641] usb 1-3: Product: J-Link
[ 4764.083645] usb 1-3: Manufacturer: SEGGER
[ 4764.083649] usb 1-3: SerialNumber: 000000000000
[ 4764.135893] cdc_acm 1-3:1.0: ttyACM0: USB ACM device
[ 4764.135967] usbcore: registered new interface driver cdc_acm
[ 4764.135969] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
При подключении в порт USB-3:

Код: Выделить всё

[ 4783.792243] usb 10-2: new full-speed USB device number 2 using xhci_hcd
[ 4783.948998] usb 10-2: New USB device found, idVendor=1366, idProduct=0105, bcdDevice= 1.00
[ 4783.949024] usb 10-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4783.949031] usb 10-2: Product: J-Link
[ 4783.949038] usb 10-2: Manufacturer: SEGGER
[ 4783.949044] usb 10-2: SerialNumber: 000000000000
[ 4783.961238] cdc_acm 10-2:1.0: ttyACM0: USB ACM device
Как видно, в первом случае (USB-2, медленная работа) используется драйвер ohci-pci, а во втором случае (USB-3, быстрая работа) - xhci_hcd. Проверил на работе - при подключении и в порты USB-2, и в порты USB-3 используется драйвер xhci_hcd, и отладка работает быстро.

Возможно дело в драйвере ohci-pci, возможно в материнской плате. В принципе это уже не так важно.
dezna
Сообщения: 58
Зарегистрирован: 20 дек 2024, 08:23
Предприятие: avtomatica

Re: К1921ВГ015 общее

Сообщение dezna »

ea писал(а): 14 май 2025, 11:49
dezna писал(а): 07 май 2025, 08:22 как я понимаю, при выключении питания должно все тушиться. остается только батарейное питание VBAT и все!
по факту, HSE молотит дальше 12МГц, и потребление 700мкА.

проверяю вот так, при выключенном питании.
часы заранее настроены и работают. собсно после возобновления подачи основного питания, часы продолжают работать.
Снимок_инд_схема_1.JPG
может я чего не понял? вот и прошу научить как все отключить чтобы при пропадании питания остались только часы с часовым кварцем и потребление ниже 10мкА, не 700!
подозреваю, что в еррата п.8 приведен пример для POWERDOWN не для данного варианта?

ссылка = 404!!
Такое поведение возможно при частичной подпитки микроконтроллера через выводы USB или JTAG, если к микроконтроллеру подключенны устройства отдельным питанием. К выводу №30 USB_DP на плате подключается PullUp резистор, через который также возможа частичная запитка схемы.
USB, АЦП, WAKEUP не используются. никакого дополнительного питания. при выключении питания только батарейка.
разъем JTAG отключал - нет эффекта.
внешний блок питания 3В подключен вместо батарейки через диод на VBAT.
VBAT = 2.4В
VBAT_CAP = 1.24В
VAON_CAP = VBAT-4мВ
VCC1 = 460мВ (диод совсем отпаивал, не влияет никак)
на выводах от 0 до 140мВ
Снимок_инд_схема_2.JPG
Снимок_инд_схема_2.JPG (142.47 КБ) 2332 просмотра
Vcoder
Сообщения: 15
Зарегистрирован: 01 май 2025, 14:50
Предприятие: .
Откуда: Уфа

Re: К1921ВГ015 общее

Сообщение Vcoder »

Не получается отключить JTAG для защиты программы... Может я что-то делаю не так?

Код: Выделить всё

$ openocd -f connect_jlink_jtag.cfg -c "k1921vg015 jtag disable" -c "reset run" -c "exit"
Open On-Chip Debugger 0.12.0+dev-00522-g7352db949 (2025-05-15-21:56)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
DEPRECATED! use 'adapter speed' not 'adapter_khz'
Info : J-Link V9 compiled Sep  1 2016 18:29:50
Info : Hardware version: 9.60
Info : VTarget = 3.346 V
Info : clock speed 1000 kHz
Info : JTAG tap: K1921VG015.cpu tap/device found: 0x00000d5b (mfg: 0x6ad (CloudBEAR LLC), part: 0x0000, ver: 0x0)
Info : JTAG tap: BSCAN.bscan tap/device found: 0x20c5f44d (mfg: 0x226 (MediaTek), part: 0x0c5f, ver: 0x2)
Info : datacount=2 progbufsize=16
Info : Disabling abstract command reads from CSRs.
Info : Examined RISC-V core; found 1 harts
Info :  hart 0: XLEN=32, misa=0x40103124
Info : starting gdb server for K1921VG015.cpu on 3333
Info : Listening on port 3333 for gdb connections
Info : JTAG tap: K1921VG015.cpu tap/device found: 0x00000d5b (mfg: 0x6ad (CloudBEAR LLC), part: 0x0000, ver: 0x0)
Info : JTAG tap: BSCAN.bscan tap/device found: 0x20c5f44d (mfg: 0x226 (MediaTek), part: 0x0c5f, ver: 0x2)

--- Здесь долго думает, около минуты ---

Try to disable JTAG interface
Please wait ... 
done! Power on reset cycle is required for the new settings to take effect.
Info : JTAG tap: K1921VG015.cpu tap/device found: 0x00000d5b (mfg: 0x6ad (CloudBEAR LLC), part: 0x0000, ver: 0x0)
Info : JTAG tap: BSCAN.bscan tap/device found: 0x20c5f44d (mfg: 0x226 (MediaTek), part: 0x0c5f, ver: 0x2)
Затем полностью отключаю питание и платы с МК, и JLink-а примерно на минуту, чтобы наверняка.
Потом пытаюсь прочитать что-нибудь:

Код: Выделить всё

$ openocd -f connect_jlink_jtag.cfg -c "k1921vg015 read main 0x80000000" -c "reset run" -c "exit"
Open On-Chip Debugger 0.12.0+dev-00522-g7352db949 (2025-05-15-21:56)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
DEPRECATED! use 'adapter speed' not 'adapter_khz'
Info : J-Link V9 compiled Sep  1 2016 18:29:50
Info : Hardware version: 9.60
Info : VTarget = 3.358 V
Info : clock speed 1000 kHz
Info : JTAG tap: K1921VG015.cpu tap/device found: 0x00000d5b (mfg: 0x6ad (CloudBEAR LLC), part: 0x0000, ver: 0x0)
Info : JTAG tap: BSCAN.bscan tap/device found: 0x20c5f44d (mfg: 0x226 (MediaTek), part: 0x0c5f, ver: 0x2)
Info : datacount=2 progbufsize=16
Info : Disabling abstract command reads from CSRs.
Info : Examined RISC-V core; found 1 harts
Info :  hart 0: XLEN=32, misa=0x40103124
Info : starting gdb server for K1921VG015.cpu on 3333
Info : Listening on port 3333 for gdb connections
Info : JTAG tap: K1921VG015.cpu tap/device found: 0x00000d5b (mfg: 0x6ad (CloudBEAR LLC), part: 0x0000, ver: 0x0)
Info : JTAG tap: BSCAN.bscan tap/device found: 0x20c5f44d (mfg: 0x226 (MediaTek), part: 0x0c5f, ver: 0x2)
Read MFLASH main region:
    addr = 0x80000000, data = 0x30001073
    addr = 0x80000004, data = 0x380114b7
    addr = 0x80000008, data = 0x4a423
    addr = 0x8000000c, data = 0x400001b7
Info : JTAG tap: K1921VG015.cpu tap/device found: 0x00000d5b (mfg: 0x6ad (CloudBEAR LLC), part: 0x0000, ver: 0x0)
Info : JTAG tap: BSCAN.bscan tap/device found: 0x20c5f44d (mfg: 0x226 (MediaTek), part: 0x0c5f, ver: 0x2)
Всё прекрасно читается.

Содержимое файла connect_jlink_jtag.cfg:

Код: Выделить всё

source [find interface/jlink.cfg]
transport select jtag
source [find target/k1921vg015.cfg]
reset_config trst_only
adapter speed 1000
init
reset halt
Аватара пользователя
ejsan
Сообщения: 28
Зарегистрирован: 15 авг 2022, 21:17
Предприятие: vbrspb.ru

Re: К1921ВГ015 общее

Сообщение ejsan »

Vcoder писал(а): 15 май 2025, 21:36 Не получается отключить JTAG для защиты программы... Может я что-то делаю не так?
Сам я пока не пробовал, но может дело в том, что он тут отключается иначе? Записью в регистр CFGWORD, поищите его в даташите.
Vcoder
Сообщения: 15
Зарегистрирован: 01 май 2025, 14:50
Предприятие: .
Откуда: Уфа

Re: К1921ВГ015 общее

Сообщение Vcoder »

Так обработчик k1921vg015_handle_jtag_command вроде именно это и делает:
https://github.com/DCVostok/openocd-k19 ... 015.c#L561
Аватара пользователя
ejsan
Сообщения: 28
Зарегистрирован: 15 авг 2022, 21:17
Предприятие: vbrspb.ru

Re: К1921ВГ015 общее

Сообщение ejsan »

Vcoder писал(а): 16 май 2025, 10:24 Так обработчик k1921vg015_handle_jtag_command вроде именно это и делает
Ну тогда не знаю, может там времянки для доступа к этому разделу флешки настроены не по тактовой частоте (регистры вроде TPGSR)? :? Что у вас там сейчас прошито в части задания тактовой частоты чипа? PLL 50 МГц? Может тогда попробовать сначала стереть прошивку, передёрнуть питание (чтобы перейти на дефолтный RC-генератор) и после этого снова попробовать залочить JTAG?
Ответить

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