Как настроить Atmel-ICE для программирования ATmega328 на PlatformIO с VSCode в Windows 10

Я пытаюсь использовать свой atmel ICE с platformIO и VS Code вместо Atmel Studio, так как это программное обеспечение вызывает боль, когда я хочу использовать Arduino.h с библиотеками.

Однако я не могу загрузить с помощью своего программиста. Я пробовал с 32-контактным ATmega328.

Сначала я использовал документацию PIO о том, как использовать с ним Atmel-ICE на этой странице: https://docs.platformio.org/en/latest/plus/debug-tools/atmel-ice.html

If you would like to use this tool for firmware uploading, please change upload 

protocol:
[env:myenv]
platform = ...
board = ...
debug_tool = atmel-ice
upload_protocol = atmel-ice

Вот что я написал в своем файле:

    [env:ATmega328P]
platform = atmelavr
board = ATmega328P
framework = arduino
upload_protocol = atmel-ice

И я получаю это сообщение, когда запускаю команду загрузки на PIO:

DATA:    [          ]   0.4% (used 9 bytes from 2048 bytes)
PROGRAM: [          ]   1.4% (used 444 bytes from 32256 bytes)
Configuring upload protocol...
AVAILABLE: atmel-ice
CURRENT: upload_protocol = atmel-ice
Looking for upload port...
Error: Please specify `upload_port` for environment or use global `--upload-port` option.
For some development platforms it can be a USB flash drive (i.e. /media/<user>/<device name>)
*** [upload] Explicit exit, status 1

На данный момент я не уверен, что попробовать. Я попробовал пару вещей, описанных ниже, но не уверен, что иду по правильному пути. Программатор atmel ICE, по сравнению, например, с Arduino, не имеет связанного с ним номера USB-ПОРТА, поэтому я не знаю, как я должен указывать свой аргумент upload_port в моем файле .ini.

Некоторые параметры описаны в документации по платформеIO https://docs.platformio.org/en/latest/projectconf/section_env_upload.html, но я полностью потерялся. Мне кажется, что сообщение, которое я получаю: для некоторых платформ разработки это может быть USB-накопитель (например, / media //), который может быть хорошей подсказкой. Любая идея, что мне следует изменить в моем файле .ini, чтобы мой atmel ICE работал? Благодарность!


Другие вещи, которые я пробовал: я прочитал сообщение (извините, я больше не могу найти ссылку), в котором добавляется

upload_port = usb

может решить проблему. При добавлении этой строки в свой platformio.ini я получаю другое сообщение об ошибке:

avrdude: Can't find programmer id "atmel-ice"

Valid programmers are:
  2232HIO          = FT2232H based generic programmer
  4232h            = FT4232H based generic programmer
  arduino          = Arduino

И список продолжается..

Я искал и нашел этот пост с тем же сообщением об ошибке !: https://community.platformio.org/t/atmega-328-internal-8mhz-oscillator-atmel-ice-upload-troubles/10416

Решением здесь было добавить

upload_flags = -e 

Но для меня это ничего не изменило.

Он также упомянул, что внес изменения в файл 328p8m.json, которым в моем случае будет ATmega328P.json. Я даже не знаю, где это найти. Было бы это актуально?


person JCSB    schedule 08.01.2020    source источник
comment
Удалось ли вам когда-нибудь понять, как интегрировать atmel-ice с Visual Studio Code?   -  person JohnKoz    schedule 03.02.2021
comment
Да! Я объясняю все шаги по настройке здесь: cyansensors.wordpress.com/portfolio/   -  person JCSB    schedule 08.02.2021


Ответы (1)


Вставьте это в platformio.ini

[env:ATmega328P]
platform = atmelavr
board = ATmega328P
framework = arduino
upload_protocol = atmelice_isp
upload_flags = -e
upload_port = usb

board_fuses.hfuse = 0xDF    ;smallest flash section size 256 since not using a BSL w/ Atmel-ICE 
board_fuses.lfuse = 0xE2    ;int 8MHz crystal (16MHz not working with less than 5V PSU)
board_fuses.efuse = 0xFE    ;BOD at 1.8V, perfect for low power
person JCSB    schedule 07.02.2021