Различные значения pid и vid в boards.txt

Давайте посмотрим раздел Леонардо в boards.txt:

leonardo.name=Arduino Leonardo
leonardo.vid.0=0x2341
leonardo.pid.0=0x0036
leonardo.vid.1=0x2341
leonardo.pid.1=0x8036
leonardo.vid.2=0x2A03
leonardo.pid.2=0x0036
leonardo.vid.3=0x2A03
leonardo.pid.3=0x8036

leonardo.upload.tool=avrdude
leonardo.upload.protocol=avr109
leonardo.upload.maximum_size=28672
leonardo.upload.maximum_data_size=2560
leonardo.upload.speed=57600
leonardo.upload.disable_flushing=true
leonardo.upload.use_1200bps_touch=true
leonardo.upload.wait_for_upload_port=true

leonardo.bootloader.tool=avrdude
leonardo.bootloader.low_fuses=0xff
leonardo.bootloader.high_fuses=0xd8
leonardo.bootloader.extended_fuses=0xcb
leonardo.bootloader.file=caterina/Caterina-Leonardo.hex
leonardo.bootloader.unlock_bits=0x3F
leonardo.bootloader.lock_bits=0x2F

leonardo.build.mcu=atmega32u4
leonardo.build.f_cpu=16000000L
leonardo.build.vid=0x2341
leonardo.build.pid=0x8036
leonardo.build.usb_product="Arduino Leonardo"
leonardo.build.board=AVR_LEONARDO
leonardo.build.core=arduino
leonardo.build.variant=leonardo
leonardo.build.extra_flags={build.usb_flags}

Каковы значения leonardo.vid|pid.* и leonardo.build.vid|pid? Возможно, первые предназначены для последовательного USB-устройства во время выполнения, а вторые - для загрузчика?

, 👍0


1 ответ


1

Сборки используются при компиляции ядра Arduino. Остальные используются для идентификации платы при ее перезагрузке в загрузчике, чтобы она могла найти подходящий com-порт для загрузки

,

Хорошо, но проблема в том, что pid / vid во время выполнения 2341:8036. Если первый набор используется для идентификации, загрузчик не должен содержать этих значений, иначе его невозможно обнаружить!, @Mark

@Отметить время выполнения может быть любым, каким вам нравится. IDE открывает (вручную) выбранный COM-порт со скоростью 1200 бод, который сбрасывает плату в загрузчик. Затем он ожидает появления нового устройства, соответствующего одной из пар VID / PID загрузчика (подойдет любая), после чего он записывает COM-порт и передает его в avrdude для загрузки программы., @Majenko

Это именно то, что я делаю прямо сейчас. Но поскольку даже пары VID / PID во время выполнения по умолчанию для Leonardo находятся в этом наборе, я не могу быть уверен, является ли это загрузчиком или нет! Пример: если сброс не работает, я предполагаю, что есть загрузчик, пока он все еще является последовательным каналом приложения., @Mark

@Отметьте, если перезагрузка не сработала, то нового устройства не будет., @Majenko