Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

AVRProg USBv2 stk500v2 Linux - mkAVRCalculator - INSTRUKCJA

Tomq 01 Kwi 2013 18:16 16404 6
  • W poniższym poście pokażę, jak ustawić avrcalculator, żeby wgrywać nim programy na mikrokontroler w Linuxie. Miałem z tym pewne problemy, lecz sam znalazłem rozwiązanie, więc zamieszczę tu krótką instrukcję dla tych, którzy mogliby mieć z tym kłopoty.

    Instalujemy (różnie, w zależności od dystrybucji, w Archu poprzez menager pacman) program avrdude. Podłączamy programator w trybie com (a więc zworka niebieska jest zdjęta).
    W konsoli logujemy się na konto roota (w Arch Linux: sudo su) i sprawdzamy, co mamy podpięte pod USB poleceniem lsusb:
    Code:

    Bus 002 Device 004: ID 16c0:05e1 Van Ooijen Technische Informatica CDC-ACM class devices (modems)
    Bus 002 Device 002: ID 0458:003a KYE Systems Corp. (Mouse Systems) NetScroll+ Mini Traveler / Genius NetScroll 120
    Bus 002 Device 003: ID 0a81:0101 Chesen Electronics Corp. Keyboard
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

    Jak widać system wykrywa nasz programator: Bus 002 Device 004: ID 16c0:05e1 Van Ooijen Technische Informatica CDC-ACM class devices (modems)

    Nastepnie sprawdzamy pod jakim portem jest on ustawiony poleceniem dmesg | grep tty
    Code:
    [root@tomek tomek]# dmesg | grep tty 
    
    [    0.000000] console [tty0] enabled
    [    0.667683] 00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
    [   40.074065] cdc_acm 2-8:1.0: ttyACM0: USB ACM device


    Widzimy, ze jest przypisany jako ttyACM0, a jako, że każde urządzenie w Linuxie jest "widziane" w systemie jako osobny plik w folderze /dev to wnioskujemy, ze nasz programator będzie widziany pod postacią: /dev/ttyACM0


    Teraz system musi "pozwolić" na to, żeby zwykły użytkownik miał dostęp do programatora (system widzi go jako wirtualny port szeregowy, a do nich zwykły user nie ma dostępu).
    Najprościej wpisać w drugim okienku konsoli zalogować się na konto roota, wpisać nazwę przeglądarki plików (w XFCE jest to Thunar) i wyszukać poprzez nią plik ttyACM0 w folderze /dev.

    AVRProg USBv2 stk500v2 Linux - mkAVRCalculator - INSTRUKCJA
    Teraz klikamy właściwości i w zakłądce uprawnienia pozwalamy innym użytkownikom na odczytywanie i zapisywanie.
    AVRProg USBv2 stk500v2 Linux - mkAVRCalculator - INSTRUKCJA

    Więc teraz programując nasz mikrokontroler musimy wpisać jego ścieżkę dostępu (/dev/ttyACM0) do polecenia.
    Sprawdźmy więc czy działa - zapytajmy avrdude, jaki mikrokontroler podłączyliśmy do programatora:
    Code:
    avrdude -p atmega8 -c stk500v2 -P /dev/ttyACM0

    System widzi nasza atmegę:
    Cytat:
    [root@tomek tomek]# avrdude -p atmega8 -c stk500v2 -P /dev/ttyACM0

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.02s

    avrdude: Device signature = 0x1e9307

    avrdude: safemode: Fuses OK

    Więc jest wszystko ok.

    Teraz ściągamy program mkAVRCalculator i otwieram go poprzez Wine, w polu port (domyślnie będzie tam wpisane USB) wpisujemy ścieżkę dostępu do naszego programatora: /dev/ttyACM0

    AVRProg USBv2 stk500v2 Linux - mkAVRCalculator - INSTRUKCJA

    Teraz możemy sprawdzać podłączony mikrokontroler, ustawiać fusebity i wgrywać na niego programy.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    Tomq
    Poziom 38  
    Offline 
    Specjalizuje się w: akustyka, uc
    Tomq napisał 3408 postów o ocenie 162, pomógł 363 razy. Mieszka w mieście Piekoszów. Jest z nami od 2008 roku.
  • #2
    mario88
    Poziom 11  
    Cytat:
    Teraz klikamy właściwości i w zakłądce uprawnienia pozwalamy innym użytkownikom na odczytywanie i zapisywanie.

    Równie dobrze można dodać regułę do /etc/udev/rules.d - jak dla mnie sensowniejsze rozwiązanie.

    Cytat:
    Teraz sciagamy program mkAVRCalculator i otwieram go poprzez Wine

    Po co skoro nakładki dla avrdude pod linuksa też istnieją, np. AVR8 Burn-O-Mat.
  • #3
    Tomq
    Poziom 38  
    Cytat:
    Równie dobrze można dodać regułę do /etc/udev/rules.d - jak dla mnie sensowniejsze rozwiązanie.

    Mógłbnyś pokazać jak miałaby taka reguła wyglądać?


    Cytat:


    Po co skoro nakładki dla avrdude pod linuksa też istnieją, np. AVR8 Burn-O-Mat.

    jak dla mnie mkAvrCalculator jest bardziej funkcjonalny, zresztą przezwyczaiłem się do niego już pod windowsem.

    Dodanie użytkownika do grupy usb i tty też powinno przynieść podobny skutek.
  • #4
    mario88
    Poziom 11  
    Witam

    Cytat:
    Mógłbnyś pokazać jak miałaby taka reguła wyglądać?

    Np. tak (chyba nic nie pomyliłem)
    Code:
    SUBSYSTEM=="tty", KERNEL=="ttyACM*", MODE="0777"

    Oczywiście można dodać także inne parametry - pełną listę można znaleźć tutaj http://linux.die.net/man/8/udev. Należy pamiętać o restarcie udev (w konsoli jako root /etc/init.d/udev restart).

    Cytat:
    jak dla mnie mkAvrCalculator jest bardziej funkcjonalny, zresztą przezwyczaiłem się do niego już pod windowsem.

    Bardziej mi chodziło o używanie tego programu pod linuksem - zastosowanie wine.
  • #5
    Sobota
    Poziom 26  
    mario88 napisał:
    Oczywiście można dodać także inne parametry - pełną listę można znaleźć tutaj http://linux.die.net/man/8/udev. Należy pamiętać o restarcie udev (w konsoli jako root /etc/init.d/udev restart).

    Na arch-u jest systemd czyli polecenie powinnno wyglądać
    Code:
    #systemctl restart "nazwa usługi"
    .
  • #7
    DRAZEK87
    Poziom 12  
    Na moim Linuksie jest problem z uruchomieniem mkAVRCalculator. Zainstalowany pakiet wine pozwala uruchomić program ale wyskakuje błąd OLE error 80004001. Sam w sobie program działa, można z zakładki wybrać układ, lecz nie da się go sprawdzić bądź też zaprogramować np.fuse-bity. Dodam że zainstalowany Eclips łącznie z Winavr działa dobrze. Program się kompiluje i można zaprogramować układ za pomocą programatora USBasp V2.0 oczywiście musi być doinstalowany plugin. Co radzicie?