Нужно ли переключать Arduino Zero между использованием отладки порта USB EDBG и JTAG?
Я хотел сравнить выходные данные отладки Arduino Zero при подключении через два разных пути отладки.
- Через встроенный отладчик (EDBG), подключенный к Arduino IDE через USB.
- Через аппаратный разъем JTAG J100 к Black Magic Probe и GDB
Два сравниваемых пути показаны на нулевой схеме. :
Используя Blink.ino, скомпилированный для отладки, EDBG работает, как и ожидалось, в отладчике Arduino IDE 2.0.4 через USB.
Однако при использовании того же скетча с аппаратным портом JTAG для датчика черной магии не удается подключиться, сообщается «Целевое напряжение: 1,0 В».
rowan@rowan-ThinkPad-X1-Carbon-4th:/tmp/arduino/sketches/1EBCACBEAD6C08902D692E87F523B56E$ arm-none-eabi-gdb Blink.ino.elf
GNU gdb (GNU Arm Embedded Toolchain 10.3-2021.10) 10.2.90.20210621-git
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "--host=x86_64-linux-gnu --target=arm-none-eabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from Blink.ino.elf...
(gdb) target extended-remote /dev/ttyACM1
Remote debugging using /dev/ttyACM1
(gdb) monitor jtag_scan
Target voltage: 1.0V
JTAG device scan failed!
Failed
(gdb)
Тот же датчик и установка успешно отлаживает Arduino Due. Подтверждение различных процессоров на двух платах.
Разъем JTAG ориентирован правильно.
Необходимо ли переключение, чтобы включить тот или иной путь отладки, или что-то еще не так?
Обновление от 01 04 2023: я купил разделительную плату SWD, чтобы подключить несколько тестовых выводов, не рискуя погнутыми выводами (это заняло пару недель). Контакт VREF на Zero имеет 0 В при запуске отладочной версии Blink.ino. Для сравнения, на той же тестовой установке, подключенной к Due с отладкой Blink.ino, VREF составляет 3,3 В, как и ожидалось.
Прослеживая обратное соединение выводов Zero JTAG VREF на печатной плате, соединение соответствует ожиданиям по сравнению с опубликованной компоновкой печатной платы. . Он подключается к контакту на чипе Atmel EDBG (IC3).
В J100 схема (фрагмент выше) помечает это соединение как VCC_P3V3. Однако кажется, что он подключается к VCC_EDBG_P3V3.
Я собираюсь провести некоторое время с Atmel Руководство пользователя EDBG
Обновление №2 от 01.04.2023. Во время успешной отладки с использованием метода USB EDBG для Arduino IDE вывод VREF JTAG (J100) остается на уровне 0 В.
Обновление №3 от 01 апреля 2023 г.: ссылка на техническое описание EDBG. раздел 5. Вывод на микросхеме EDBG (IC3), к которому подключен вывод JTAG Vref, называется (K9) EDBG_TCK. Обратите внимание, что ориентация инвертирована по сравнению с изображением печатной платы. EDBG_TCK описывается как «контакт JTAG Test Clock для устройства EDBG» и входит в группу контактов производственного программирования EDBG.
Хорошо, теперь мне ясно, что это не тот JTAG, который я искал, я напишу это как ответ.
@RowanP, 👍1
Обсуждение1 ответ
Лучший ответ:
Я полагаю, что проблема возникла из-за того, что я предположил, что J100 на схеме является заполненным интерфейсом JTAG. Отслеживание схемы и топологии печатной платы показывает, что J100 на схеме — это CN2 на топологии печатной платы (интерфейс JTAG без заполненных заголовков). J301 на схеме — это интерфейс JTAG с установленными разъемами, обозначенный CN1 на топологии печатной платы.
J301 (CN1) предназначен для программирования микросхемы EDBG.
J100 (CN2) размыкает контакты целевого интерфейса JTAG, но не имеет установленного заголовка.
Вопреки схеме, глядя на J100 (CN2) на топологии печатной платы, а также при визуальном осмотре физической печатной платы, контакт 1 VREF не имеет никакого отношения к +3V3.
Вид сверху: Вид снизу:
Вопреки фото с микроскопа, я действительно прочитал 3,3 В (с помощью мультиметра) на квадратной площадке для пайки контакта VREF, что соответствует схеме. Хотя мне трудно это объяснить. Это двухслойная печатная плата, верно?
Обновлено от 04.02.2023. Я пришел к выводу, что порт EDBG JTAG бесполезен с Black Magic Probe в качестве альтернативы EDBG. Похоже, что порт J100 (CN2) можно было бы использовать, если бы у него были заголовки.
https://content.arduino.cc/assets/Pinout-ZERO_latest.pdf, @Juraj
Спасибо Юрай. Этот новый вывод имеет более четкую маркировку. Меня все еще не убеждают сообщения о +3v3 на J100. Я добавлю несколько фотографий микроскопа, чтобы вы могли понять, что я имею в виду., @RowanP
Re: Это двухслойная печатная плата? Нет, это не так, как оказалось. Обратите внимание на зеленые следы на фотографии выше. Предполагается, что VREF J100 (CN2) подключается к +3V3 на среднем уровне, и он отсутствует на схеме компоновки печатной платы., @RowanP
- Arduino zero Error: не удается найти устройство CMSIS-DAP
- Правильная схема карты Micro SD
- Что с сообщениями об ошибках отладки, такими как VMDPE_1|1_VMDPE?
- Как распечатать трассировку стека и зарегистрировать дампы на последовательном мониторе Arduino?
- Код не запустится, если Serial Monitor не открыт
- DFPlayer Mini со своей стандартной библиотекой не инициализируется
- Высокочастотный PWM на Adafruit Feather M0
- "ожидаемое первичное выражение перед '.' токен" в отладочном коде
Я пробовал Chat GPT-4. Вот что он должен сказать о сообщении об ошибке: … Может быть несколько причин, по которым сканирование устройства JTAG не удалось. Некоторые возможные причины включают неправильное соединение между тестовым зондом и целевым устройством, неверные настройки конфигурации в тестовом зонде или проблему с интерфейсом JTAG целевого устройства. … вы можете попробовать проверить соединения между тестовым зондом и целевым устройством, убедиться, что тестовый зонд настроен правильно, и убедиться, что интерфейс JTAG целевого устройства работает правильно…, @RowanP