Arduino меняет COM-порт при загрузке кода (Windows)

Я тестирую новый MKR1000 в Windows. У меня раздражающая проблема, которая заставляет Windows переустанавливать драйверы Arduino в другой порт каждый раз, когда я загружаю новый код в плату. Например:

Если Arduino установлен на COM4, когда я загружаю код в плату, Windows решает установить Arduino на COM5. Это заставляет IDE сообщать мне, что процедура загрузки завершилась неудачно (так как на COM5 нет подключенного Arduino), но, как ни странно, код действительно загружается правильно.

Если я хочу открыть Serial monitor, мне нужно зайти в IDE и изменить порт Arduino обратно на COM4. Очень раздражает, что Windows проходит процедуру установки драйвера каждый раз, когда я загружаю новый код в Arduino.

Некоторая общая информация:

  • Это происходит в Windows 7 и 8
  • Я устраняю неполадки с примером Blink (контакт 6)
  • Проблемы возникают как с Arduino IDE (1.6.11), так и с Arduino Create (1.0.38)
  • MKR1000 правильно установлен в Windows, отображается в диспетчере устройств как "Arduino MKR1000 (COM4)"
  • SAMD Board 1.6.6 установлен
  • Пробовал несколько USB-кабелей

Ошибка в IDE Arduino:

Arduino: 1.6.11 (Windows 7), Board: "Arduino/Genuino MKR1000"
Sketch uses 7,972 bytes (3%) of program storage space. Maximum is 262,144 bytes.
Forcing reset using 1200bps open/close on port COM4
PORTS {COM3, COM4, } / {COM3, } => {}
PORTS {COM3, } / {COM3, } => {}
PORTS {COM3, } / {COM3, } => {}
PORTS {COM3, } / {COM3, COM5, } => {COM5, }
Found upload port: COM5
C:\Users\40009929\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.6.1-arduino/bossac.exe -i -d --port=COM5 -U true -i -e -w -v C:\Users\40009929\AppData\Local\Temp\build9c9ef3bdfe2fccb480bc6e4bac749e41.tmp/Blink.ino.bin -R 
Set binary mode
readWord(addr=0)=0x20007ffc
readWord(addr=0xe000ed00)=0x410cc601
readWord(addr=0x41002018)=0x10010305
version()=v2.0 [Arduino:XYZ] Nov 24 2015 11:35:16
chipId=0x10010005
Connected at 921600 baud
readWord(addr=0)=0x20007ffc
readWord(addr=0xe000ed00)=0x410cc601
readWord(addr=0x41002018)=0x10010305
Atmel SMART device 0x10010005 found
write(addr=0x20004000,size=0x34)
writeWord(addr=0x20004030,value=0x10)
writeWord(addr=0x20004020,value=0x20008000)
Device       : ATSAMD21G18A
readWord(addr=0)=0x20007ffc
readWord(addr=0xe000ed00)=0x410cc601
readWord(addr=0x41002018)=0x10010305
Chip ID      : 10010005
version()=v2.0 [Arduino:XYZ] Nov 24 2015 11:35:16
Version      : v2.0 [Arduino:XYZ] Nov 24 2015 11:35:16
Address      : 8192
Pages        : 3968
Page Size    : 64 bytes
Total Size   : 248KB
Planes       : 1
Lock Regions : 16
Locked       : readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
readWord(addr=0x41004020)=0xffff
none
readWord(addr=0x41004018)=0
Security     : false
Boot Flash   : true
readWord(addr=0x40000834)=0x7000a
BOD          : true
readWord(addr=0x40000834)=0x7000a
BOR          : true
Arduino      : FAST_CHIP_ERASE
Arduino      : FAST_MULTI_PAGE_WRITE
Arduino      : CAN_CHECKSUM_MEMORY_BUFFER
Erase flash
chipErase(addr=0x2000)
done in 0.823 seconds

Write 8124 bytes to flash (127 pages)
write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0x2000, size=0x1000)

SAM-BA operation failed
An error occurred while uploading the sketch

[===============               ] 50% (64/127 pages)write(addr=0x20005000,size=0xfc0)
writeBuffer(scr_addr=0x20005000, dst_addr=0x3000, size=0xfc0)

[==============================] 100% (127/127 pages)
done in 0.051 seconds

Verify 8124 bytes of flash with checksum.
checksumBuffer(start_addr=0x2000, size=0x1000) = 7923
checksumBuffer(start_addr=0x3000, size=0xfbc) = b6c0
Verify successful
done in 0.010 seconds
CPU reset.
readWord(addr=0)=0x20007ffc
readWord(addr=0xe000ed00)=0x410cc601
readWord(addr=0x41002018)=0x10010305
writeWord(addr=0xe000ed0c,value=0x5fa0004)

В Arduino Create проблема та же:

Atmel SMART device 0x10010005 found

Device : ATSAMD21G18A

Chip ID : 10010005

Version : v2.0 [Arduino:XYZ] Nov 24 2015 11:35:16

Address : 8192

Pages : 3968

Page Size : 64 bytes

Total Size : 248KB

Planes : 1

Lock Regions : 16

Locked : none

Security : false

Boot Flash : true

BOD : true

BOR : true

Arduino : FAST_CHIP_ERASE

Arduino : FAST_MULTI_PAGE_WRITE

Arduino : CAN_CHECKSUM_MEMORY_BUFFER

Erase flash

done in 0.822 seconds

Write 8116 bytes to flash (127 pages)


[=============== ] 50% (64/127 pages)
[==============================] 100% (127/127 pages)

done in 0.052 seconds

Verify 8116 bytes of flash with checksum.

Verify successful

done in 0.010 seconds

CPU reset.

SAM-BA operation failed

Could not program the board

2 ответа

Привет, основываясь на вашем выводе, может быть причина, почему он это делает. Другие разработчики могут исправить меня, если я ошибаюсь.

Когда вы загружаете код в ATSAMD21,

-> Используемая среда IDE/ разработки переведет плату в режим загрузчика на 5 секунд. (Со скоростью 1200 бит / с) // ШАГ 1

-> Но при загрузке программы на плату загрузчик блокируется после успешной загрузки и меняет свой порт // ШАГ 2

-> На ШАГЕ 1, микро работает как НАТИВНЫЙ USB-порт и вызывает ПРОГРАММИРОВАНИЕ USB-порт

-> На ШАГЕ 2 микро завершает программирование и после сброса возвращается в состояние по умолчанию - NATIVE USB Port (здесь COM-порт переключается на следующий порт).

-> Если вы внимательно наблюдаете, когда открываете hyperterm и открываете подключенный порт Arduino (например, COM4) со скоростью 1200 бит / с за 5 секунд, в диспетчере устройств вы заметите USB-последовательное устройство вместо платы Arduino MKR.

Надеюсь, поможет.

Вот мое исправление ошибки SAM-BA. Ситуация Windows 7 с портом USB3 (ранее работала на машине с Windows 7 только с портами USB2) Загрузка в Sparkfun Redboard Turbo

Поместите концентратор USB 2 между ПК и платой.

Ошибка SAM-BA больше не возникает

Да, у меня тоже была такая же проблема. Попробуйте скачать Arduino Advance Idea (улучшенный выпуск).

Вот

Это должно помочь, потому что когда он меняет порт, он скажет вам и спросит, хотите ли вы.

Надеюсь, это помогло!

Другие вопросы по тегам