logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

STK500v2 ubuntu avrdude - brak połączenia z programatorem

yogi009 04 Lis 2012 18:11 2916 12
REKLAMA
  • #1 11488527
    yogi009
    Poziom 43  
    Witam,

    próbuję ustawić ten programator (sprawdzony wcześniej pod XP) do pracy pod linuksem (ubuntu), zainstalowałem avrdude (oczywiście podałem ścieżkę do "mojego" /dev/...):

    lsusb
    udevadm info -a -p $(udevadm info -q path -n /dev/bus/usb/002/003)


    Stworzyłem plik:

    sudo nano /etc/udev/rules.d/81-avr-programator.rules


    w którym wpisałem coś takiego (oczywiście z "moimi" parametrami idVendor, idProduct i serial):

    ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", 
    ATTRS{serial}=="0000:00:1d.0", MODE="0660", GROUP="users"
    


    Mam takie potwierdzenie:

    ls -l /dev/bus/usb/002/004
    crw-rw---- 1 root users 189, 131 05-11 23:36 /dev/bus/usb/002/003
    

    Ale już komenda:

    avrdude -c stk500 -p m8 -B 100 -v


    Daje taki oto efekt:

    avrdude: Version 5.11.1, compiled on Oct 30 2011 at 10:41:10
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
             Copyright (c) 2007-2009 Joerg Wunsch
    
             System wide configuration file is "/etc/avrdude.conf"
             User configuration file is "/home/tom/.avrduderc"
             User configuration file does not exist or is not a regular file, skipping
    
             Using Port                    : /dev/ttyS0
             Using Programmer              : stk500
             Setting bit clk period        : 100.0
    avrdude: ser_open(): can't open device "/dev/ttyS0": Permission denied
    
    avrdude done.  Thank you.


    Komenda:

    avrdude -c usbasp -p m8 -B 100 -v


    kończy się takim komunikatem:

    avrdude: Version 5.11.1, compiled on Oct 30 2011 at 10:41:10
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
             Copyright (c) 2007-2009 Joerg Wunsch
    
             System wide configuration file is "/etc/avrdude.conf"
             User configuration file is "/home/tom/.avrduderc"
             User configuration file does not exist or is not a regular file, skipping
    
             Using Port                    : /dev/parport0
             Using Programmer              : usbasp
             Setting bit clk period        : 100.0
    avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc
    
    avrdude done.  Thank you.


    Wygląda na to, że nie znajduje właściwego portu USB. Poza avrdude i bibliotekami z nim powiązanymi nie instalowałem nic więcej. Próbowałem użyć tych poleceń jako root, skutek jest ten sam. Proszę o wsparcie.
  • REKLAMA
  • Pomocny post
    #2 11490554
    McMonster
    Poziom 32  
    To jakiego programatora w końcu używasz, USBasp, czy STK500? W pierwszym przypadku w komunikacie widać, że odwołuje się do ttyS0, czyli pierwszego portu szeregowego, a w drugim do parport0, czyli do LPT. Dodaj do wywołania avrdude coś takiego:
    Kod: Bash
    Zaloguj się, aby zobaczyć kod
  • #3 11490817
    yogi009
    Poziom 43  
    Używam stk500v2, dokładnie stąd:

    http://sklep.avt.pl/p/pl/487726/mini+programa...kontrolerow+avr+kompatybilny+z+stk500+v2.html

    Dodanie tego parametru nie pomaga.
  • REKLAMA
  • Pomocny post
    #4 11490997
    McMonster
    Poziom 32  
    Właśnie sprawdziłem, jak w ogóle się powinien STK500 zgłaszać, jednak jako wirtualny port szeregowy, więc powinno być bez "-P usb".

    Po pierwsze, sprawdź, czy znajdujesz się w grupie users (nie pamiętam, jako to w Ubuntu domyślnie jest), np. w /etc/passwd (powinna być linia z nazwą użytkownika i wypisanymi grupami, alternatywnie chyba powinno zadziałać:
    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    Jeśli nie ma grupy users, to użyj
    Kod: Bash
    Zaloguj się, aby zobaczyć kod

    i spróbuj ponownie.

    W razie dodatkowych problemów można tymczasowo wywoływać avrdude przez sudo, ale lepiej tego unikać.
  • REKLAMA
  • Pomocny post
    #6 11491110
    McMonster
    Poziom 32  
    Czy po przypisaniu do grupy wylogowałeś się i zalogowałeś ponownie? Podaj jeszcze wynik komendy sudo lsusb.
  • REKLAMA
  • #7 11491570
    yogi009
    Poziom 43  
    Tak, uruchamiałem system ponownie. Po podłączeniu programatora do portu USB "widzę go" po wydaniu komendy lsusb (w zasadzie komenda ta nie wymaga uprawnień administratora), widzę kolejne porty USB, a także klawiaturę i mysz USB oraz coś takiego:

    Cytat:
    Bus 004 Device 003: ID 0403-6001 Future Technology Devices International Ltd FT232 USB-Serial (UART) IC

    Mam też plik /dev/bus/usb/004/003, natomiast nie widzę lokalnego pliku konfiguracyjnego avrdude, jednak przy podaniu parametrów w linii poleceń plik ten wydaje się być opcjonalny.
  • Pomocny post
    #8 11494684
    Nagus
    Poziom 27  
    Po pierwsze: jesteś pewny że wpis reguł masz prawidłowy?
    Bez sensu wpisany jest numer seryjny...
    U mnie działa coś takiego:
    SYSFS{idVendor}=="16c0", MODE="666", GROUP="plugdev"

    Można odpuścić sobie kod urządzenia. Jak będziesz miał np. dwa różne konwertery FTDI to opędzisz je jednym wpisem.

    Po drugie: jakim cudem masz dostać uprawnienia, skoro w regułach podajesz idVendor==16c0 (VOTI), a podłączasz programator z idVendor==0403 (FTDI)??
  • #9 11494886
    yogi009
    Poziom 43  
    Wpisałem takie sygnatury, jakie dostałem w wyniku działania komendy udevadm. Uprawnienia dałem na 660, trzy szóstki są nieuzasadnione. Grupę podałem usb, założyłem ją i dodałem do niej użytkownika. Nie za bardzo zrozumiałem różnicę pomiędzy VOTI, a FTDI, możesz trochę rozwinąć temat ? Co oznacza bezsens wpisania numeru seryjnego, mam rozumieć, że można tam podać jakiś bardziej "ludzki" mnemonik ?
  • Pomocny post
    #12 11498721
    szulat
    Poziom 23  
    przecież widać gołym okiem że ten programator ma interfejs szeregowy (FT232 USB-Serial (UART) IC) więc na miłość boską podaj avrdude ścieżkę do portu szeregowego, to może być na przykład /dev/ttyUSB0 (poszukaj podobnych nazw jeżeli tej nie masz) ale nie /dev/bus/usb/.../...
    to co jest w /dev/bus to nie są działające urządzenia (w sensie porty używane przez programy) a tylko informacja o tym co podłączono i gdzie, wpis tam pojawi sie nawet jak podłączysz kompletnie nieznane urządzenie którego system nie obsługuje.

    Kod: Bash
    Zaloguj się, aby zobaczyć kod
  • #13 11499407
    yogi009
    Poziom 43  
    Kolega szulat trafił w dziesiątkę, wreszcie mam komunikację z programatorem. Jednak żeby nie było zbyt łatwo, po wydaniu polecenia:

    Cytat:
    avrdude -c stk500v2 -P /dev/ttyUSB0 -b 115200 -p m8


    dostaję komunikat o błędzie identyfikacji mikrokontrolera:

    Cytat:
    initialization failed, rc=-1
    device signature = 0x000000
    expected signature for Atmega8 is 1E9307


    Próbowałem z Atmega 8-PU (nowy) oraz Atmega 8L-PU (działający, oprogramowany wcześniej pod XP) - zachowanie jest identyczne. Programuję wkładając kontroler w płytkę urządzenia (wykorzystującego ten kontroler i posiadającego gniazdo Kanda-10), które kiedyś tak zrobiłem, i które od dawna (pod XP) służyło mi jako podstawka programująca. Oczywiście mogę wykonać oddzielną podstawkę programującą pod ten kontroler, ale coś czuję, że nie tu leży rozwiązanie tematu.
REKLAMA