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

V-USB (AVR USB) Tanie urządzenie USB w oparciu o AVR

m_marko 14 Lip 2011 16:20 75044 181
  • #91 14 Lip 2011 16:20
    ekrzychoooo
    Poziom 12  

    Witam
    Na atmega8 oraz atmega128 ruszyło do razu.
    Dla atmega88 oraz atmega128 okazało się że w plikach iom88*.h i iom168*.h nie miałem wpisu:

    Code:
    #define SIG_INTERRUPT0         _VECTOR(1)

    Po dodaniu tego wpisu obsługa przerwań zadziałała i USB z tą biblioteką śmiga ok.

  • Arrow Multisolution Day
  • #92 18 Lip 2011 15:16
    wastirus
    Poziom 8  

    V-USB (AVR USB) Tanie urządzenie USB w oparciu o AVR


    Jest to schemat ze strony v-usb ( Link ), wzbogacony o 8 rezystorów i 8 led i mam pytanie - jak zmodyfikować program aby po wysłaniu pojedyńczego bajtu z pc, został on wyswietlony na tych ledach ?

  • #94 18 Lip 2011 15:23
    wastirus
    Poziom 8  

    W przykładach ze strony, jest projekt PowerSwitch i tam są przykłady commandline - miałem zamiar sie "przekopywać" przez to i dostosować do swoich celów.

    Link

  • #95 27 Sie 2011 19:31
    11111olo
    Poziom 43  

    Tamtego joya po wielu bojach ukończyłem.

    Teraz chciałem zrobić coś innego i niestety utknąłem :(

    Niby sprawdzanie pinów jest ok (na symulatorze) jednak w rzeczywistości nie działa.
    Dlaczego?

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Dodam że deskryptor jest dobrze napisany bo wykrywa dwa joysticki dwuosiowe z dwoma przyciskami.[/code]

  • Arrow Multisolution Day
  • #96 27 Paź 2011 21:56
    dantedamcio
    Poziom 2  

    Witam!
    Chciałbym odświeżyć temat. Szukałem tematów związanych z moim problemem niestety nie znalazłem takowych.
    W moim projekcie na atmega16 stosuję bootloader HID do komunikacji mikrokontrolera z komputerem poprzez port USB. Skonfigurowałem pliki niezbędne do poprawnego wczytania. Zbudowałem także odpowiedni schemat.
    Warunkiem dla bootloadera jest zwora pomiędzy pinem 3 portu D a masą. Po flashowaniu mk bootloadem urządzenie HID zostaje rozpoznane przez PC. Aby zaprogramować mk poprzez USB wgrywam program z rozszerzeniem .hex używając bootloadHID.exe. I tu pojawia się problem.
    Wczytany program działa bez względu na to czy zwora nadal jest czy zostanie usunięta.
    Od tego stanu nie potrafię powrócić do poziomu bootloadera mimo iż jego warunek (zwora) zostaje spełniony. A przecież bootloader służy do wielokrotnego wgrywania programu bez programatora i bez sensu byłoby wgrywanie go od nowa za każdym razem. Oczywiście kilka razy powtórzyłem flashowanie samego bootloadera ale nadal nic. Czy ktoś ma pomysł co z tym zrobić? Proszę o pomoc.

  • #98 27 Paź 2011 23:38
    dantedamcio
    Poziom 2  

    Witam!
    Muszę napisać aplikację w C# bądź C++ używając Visual Studio 2010, za pomocą której będę sterował ATmegą16L poprzez komunikację USB.
    Stąd moje pytanie czy wie ktoś gdzie mogę znaleźć jakiś przykład wykorzystujący obsługę USB (interfejs HID) do np. Włączania diod? Taki Power Switch tyle że obiektowo. Będę wdzięczny za pomoc.

  • #99 14 Sty 2012 11:00
    majki1995
    Poziom 10  

    Cześć
    Jestem jeszcze początkującym w te klocki dlatego zwracam się na forum o pomoc
    Od pewnego czasu interesuje się mikro kontrolerami AVR w języku c niestety nie mogę sobie z tym poradzić, mianowicie muszę zbudować układ dzięki któremu możliwe będzie rozegranie turnieju "Jeden z dziesięciu" w szkole chodzi mi oto żeby było 10 przycisków a mikrokontroler decydował który był wciśnięty jaklo pierwszy i wysyłał do kompa informację np. jeśli pierwszy to 1 jeśli drugi to 2 itd.
    nie znalazłem nigdzie takiego układu dlatego zwracam się o pomoc jak to zrobić morze ktoś też coś takiego robił?
    za pomoc z góry dzięki i pozdrawiam

  • #100 14 Sty 2012 11:04
    11111olo
    Poziom 43  

    To bardzo proste zadanie ale nie związane w zupełności z V-USB (choć i prze to można). Pomyśl może o RS232 jako medium transmisyjne. Jest banalne w obsłudze.

  • #101 14 Sty 2012 21:28
    majki1995
    Poziom 10  

    RS232 chodzi ci o port szeregowy w kompie?
    jeśli tak to musi to działać na usb bo szeregowego nie mam
    a przez V-USB się da ale jak?
    jak pisałem jestem początkujący i po przeczytaniu tego artykułu myślałem że oto chodzi w tym V-USB żeby komunikować się z kompem
    jeśli to nie ten dział to sory
    pisałeś że to proste zadanie mógłbyś powiedzieć jak to zrobić szukałem w necie ale nie znalazłem na to odpowiedzi
    pozdrawiam.

  • #102 14 Sty 2012 21:42
    11111olo
    Poziom 43  

    Jak nie masz RS232 to FTDI załatwi sprawę. Co z tego że będziesz miał komunikację jak musisz jeszcze bardzo dobrze znać działanie USB i napisać stosowny program na PC.

  • #103 15 Sty 2012 12:00
    majki1995
    Poziom 10  

    m_marko napisał na początku coś o HID dzięki któremu nie trzeba

    Cytat:
    specjalnych driverów pod systemy operacyjne (np. Windows, Linux). Mikrokontroler z zaszytym interfejscem HID będzie automatycznie rozpoznawany przez system operacyjny, który zainstaluje odpowiednie sterowniki.
    czy nie można tego wykorzystać?
    ktoś pisał o klawiaturze i joysticku nie dało by się tego jakoś podobnie zrobię żeby było wykrywane przez kompa jako klawiatura albo joystick?
    Jak zastosuje FTDI to też będę potrzebował jakiś program na kompa ?
    może ma ktoś jakiś ciekawy artykuł dla początkujących?

  • #105 15 Sty 2012 13:13
    majki1995
    Poziom 10  

    11111olo napisał:

    Cytat:
    To bardzo proste zadanie ale nie związane w zupełności z V-USB

    jednak nie jest takie proste
    to od czego polecalibyście zacząć?

  • #106 15 Sty 2012 14:07
    11111olo
    Poziom 43  

    Napisanie kodu na AVR który odczytuje 10 pinów i w zależności od ich stanu wysyła wartość liczbową jest banalne.
    Od tego zacznij.
    Na PC nie potrzeba pisać żadnego softu - wystarczy monitor RS232.

  • #107 17 Sty 2012 15:49
    majki1995
    Poziom 10  

    Wiem jak je sczytać ale jak wysłać do kompa?
    nam po kolei guzik > wejście atmegai > wyjście atmegi > magistrala RS232> komputer. Aby wysyłać na kompa dane potrzebuje jakąś specjalną bibliotekę, czy są gotowe?
    Jak by ktoś mógł mi pomóc to będę wdzięczny bo termin oddania pracy się zbliża a ja dalej tego nie rozumiem.
    A tak przy okazji to za monitor RS232 może służyć program "Bray's Terminal"?

  • #108 26 Mar 2012 21:20
    xcreative
    Poziom 8  

    Witam serdecznie,

    Odkopuję trochę temat bo mam problem z zaprogramowaniem przykładowego programu Pomiar.zip Otóż wygląda to następująco.

    Układ ATMEGA8535 + rezonator kwarcowy 16MHz. Programator Usbasp. Wszystko podłączone na wzór ze schematu na stronie VUSB

    V-USB (AVR USB) Tanie urządzenie USB w oparciu o AVR

    D+ -> INT0
    D- -> INT1

    W plikach dokonałem następujących modyfikacji:

    Makefile:

    Code:
    DEVICE  = atmega8535
    
    F_CPU   = 16000000   # in Hz
    FUSE_L  = 0xce
    FUSE_H  = 0xdf
    AVRDUDE = avrdude -c usbasp -p $(DEVICE)


    usbconfig.h
    Code:
    #define USB_CFG_IOPORTNAME      D
    

    #define USB_CFG_DMINUS_BIT      3

    #define USB_CFG_DPLUS_BIT       2


    No i to wszystko schemat wykonywanych komend:

    Code:


    D:\MEDYCYNA>make clean
    rm -f main.hex main.lst main.obj main.cof main.list main.map main.eep.hex main.e
    lf *.o usbdrv/*.o main.s usbdrv/oddebug.s usbdrv/usbdrv.s

    D:\MEDYCYNA>make hex
    avr-gcc -Wall -Os -DF_CPU=16000000       -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=atme
    ga8535 -c usbdrv/usbdrv.c -o usbdrv/usbdrv.o
    avr-gcc -Wall -Os -DF_CPU=16000000       -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=atme
    ga8535 -x assembler-with-cpp -c usbdrv/usbdrvasm.s -o usbdrv/usbdrvasm.o
    avr-gcc -Wall -Os -DF_CPU=16000000       -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=atme
    ga8535 -c usbdrv/oddebug.c -o usbdrv/oddebug.o
    avr-gcc -Wall -Os -DF_CPU=16000000       -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=atme
    ga8535 -c main.c -o main.o
    avr-gcc -Wall -Os -DF_CPU=16000000       -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=atme
    ga8535 -o main.elf usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o main.o
    rm -f main.hex main.eep.hex
    avr-objcopy -j .text -j .data -O ihex main.elf main.hex
    avr-size main.hex
       text    data     bss     dec     hex filename
          0    1790       0    1790     6fe main.hex


    D:\MEDYCYNA>make program
    avrdude -c usbasp -p atmega8535  -U flash:w:main.hex:i

    avrdude: AVR device initialized and ready to accept instructions





    Reading | ################################################## | 100% 0.04s

    avrdude: Device signature = 0x1e9308
    avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed

             To disable this feature, specify the -D option.
    avrdude: erasing chip
    avrdude: reading input file "main.hex"
    avrdude: writing flash (1790 bytes):

    Writing | ################################################## | 100% 13.76s



    avrdude: 1790 bytes of flash written
    avrdude: verifying flash memory against main.hex:
    avrdude: load data flash data from input file main.hex:
    avrdude: input file main.hex contains 1790 bytes
    avrdude: reading on-chip flash data:

    Reading | ################################################## | 100% 10.06s



    avrdude: verifying ...
    avrdude: 1790 bytes of flash verified

    avrdude: safemode: Fuses OK

    avrdude done.  Thank you.

    avrdude -c usbasp -p atmega8535  -U hfuse:w:0xdf:m -U lfuse:w:0xce:m

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.04s

    avrdude: Device signature = 0x1e9308
    avrdude: reading input file "0xdf"
    avrdude: writing hfuse (1 bytes):

    Writing | ################################################## | 100% 0.01s

    avrdude: 1 bytes of hfuse written
    avrdude: verifying hfuse memory against 0xdf:
    avrdude: load data hfuse data from input file 0xdf:
    avrdude: input file 0xdf contains 1 bytes
    avrdude: reading on-chip hfuse data:

    Reading | ################################################## | 100% 0.01s

    avrdude: verifying ...
    avrdude: 1 bytes of hfuse verified
    avrdude: reading input file "0xce"
    avrdude: writing lfuse (1 bytes):

    Writing | ################################################## | 100% 0.01s

    avrdude: 1 bytes of lfuse written
    avrdude: verifying lfuse memory against 0xce:
    avrdude: load data lfuse data from input file 0xce:
    avrdude: input file 0xce contains 1 bytes
    avrdude: reading on-chip lfuse data:

    Reading | ################################################## | 100% 0.01s

    avrdude: verifying ...
    avrdude: 1 bytes of lfuse verified

    avrdude: safemode: Fuses OK

    avrdude done.  Thank you.


    D:\MEDYCYNA>make fuse
    avrdude -c usbasp -p atmega8535  -U hfuse:w:0xdf:m -U lfuse:w:0xce:m

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.04s

    avrdude: Device signature = 0x1e9308
    avrdude: reading input file "0xdf"
    avrdude: writing hfuse (1 bytes):

    Writing | ################################################## | 100% 0.01s

    avrdude: 1 bytes of hfuse written
    avrdude: verifying hfuse memory against 0xdf:
    avrdude: load data hfuse data from input file 0xdf:
    avrdude: input file 0xdf contains 1 bytes
    avrdude: reading on-chip hfuse data:

    Reading | ################################################## | 100% 0.01s

    avrdude: verifying ...
    avrdude: 1 bytes of hfuse verified
    avrdude: reading input file "0xce"
    avrdude: writing lfuse (1 bytes):

    Writing | ################################################## | 100% 0.01s

    avrdude: 1 bytes of lfuse written
    avrdude: verifying lfuse memory against 0xce:
    avrdude: load data lfuse data from input file 0xce:
    avrdude: input file 0xce contains 1 bytes
    avrdude: reading on-chip lfuse data:

    Reading | ################################################## | 100% 0.01s

    avrdude: verifying ...
    avrdude: 1 bytes of lfuse verified

    avrdude: safemode: Fuses OK

    avrdude done.  Thank you.





    No i niestety lipa. Po podłączeniu wykrywa jako unknown i zamyka ze względu na błędy (kod43)

    Czy ktoś mógłby zweryfikować wprowadzone przeze mnie zmiany. Będę wdzięczny za pomoc.

    Pozdrawiam

  • #109 28 Mar 2012 18:49
    myndoza
    Poziom 10  

    Mam podobny problem co kolega wyżej.

    Mój schemat podłączenia jest w załączniku. Kryształ 16MHz nie tak jak na schemacie 12M. Co do Uruchomienia to robię wszystko według poradnika. Po podłączeniu do kompa procesorka z zaprogramowanym kodem

    Kod: c
    Zaloguj się, aby zobaczyć kod
    dostaje komunikat o unicown dewice (kod 22).

    System to win7 x64. Mam jeszcze Ubuntu ale tam nie mam pojęcia jak sprawdzić czy urządzenie jest podłączone. Poprawka na ubuntu po komendzie lsusb też się nie pokazuje

  • #110 28 Mar 2012 18:53
    xcreative
    Poziom 8  

    Witam,

    Udało mi się już naprawić problem. Całość polegała na złym wzorowaniu się na schemacie ze strony VUSB. Otóż w tym schemacie układ zasilany jest napięciem obniżonym o spadek na 2 diodach. W ostateczności daje to około 4V zasilania a ATMEGA potrzebuje 4.5V. Po wywaleniu 1 diody układ działa bez problemu. Jeśli kolega wyżej ma ten sam problem niech spojrzy czy czegoś podobnego nie zrobił przez nieuwagę. A jak nie to niech wzoruje się na komendach które ja wykonywałem.

    Czy kolega wprowadził zmiany w usbconfig.h ?


    Pozdrawiam

  • #111 28 Mar 2012 19:08
    myndoza
    Poziom 10  

    Zasilanie biorę bezpośrednio z portu USB więc musi być te ~5V.
    Procesor to AtMega8A-PU
    Zmiany w configu to

    Kod: c
    Zaloguj się, aby zobaczyć kod

    zgodnie z tym co na schemacie połączeń


    Dodaje mejka
    Kod: c
    Zaloguj się, aby zobaczyć kod


    usbconfig.h
    Kod: c
    Zaloguj się, aby zobaczyć kod


    i main
    Kod: c
    Zaloguj się, aby zobaczyć kod

  • #112 28 Mar 2012 19:22
    xcreative
    Poziom 8  

    A masz ustawione odpowiednio fuse ?

    Mój Make:

    Code:

    # Name: Makefile
    # Project: hid-data example
    # Author: Christian Starkjohann
    # Creation Date: 2008-04-07
    # Tabsize: 4
    # Copyright: (c) 2008 by OBJECTIVE DEVELOPMENT Software GmbH
    # License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
    # This Revision: $Id: Makefile 692 2008-11-07 15:07:40Z cs $

    DEVICE  = atmega8535
    F_CPU   = 16000000   # in Hz
    FUSE_L  = 0xce
    FUSE_H  = 0xdf
    AVRDUDE = avrdude -c usbasp -p $(DEVICE) # edit this line for your programmer

    CFLAGS  = -Iusbdrv -I. -DDEBUG_LEVEL=0
    OBJECTS = usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o main.o

    COMPILE = avr-gcc -Wall -Os -DF_CPU=$(F_CPU) $(CFLAGS) -mmcu=$(DEVICE)

    ##############################################################################
    # Fuse values for particular devices
    ##############################################################################
    # If your device is not listed here, go to
    # http://palmavr.sourceforge.net/cgi-bin/fc.cgi
    # and choose options for external crystal clock and no clock divider
    #
    ################################## ATMega8 ##################################
    # ATMega8 FUSE_L (Fuse low byte):
    # 0x9f = 1 0 0 1   1 1 1 1
    #        ^ ^ \ /   \--+--/
    #        | |  |       +------- CKSEL 3..0 (external >8M crystal)
    #        | |  +--------------- SUT 1..0 (crystal osc, BOD enabled)
    #        | +------------------ BODEN (BrownOut Detector enabled)
    #        +-------------------- BODLEVEL (2.7V)
    # ATMega8 FUSE_H (Fuse high byte):
    # 0xc9 = 1 1 0 0   1 0 0 1 <-- BOOTRST (boot reset vector at 0x0000)
    #        ^ ^ ^ ^   ^ ^ ^------ BOOTSZ0
    #        | | | |   | +-------- BOOTSZ1
    #        | | | |   + --------- EESAVE (don't preserve EEPROM over chip erase)
    #        | | | +-------------- CKOPT (full output swing)
    #        | | +---------------- SPIEN (allow serial programming)
    #        | +------------------ WDTON (WDT not always on)
    #        +-------------------- RSTDISBL (reset pin is enabled)
    #
    ############################## ATMega48/88/168 ##############################
    # ATMega*8 FUSE_L (Fuse low byte):
    # 0xdf = 1 1 0 1   1 1 1 1
    #        ^ ^ \ /   \--+--/
    #        | |  |       +------- CKSEL 3..0 (external >8M crystal)
    #        | |  +--------------- SUT 1..0 (crystal osc, BOD enabled)
    #        | +------------------ CKOUT (if 0: Clock output enabled)
    #        +-------------------- CKDIV8 (if 0: divide by 8)
    # ATMega*8 FUSE_H (Fuse high byte):
    # 0xde = 1 1 0 1   1 1 1 0
    #        ^ ^ ^ ^   ^ \-+-/
    #        | | | |   |   +------ BODLEVEL 0..2 (110 = 1.8 V)
    #        | | | |   + --------- EESAVE (preserve EEPROM over chip erase)
    #        | | | +-------------- WDTON (if 0: watchdog always on)
    #        | | +---------------- SPIEN (allow serial programming)
    #        | +------------------ DWEN (debug wire enable)
    #        +-------------------- RSTDISBL (reset pin is enabled)
    #
    ############################## ATTiny25/45/85 ###############################
    # ATMega*5 FUSE_L (Fuse low byte):
    # 0xef = 1 1 1 0   1 1 1 1
    #        ^ ^ \+/   \--+--/
    #        | |  |       +------- CKSEL 3..0 (clock selection -> crystal @ 12 MHz)
    #        | |  +--------------- SUT 1..0 (BOD enabled, fast rising power)
    #        | +------------------ CKOUT (clock output on CKOUT pin -> disabled)
    #        +-------------------- CKDIV8 (divide clock by 8 -> don't divide)
    # ATMega*5 FUSE_H (Fuse high byte):
    # 0xdd = 1 1 0 1   1 1 0 1
    #        ^ ^ ^ ^   ^ \-+-/
    #        | | | |   |   +------ BODLEVEL 2..0 (brownout trigger level -> 2.7V)
    #        | | | |   +---------- EESAVE (preserve EEPROM on Chip Erase -> not preserved)
    #        | | | +-------------- WDTON (watchdog timer always on -> disable)
    #        | | +---------------- SPIEN (enable serial programming -> enabled)
    #        | +------------------ DWEN (debug wire enable)
    #        +-------------------- RSTDISBL (disable external reset -> enabled)
    #
    ################################ ATTiny2313 #################################
    # ATTiny2313 FUSE_L (Fuse low byte):
    # 0xef = 1 1 1 0   1 1 1 1
    #        ^ ^ \+/   \--+--/
    #        | |  |       +------- CKSEL 3..0 (clock selection -> crystal @ 12 MHz)
    #        | |  +--------------- SUT 1..0 (BOD enabled, fast rising power)
    #        | +------------------ CKOUT (clock output on CKOUT pin -> disabled)
    #        +-------------------- CKDIV8 (divide clock by 8 -> don't divide)
    # ATTiny2313 FUSE_H (Fuse high byte):
    # 0xdb = 1 1 0 1   1 0 1 1
    #        ^ ^ ^ ^   \-+-/ ^
    #        | | | |     |   +---- RSTDISBL (disable external reset -> enabled)
    #        | | | |     +-------- BODLEVEL 2..0 (brownout trigger level -> 2.7V)
    #        | | | +-------------- WDTON (watchdog timer always on -> disable)
    #        | | +---------------- SPIEN (enable serial programming -> enabled)
    #        | +------------------ EESAVE (preserve EEPROM on Chip Erase -> not preserved)
    #        +-------------------- DWEN (debug wire enable)


    # symbolic targets:
    help:
       @echo "This Makefile has no default rule. Use one of the following:"
       @echo "make hex ....... to build main.hex"
       @echo "make program ... to flash fuses and firmware"
       @echo "make fuse ...... to flash the fuses"
       @echo "make flash ..... to flash the firmware (use this on metaboard)"
       @echo "make clean ..... to delete objects and hex file"

    hex: main.hex

    program: flash fuse

    # rule for programming fuse bits:
    fuse:
       @[ "$(FUSE_H)" != "" -a "$(FUSE_L)" != "" ] || \
          { echo "*** Edit Makefile and choose values for FUSE_L and FUSE_H!"; exit 1; }
       $(AVRDUDE) -U hfuse:w:$(FUSE_H):m -U lfuse:w:$(FUSE_L):m

    # rule for uploading firmware:
    flash: main.hex
       $(AVRDUDE) -U flash:w:main.hex:i

    # rule for deleting dependent files (those which can be built by Make):
    clean:
       rm -f main.hex main.lst main.obj main.cof main.list main.map main.eep.hex main.elf *.o usbdrv/*.o main.s usbdrv/oddebug.s usbdrv/usbdrv.s

    # Generic rule for compiling C files:
    .c.o:
       $(COMPILE) -c $< -o $@

    # Generic rule for assembling Assembler source files:
    .S.o:
       $(COMPILE) -x assembler-with-cpp -c $< -o $@
    # "-x assembler-with-cpp" should not be necessary since this is the default
    # file type for the .S (with capital S) extension. However, upper case
    # characters are not always preserved on Windows. To ensure WinAVR
    # compatibility define the file type manually.

    # Generic rule for compiling C to assembler, used for debugging only.
    .c.s:
       $(COMPILE) -S $< -o $@

    # file targets:

    # Since we don't want to ship the driver multipe times, we copy it into this project:
    usbdrv:
       cp -r ../../../usbdrv .

    main.elf: usbdrv $(OBJECTS)   # usbdrv dependency only needed because we copy it
       $(COMPILE) -o main.elf $(OBJECTS)

    main.hex: main.elf
       rm -f main.hex main.eep.hex
       avr-objcopy -j .text -j .data -O ihex main.elf main.hex
       avr-size main.hex

    # debugging targets:

    disasm:   main.elf
       avr-objdump -d main.elf

    cpp:
       $(COMPILE) -E main.c

  • #113 28 Mar 2012 19:41
    myndoza
    Poziom 10  

    Fuze bity ustawione tak jak masz w mejku czyli lfuse:w:0x9f:m hfuse:w:0xc9:m
    i dalej nic. Poza tym Twój mejk sypie mi makefile:104: *** missing separator. Stop. (windows 7 / winavr -> programers notepad)


    Odłaczyłem zenerki - nic
    Odłaczyłem rezystorek R12 (1M) - nic
    Podłączyłem rezystorek R12 bez zenerek - nic

    EDIT:
    Przerobiłem uklad żeby było tak jak TU - bez zmian

  • #115 02 Kwi 2012 09:30
    myndoza
    Poziom 10  

    @uzi18
    haha super wypowiedz
    gorzej jak ktoś musi zrobić emulacje bo tego wymaga prowadzący

    Znalazłem błąd u siebie
    zenery były odwrotnie

  • #116 23 Maj 2012 20:40
    mati1988k
    Poziom 13  

    Witam serdecznie.

    Chciałbym zrobić urządzenie typu HID na atmedze16. Chodzi o to aby działało jako najprostsza mysz komputerowa. Czyli wysyłanie x,y położenia myszy, LPM i PPM. Gdzie mogę znaleźć jakieś info jak to wykonać? Chodzi mi tylko o część programową do obsługującą V-USB.

  • #117 24 Maj 2012 17:58
    myndoza
    Poziom 10  

    W bibliotece na stronie V-USB masz przykład hid mouse tam jest obsługa ruchów co do przycisków musisz poszukać

  • #118 29 Maj 2012 22:34
    mati1988k
    Poziom 13  

    Jakie napięcia powinny być na d+ i d-? Bo wszędzie w opisie biblioteki jest napisane 3.3V a w opisie usb nic nie ma ale VCC w USB ma 5V.

  • #119 26 Wrz 2012 21:47
    avatar
    Poziom 35  

    Napięcie na liniach danych USB nie powinno przekraczac 3,3V dlatego powinno sie stosowac diody obnizajace napiecie lub stabilizator.

    Ja mam inny problem i jezeli mozna to prosze o pomoc z V-USB - staram sie zmienidz dzialanie przykladu HIDkeys i niestety nie udaje mi sie problem:
    Chcialbym wysylac Pojedynczy znak np P raz do zmiany naciskanego klawisza, a nie cala serie "PPPPPPPPPPPPPPPPPPP"
    Najprosciej bylo by zrobic to sprzetowo podlaczajac pod odpowiedni pin w uC ale niestety ja juz zrobilem PCB ...
    nie bardzo moge zrozumiec dlaczego zapis z przykladu HIDKeys wogole dziala w taki sposob zwlaszcza ze jest tam zapis w postaci :

    Code:

       key = keyPressed();   
          if(lastKey != key){
                lastKey = key;
                keyDidChange = 1;
            }

  • #120 26 Wrz 2012 21:59
    11111olo
    Poziom 43  

    Też to przerabiałem. Trochę googlowania i wyszło że puki klawisz jest wciśnięty to będzie powtarzany zgodnie z ustawieniami w systemie - panel sterowania -> klawiatura -> prędkość powtarzania.

    Wniosek z tego jest taki że trzeba "puścić" klawisz przez wysłanie zera.
    Tak samo jest na ps/2.