Forum: Mikrocontroller und Digitale Elektronik ATMega32u4 unter Linux


von Alexander W. (Firma: AW-Elektronik) (alexanderwalter)


Angehängte Dateien:

Lesenswert?

Guten Abend zusammen.

Ich habe ein kurioses Problem, das ich nicht gelöst bekomme.
Hier verwende ich ein Board mit einem ATMega32u4. Über den USB 
enumeriert er und ich sehe ihn über lsusb:

Bus 005 Device 119: ID 03eb:2ff4 Atmel Corp. atmega32u4 DFU bootloader

Ich versuche zuerst über Arduino den 32u4 zu flashen, aber da er kein 
Device anlegt, sehe ich ihn nicht im Port.

Der Versuch mit einem Olimex AVR ISP mk2 den m32u4 über ISP zu flashen 
schlägt ebenfalls fehl.

Mein Verdacht war ein Schaltungsfehler. Nach Überprüfung war allerdings 
dies ausgeschlossen, da die Spannungsversorgung und der ISP korrekt 
angeschlossen sind.

Allerdings weicht die Schaltung vom normalen Schaltplan ab:
3,3 Volt statt 5V und 8 MHz XTal anstatt 16 MHz.

Beim AVR ISP mk2 habe ich auch mal von 3,3V auf 5V gewechselt. Ebenfalls 
kein Erfolg.

Zusätzlich habe ich einen USBasp versucht. Selbes Problem.

Auch einen externen Takt auf XTal1 (2) hat nicht geholfen.

Den M32u4 in den DFU-Mode zu setzen geht normalerweise mit 2x Reset.
Allerdings ist der unprogrammiert, weshalb der Werksloader programmiert 
ist.

Kann jemand mir bitte einen Tipp geben was ich übersehe?

Ausgabe:
1
 avrdude: Version 7.1
2
         Copyright the AVRDUDE authors;
3
         see https://github.com/avrdudes/avrdude/blob/main/AUTHORS
4
5
         System wide configuration file is /etc/avrdude.conf
6
         User configuration file is /home/alexanderwalter/.avrduderc
7
         User configuration file does not exist or is not a regular file, skipping
8
9
         Using Port                    : usb
10
         Using Programmer              : stk500v2
11
avrdude: usbdev_open(): found AVRISP mkII, serno: 000200212345
12
         AVR Part                      : ATmega32U4
13
         Chip Erase delay              : 9000 us
14
         PAGEL                         : PD7
15
         BS2                           : PA0
16
         RESET disposition             : possible i/o
17
         RETRY pulse                   : SCK
18
         Serial program mode           : yes
19
         Parallel program mode         : yes
20
         Timeout                       : 200
21
         StabDelay                     : 100
22
         CmdexeDelay                   : 25
23
         SyncLoops                     : 32
24
         PollIndex                     : 3
25
         PollValue                     : 0x53
26
         Memory Detail                 :
27
28
                                           Block Poll               Page                       Polled
29
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
30
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
31
           eeprom                 65    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
32
           flash                  65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
33
           lfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
34
           hfuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
35
           efuse                   0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
36
           lock                    0     0     0    0 no          1    1      0  9000  9000 0x00 0x00
37
           signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00
38
           calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00
39
40
         Programmer Type : STK500V2
41
         Description     : Atmel STK500 version 2.x firmware
42
         Programmer Model: AVRISP mkII
43
         Hardware Version: 0
44
         Serial number   : 000200212345
45
         Firmware Version Controller : 1.41
46
         Vtarget         : 3.3 V
47
         SCK period      : 10.37 us
48
49
avrdude stk500v2_command() error: command failed
50
avrdude stk500v2_program_enable() error: bad AVRISPmkII connection status: Unknown status 0x00
51
avrdude main() error: initialization failed, rc=-1
52
        - double check the connections and try again
53
        - use -B to set lower ISP clock frequency, e.g. -B 125kHz
54
        - use -F to override this check
55
56
57
avrdude done.  Thank you.

von Hans W. (Firma: Wilhelm.Consulting) (hans-)


Lesenswert?

Alexander W. schrieb:
> Kann jemand mir bitte einen Tipp geben was ich übersehe?

udev rules??? vllt darfst du aufs device schlicht nicht schreiben.
zumindest ist das bei mir zu 99% der fehler :)

73

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Alexander W. schrieb:
> Ich versuche zuerst über Arduino den 32u4 zu flashen, aber da er kein
> Device anlegt, sehe ich ihn nicht im Port.

Dazu muss erstmal der Arduino Bootloader drauf, dann siehst du ihn auch 
als Port in der Arduino IDE.

Solange der HWB noch auf dem Chip ist, kannst du das FLIP Protokoll 
verwenden

Ansonsten lässt er sich mit quasi jedem  ICSP Adapter für Atmel 
beschreiben. Auch das geht über die Arduino IDE

: Bearbeitet durch User
von Alexander W. (Firma: AW-Elektronik) (alexanderwalter)


Lesenswert?

Hans W. schrieb:
> udev rules??? vllt darfst du aufs device schlicht nicht schreiben.
> zumindest ist das bei mir zu 99% der fehler :)

also ich habe nur eine:
/etc/udev/rules.d/49-atmel-dfu.rules

Inhalt:
SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ff4", 
MODE="0666", GROUP="plugdev"

Wie müsste die für den Olimex AVR ISP mk2 und dem USBasp lauten?

Arduino F. schrieb:
> Dazu muss erstmal der Arduino Bootloader drauf, dann siehst du ihn auch
> als Port in der Arduino IDE.

das ist mein Ziel. Scheitert aber wie oben beschrieben.

: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?

probiere erst mal avrdude und das dfu/flip Programm mit sudo (oder als 
root) aufzurufen, bevor du an den udev rules fummelst.

: Bearbeitet durch User
von Alexander W. (Firma: AW-Elektronik) (alexanderwalter)


Lesenswert?

Nemopuk schrieb:
> probiere erst mal avrdude und das dfu/flip Programm mit sudo (oder
> als
> root) aufzurufen, bevor du an den udev rules fummelst.

Das hab ich zuvor schon ausprobiert.

Das ist echt merkwürdig:

dfu-programmer atmega32u4 get
Bootloader Version: 0x00 (0)

dfu-programmer atmega32u4 dump
Failed to read 28672 bytes from device.

lsusb
Bus 005 Device 046: ID 03eb:2ff4 Atmel Corp. atmega32u4 DFU bootloader


Er erkennt den M32u4. Kommt mit dem aber nicht klar.

: Bearbeitet durch User
von Björn W. (bwieck)


Lesenswert?

Der "Schaltplan" ist schon wieder eine massive Beleidigung..

von Nemopuk (nemopuk)


Lesenswert?

Probiere mal 22 statt 68 Ohm

: Bearbeitet durch User
von Alexander W. (Firma: AW-Elektronik) (alexanderwalter)


Lesenswert?

Björn W. schrieb:
> Der "Schaltplan" ist schon wieder eine massive Beleidigung..

Ja, das hat aber keinen Einfluss auf den Fehler.

Nemopuk schrieb:
> Probiere mal 22 statt 68 Ohm

Das könnte helfen. Die 68 R kommen von einer Vorlage die ich verwenden 
sollte.
Muss dann morgen nen Gurt mit 22R nehmen.

Ich denke der Fehler liegt hier am Linux (obwohl bei Win das auch nicht 
geht).
Versucht habe ich nun in der Arduino IDE einen UNO über den Programmer 
direkt zu flashen und bekomme den selben Fehler.

Versucht habe ich Olimex AVR ISP mk2, USBasp und Diamex "Atmel Corp. AVR 
ISP mkII" Klon.

Alle blinken zwar beim Programmiervorgang, können aber die verschiedenen 
Boards nicht erkennen. Dummerweise passiert das hier am Linux, als auch 
dort am Windows-Rechner. Sind also zwei verschiedene Systeme und PCs.

Ich muss das nun gegenprüfen weshalb es bei beiden Maschinen nicht geht.

von Christian (axelf40)


Lesenswert?

Schaltung ist fehlerhaft. HWB darf nicht dauerhaft auf GND, nur während 
eines
Reset-Impuls.

https://www.pjrc.com/teensy/schematic.html

von Gerhard Z. (germel)


Lesenswert?

Wenn brltty installiert ist entferne es mal aus dem System. Der Treiber 
für die Braille Zeile übernimmt gerne das angeschlossene USB Device.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.