Forum: Mikrocontroller und Digitale Elektronik macOS Atmel-ICE mit PlatformIO


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Thomas F. (tobasco)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,
nach zähem Kampf hab ich es geschafft meinen Atmel-ICE auf einem Mac 
(macOS Catalina 10.15.7) mit AVRDude zum laufen zu bekommen.
https://github.com/ThFischer/Getting-ATMEL-ICE-to-work-on-macOS
(AVRDude Ausgabe siehe unten)

Ich möchte aber eigentlich mittels VS-Code/PlatformIO den Upload und das 
Debugging durchführen. Leider wird aber dort mein Atmel-ICE nicht 
erkannt (siehe unten).

Hat vielleicht jemand ein solches Setup zum Laufen bekommen?

platformio.ini:
1
[env:megaatmega2560]
2
platform = atmelavr
3
framework=arduino
4
board = megaatmega2560
5
upload_protocol = atmelice_isp
6
upload_port = usb


Ausgabe beim Upload-Versuch:
1
> Executing task in folder Atmel-ICE Arduino MEGA 2560: pio run --target upload --environment megaatmega2560 <
2
3
Processing megaatmega2560 (platform: atmelavr; framework: arduino; board: megaatmega2560)
4
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5
Verbose mode can be enabled via `-v, --verbose` option
6
CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/megaatmega2560.html
7
PLATFORM: Atmel AVR (3.1.0) > Arduino Mega or Mega 2560 ATmega2560 (Mega 2560)
8
HARDWARE: ATMEGA2560 16MHz, 8KB RAM, 248KB Flash
9
DEBUG: Current (avr-stub) On-board (avr-stub, simavr)
10
PACKAGES: 
11
 - framework-arduino-avr 5.1.0 
12
 - tool-avrdude 1.60300.200527 (6.3.0) 
13
 - toolchain-atmelavr 1.50400.190710 (5.4.0)
14
LDF: Library Dependency Finder -> https://docs.platformio.org/en/latest/librarymanager/ldf.html
15
LDF Modes: Finder ~ chain, Compatibility ~ soft
16
Found 5 compatible libraries
17
Scanning dependencies...
18
No dependencies
19
Building in release mode
20
Checking size .pio/build/megaatmega2560/firmware.elf
21
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
22
RAM:   [          ]   0.1% (used 9 bytes from 8192 bytes)
23
Flash: [          ]   0.6% (used 1536 bytes from 253952 bytes)
24
Configuring upload protocol...
25
AVAILABLE: atmelice_isp
26
CURRENT: upload_protocol = atmelice_isp
27
Looking for upload port...
28
Use manually specified: usb
29
*** [upload] could not open port usb: [Errno 2] No such file or directory: 'usb'
30
========================================================================================================================================== [FAILED] Took 0.44 seconds ==========================================================================================================================================

Ohne "upload_port = usb" in der platformio.ini kommt der Fehler:
1
Looking for upload port...
2
Error: Please specify `upload_port` for environment or use global `--upload-port` option.

*Hier der AVR Dude output*
1
$avrdude -c atmelice_isp -p ATmega2560 -v
2
3
avrdude: Version 6.3, compiled on Oct 11 2019 at 01:39:52
4
         [...]
5
         Using Port                    : usb
6
         Using Programmer              : atmelice_isp
7
avrdude: usbdev_open(): Found Atmel-ICE CMSIS-DAP, serno: J41800033909
8
avrdude: Found CMSIS-DAP compliant device, using EDBG protocol
9
         AVR Part                      : ATmega2560
10
         Chip Erase delay              : 9000 us
11
         PAGEL                         : PD7
12
         BS2                           : PA0
13
         RESET disposition             : dedicated
14
         RETRY pulse                   : SCK
15
         serial program mode           : yes
16
         parallel program mode         : yes
17
         Timeout                       : 200
18
         StabDelay                     : 100
19
         CmdexeDelay                   : 25
20
         SyncLoops                     : 32
21
         ByteDelay                     : 0
22
         PollIndex                     : 3
23
         PollValue                     : 0x53
24
         Memory Detail                 :
25
26
                                  Block Poll               Page                       Polled
27
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
28
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
29
           eeprom        65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
30
           flash         65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
31
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
32
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
33
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
34
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
35
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
36
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
37
38
         Programmer Type : JTAG3_ISP
39
         Description     : Atmel-ICE (ARM/AVR) in ISP mode
40
         Vtarget         : 5.2 V
41
         SCK period      : 1.00 us
42
43
avrdude: AVR device initialized and ready to accept instructions
44
45
Reading | ################################################## | 100% 0.00s
46
47
avrdude: Device signature = 0x1e9801 (probably m2560)
48
avrdude: safemode: hfuse reads as D8
49
avrdude: safemode: efuse reads as FD
50
51
avrdude: safemode: hfuse reads as D8
52
avrdude: safemode: efuse reads as FD
53
avrdude: safemode: Fuses OK (E:FD, H:D8, L:FF)
54
55
avrdude done.  Thank you.

: Bearbeitet durch User
von Achim M. (minifloat)


Bewertung
0 lesenswert
nicht lesenswert
Thomas F. schrieb:
> nach zähem Kampf hab ich es geschafft meinen Atmel-ICE auf einem Mac
> (macOS Catalina 10.15.7) mit AVRDude zum laufen zu bekommen.

Homebrew oder Macports benutzt? Nein?
Schade um die Mühe. Von obdev.at gab es auch das AVR-Mac-pack, das ließ 
sich als package installieren und ging sofort.

Thomas F. schrieb:
> Leider wird aber dort mein Atmel-ICE nicht erkannt (siehe unten).

Das kann ich nicht erkennen dass da nix erkannt wurde, das Ding kann ja 
sogar was lesen...

Thomas F. schrieb:
> Reading | ################################################## | 100%
> 0.00s
> 4647avrdude: Device signature = 0x1e9801 (probably m2560)

...also ich sehe da kein "erkennt den Programmer nicht".

mfg mf

von Thomas F. (tobasco)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Achim,
der AvrDude wurde mit brew installiert. AvrDude erkennt auch den 
Atmel-ICE. Das Problem ist, dass PlatformIO den Programmer nicht erkennt 
(er taucht auch nicht als USB device (ls /dev/tty.*) auf.

salute
Thomas

PS: So kann ich den Atmel-ICE auch "sehen", aber wie erkläre ich es 
PlatformIO?
1
$ ioreg -p IOUSB
2
+-o Root  <class IORegistryEntry, id 0x100000100, retain 22>
3
  +-o AppleUSBXHCI Root Hub Simulation@14000000  <class AppleUSBRootHubDevice, id 0x100000474, registered, matched, active, busy 0 (295 ms), retain 10>
4
    +-o Atmel-ICE CMSIS-DAP@14200000  <class AppleUSBDevice, id 0x100008ec1, registered, matched, active, busy 0 (8 ms), retain 15>

: Bearbeitet durch User
von Thomas F. (tobasco)


Bewertung
0 lesenswert
nicht lesenswert
Zur Not wäre ich auch mit anderen Lösung glücklich, z.B.
- macOS
- VS-Code/PlatformIO
- irgend ein Programmer (inkl. Debugger)
- AVR oder ESP 8266/32

: Bearbeitet durch User
von Achim M. (minifloat)


Bewertung
0 lesenswert
nicht lesenswert
Aaaha. So wird ein Schuh draus.

Kannst du in Platformio irgendwo je Projekt Umgebungsvariablen 
einstellen?

Im $PATH fehlt, wo brew seine binaries hinwirft. Musste ich bei Eclipse 
CDT auch so machen, das hat auch nicht einfach den $PATH vom 
terminal.app übernommen. Andere Idee wäre alias im Standard-system-bin 
auf den avrdude im brew-bin zu setzen...

mfg mf

: Bearbeitet durch User
von Achim M. (minifloat)


Bewertung
0 lesenswert
nicht lesenswert
PS.

Thomas F. schrieb:
> (er taucht auch nicht als USB device (ls /dev/tty.*) auf.

Äh, das tut mein USBASP auch nicht, weswegen ich mir nur dachte, dass 
Platformio den avrdude nicht findet.

Thomas F. schrieb:
> Zur Not wäre ich auch mit anderen Lösung glücklich,

Ich mache den Kram mit makefile und generischem Makefile-Projekt in 
eclipse.
Geht das in Platformio auch?

von Thomas F. (tobasco)


Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist nicht, das PlatformIO den AVRDude nicht finden würde.
Wenn ich einen Arduino via ArduinoISP als Programmer nutze (wird als 
"/dev/tty.usbmodem14201" eingebunden), gibt es keinerlei Probleme.
Das Problem ist, dass der Atmel-ICE weder von PlatformIO automatisch 
erkannt wird noch von macOS als "/dev/tty.*" eingebunden wird, so dass 
ich ihn nicht in der platformio.ini spezifizieren kann :-/

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Thomas F. schrieb:
> Das Problem ist, dass der Atmel-ICE weder von PlatformIO automatisch
> erkannt wird noch von macOS als "/dev/tty.*" eingebunden wird, so dass
> ich ihn nicht in der platformio.ini spezifizieren kann :-/

All diese Atmel-Tools emulieren auch kein tty, daher kann man sie dort 
nicht finden. Die ursprünglichen USB-Geräte (AVRISPmkII, JTAGICEmkII, 
anfängliche Firmware der JTAGICE3) hatten alle eine vendor specific 
class, die konnte man nur über generische USB-Zugriffe ansprechen. 
Später (aktuelle Firmware vom JTAGICE3, Atmel-ICE, *EDBG) haben sie dann 
die von Keil propagierte Variante übernommen, dass die Dinger sich als 
HID melden (ist doch ganz klar und deutlich ein "Human Interface", oder? 
:-}) und das CMSIS-DAP-Protokoll implementieren. Das ist zwar erstmal 
für ARM konzipiert, aber der AVR-Teil ließ sich darin auch noch 
unterbringen.

Wir haben @Job AtmelICE (allerdings für ARMs) in platformIO benutzt, 
aber ich weiß aus'm Hut nicht, wie man denen das beibiegen musste. Durch 
die Keil-Definition der CMSIS-DAP ist das ja bei ARM an sich nicht 
ungewöhnlich.

von Thomas F. (tobasco)


Bewertung
0 lesenswert
nicht lesenswert
Was mir nicht in den Schädel will: Weder "AVRDude" noch "MPLAB X IDE" 
haben Probleme den Atmel-ICE zu erkennen 🙄

von Achim M. (minifloat)


Bewertung
0 lesenswert
nicht lesenswert
Thomas F. schrieb:
> Upload-Versuch:

Schau mal da...
https://community.platformio.org/t/how-to-program-atmega1284p-using-avrisp-mkii-on-macos/5977/10 
...hatte einer auch so ein Problem.

ivankravets schrieb dort:
> have you tried program target
> instead of upload?
1
 pio run -t program
> See 
https://docs.platformio.org/en/latest/platforms/atmelavr.html#upload-using-programmer

Vielleicht hilft das ja.

mfg mf

von Thomas F. (tobasco)


Bewertung
0 lesenswert
nicht lesenswert
HEUREKA!
Kaum macht man's richtig – schon funktioniert's ™

board_upload.require_upload_port = no

siehe 
https://community.platformio.org/t/atmel-ice-with-macos-catalina/19125/2

Vielen Dank für's Mitdenken!

Beitrag #6576969 wurde vom Autor gelöscht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.