Ergebnis 1 bis 3 von 3

Thema: ALL-AVR unter Linux (Arduino, sloeber)

  1. #1
    Neuer Benutzer
    Registriert seit
    15.11.2018
    Beiträge
    2
    Total Downloaded
    0

    ALL-AVR unter Linux (Arduino, sloeber)

    Habe einen ALL-AVR hier und versuche krampfhaft, ihn unter Arduino und sloeber (Arduino Plugin für Eclipse) zum Laufen zu bewegen.
    Der Progger wird richtig erkannt und funktioniert auch mit avrdude:
    Code:
    avrdude -c avrispmkII -p m168 -P usb -e -v
    ergibt:
    Code:
    avrdude: Version 6.3
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
             Copyright (c) 2007-2014 Joerg Wunsch
    
             System wide configuration file is "/etc/avrdude.conf"
             User configuration file is "/home/xgaduch/.avrduderc"
             User configuration file does not exist or is not a regular file, skipping
    
             Using Port                    : usb
             Using Programmer              : avrispmkII
    avrdude: usbdev_open(): Found AVRISP mkII, serno: 0000000000000
             AVR Part                      : ATmega168
             Chip Erase delay              : 9000 us
             PAGEL                         : PD7
             BS2                           : PC2
             RESET disposition             : dedicated
             RETRY pulse                   : SCK
             serial program mode           : yes
             parallel program mode         : yes
             Timeout                       : 200
             StabDelay                     : 100
             CmdexeDelay                   : 25
             SyncLoops                     : 32
             ByteDelay                     : 0
             PollIndex                     : 3
             PollValue                     : 0x53
             Memory Detail                 :
    
                                      Block Poll               Page                       Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               eeprom        65    20     4    0 no        512    4      0  3600  3600 0xff 0xff
               flash         65     6   128    0 yes     16384  128    128  4500  4500 0xff 0xff
               lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
               signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
    
             Programmer Type : STK500V2
             Description     : Atmel AVR ISP mkII
             Programmer Model: AVRISP mkII
             Hardware Version: 0
             Firmware Version Master : 1.32
             Vtarget         : 5.0 V
             SCK period      : 8.00 us
    
    avrdude: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.01s
    
    avrdude: Device signature = 0x1e9406 (probably m168)
    avrdude: safemode: hfuse reads as DD
    avrdude: safemode: efuse reads as F9
    avrdude: erasing chip
    
    avrdude: safemode: hfuse reads as DD
    avrdude: safemode: efuse reads as F9
    avrdude: safemode: Fuses OK (E:F9, H:DD, L:FF)
    
    avrdude done.  Thank you.
    Ich nutze folgende Zusatz-Boards:
    Code:
    https://raw.githubusercontent.com/carlosefr/atmega/master/package_carlosefr_atmega_index.json
    und kann mir dann das Bare-Board auswählen:
    Unbenannt.PNG

    Dummerweise kann ich nach Selektion des AVRisp MKII keinen Port wählen, weil der Progger sich nicht als Serial-Device anmeldet.
    In der "arduino-1.8.7/hardware/arduino/avr/programmers.txt" steht ja auch, daß USB als Protokoll&Port genutzt wird:
    Code:
    avrispmkii.name=AVRISP mkII
    avrispmkii.communication=usb
    avrispmkii.protocol=stk500v2
    avrispmkii.program.protocol=stk500v2
    avrispmkii.program.tool=avrdude
    avrispmkii.program.extra_params=-Pusb
    bzw. meine Selbsterstellte Kopie zum Rumbasteln....
    Code:
    diamexallavr.name=Diamex All-AVR
    diamexallavr.communication=usb
    diamexallavr.protocol=stk500v2
    diamexallavr.program.protocol=stk500v2
    diamexallavr.program.tool=avrdude
    diamexallavr.program.extra_params=-Pusb
    Und hier die Definitionen aus ~/.arduino15/packages/atmega/hardware/avr/1.3.1$less boards.txt
    Code:
    menu.cpu=Processor
    menu.clock=Clock
    
    #
    # ATmega168/168p
    #
    
    atmega168.name=ATmega168/168p
    
    #atmega168.bootloader.tool=arduino:avrdude
    atmega168.bootloader.tool=avrdude
    atmega168.bootloader.unlock_bits=0x3f
    atmega168.bootloader.lock_bits=0x0f
    
    #atmega168.upload.tool=arduino:avrdude
    atmega168.upload.tool=avrdude
    atmega168.upload.maximum_size=16384
    atmega168.upload.maximum_data_size=1024
    atmega168.upload.speed=19200
    atmega168.upload.serial.port=usb
    atmega168.build.variant=arduino:standard
    atmega168.build.core=arduino:arduino
    atmega168.build.board=atmega168
    ...........
    
    atmega168.menu.clock.external15=External 15 MHz
    atmega168.menu.clock.external15.bootloader.low_fuses=0xff
    atmega168.menu.clock.external15.bootloader.high_fuses=0xdd
    atmega168.menu.clock.external15.bootloader.extended_fuses=0xf9
    atmega168.menu.clock.external15.build.f_cpu=15000000L
    ...........
    sowie ~/.arduino15/packages/atmega/hardware/avr/1.3.1$less plattform.txt
    Code:
    name=ATmega Microcontrollers
    tools.avrdude.path={runtime.tools.avrdude.path}
    tools.avrdude.erase.params.verbose=-v -v -v -v
    tools.avrdude.erase.params.quiet=-q -q
    tools.avrdude.erase.pattern="{cmd.path}" "-C{config.path}" {erase.verbose} -p{build.mcu} -c{protocol} {program.extra_params} -e -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m
    tools.avrdude.bootloader.params.verbose=-v -v -v -v
    tools.avrdude.bootloader.params.quiet=-q -q
    tools.avrdude.bootloader.pattern="{cmd.path}" "-C{config.path}" {bootloader.verbose} -p{build.mcu} -c{protocol} {program.extra_params}
    
    tools.avrdude-noefuse.path={runtime.tools.avrdude.path}
    tools.avrdude-noefuse.cmd.path={runtime.ide.path}/hardware/tools/avr/bin/avrdude
    tools.avrdude-noefuse.config.path={runtime.ide.path}/hardware/tools/avr/etc/avrdude.conf
    tools.avrdude-noefuse.erase.params.verbose=-v -v -v -v
    tools.avrdude-noefuse.erase.params.quiet=-q -q
    tools.avrdude-noefuse.erase.pattern="{cmd.path}" "-C{config.path}" {erase.verbose} -p{build.mcu} -c{protocol} {program.extra_params} -e -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m
    tools.avrdude-noefuse.bootloader.params.verbose=-v -v -v -v
    tools.avrdude-noefuse.bootloader.params.quiet=-q -q
    tools.avrdude-noefuse.bootloader.pattern="{cmd.path}" "-C{config.path}" {bootloader.verbose} -p{build.mcu} -c{protocol} {program.extra_params}
    Nur lässt mich Arduino (die Sloeber-Suite übrigens auch nicht) den Upload nicht machen, weil ich erst den Port auswählen soll.
    Code:
    Arduino: 1.8.7 (Linux), Board: "ATmega168/168p, External 15 MHz, ATmega168"
    
    Der Sketch verwendet 8658 Bytes (52%) des Programmspeicherplatzes. Das Maximum sind 16384 Bytes.
    Globale Variablen verwenden 713 Bytes (69%) des dynamischen Speichers, 311 Bytes für lokale Variablen verbleiben. Das Maximum sind 1024 Bytes.
    Bitte wählen Sie vor dem Hochladen einen Port aus
    
    Dieser Bericht wäre detaillierter, wenn die Option
    "Ausführliche Ausgabe während der Kompilierung"
    in Datei -> Voreinstellungen aktiviert wäre.
    Gibt es da einen Workaround?
    Ich las davon, daß eine UDEV-Regel einen entsprechenden Symlink unter /dev/ erstellen soll, aber das klappt bei mir nicht. Wo muß man hier noch drehen? Oder muß ich den unter Arduino kompilierten Code tatsächlich per cli mittels avrdude hochladen? Das ist doch nur eine Beschränkung der GUI (Wenn kein Port in GUI ausgewählt, dann geh nicht weiter)`?

  2. #2
    Administrator Avatar von er@diamex
    Registriert seit
    26.06.2005
    Ort
    Berlin
    Beiträge
    305
    Total Downloaded
    3,8 KB
    Ich glaube, das ist hier die falsche Adresse für solche Fragen. Wir stellen den ALL-AVR-Programmer her, der ist Software-kompatibel zum AVRisp MKII. Mit AVR/ATMEL-Studio gibt es da auch keinerlei Probleme. Wie man Arduino konfigurieren muss, sollstest Du besser im dortigen Forum stellen, wir können da leider nicht weiterhelfen. Alle AVRisp MKII -Programmerbesitzen keinen COM-Port, egal von welchem Hersteller. Sollte es wirklich nicht funktionieren, dann benutze doch für Arduino einen normalen AVR-ISP-Programmer der STK500 kompatibel ist und einen COM-Port besitzt (z.B. den AVR-ISP-Programmer von Diamex). Der kostet nicht die Welt und man hat immer einen einen Reserveprogrammer in der Schublade, falls man mal "aus Versehen" einen Programmer durch falsch angeschlossene Programmierleitungen schrottet (das passiert auch den Experten).
    Erwin, Elektronik- und Software-Spezialist

  3. #3
    Neuer Benutzer
    Registriert seit
    15.11.2018
    Beiträge
    2
    Total Downloaded
    0
    Zitat Zitat von er@diamex Beitrag anzeigen
    Ich glaube, das ist hier die falsche Adresse für solche Fragen. Wir stellen den ALL-AVR-Programmer her, der ist Software-kompatibel zum AVRisp MKII. Mit AVR/ATMEL-Studio gibt es da auch keinerlei Probleme. Wie man Arduino konfigurieren muss, sollstest Du besser im dortigen Forum stellen, wir können da leider nicht weiterhelfen. Alle AVRisp MKII -Programmerbesitzen keinen COM-Port, egal von welchem Hersteller. Sollte es wirklich nicht funktionieren, dann benutze doch für Arduino einen normalen AVR-ISP-Programmer der STK500 kompatibel ist und einen COM-Port besitzt (z.B. den AVR-ISP-Programmer von Diamex). Der kostet nicht die Welt und man hat immer einen einen Reserveprogrammer in der Schublade, falls man mal "aus Versehen" einen Programmer durch falsch angeschlossene Programmierleitungen schrottet (das passiert auch den Experten).
    Das Thema wird hier fortgeführt:
    https://forum.arduino.cc/index.php?t...803#msg3947803

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •