USBASP / ISP als V-USB

#3765039
Lesenswert?

Stefan Anderson schrieb:
> Kann ich diesen USBASP / ISP Programmer mit V-USB Firmware
> Flashen.
> Es soll als HID tatatur arbeiten und an den ISP pinout sollen tasten
> dran
>
> MFG Ripper121

Ja geht - das habe ich selbst schon gemacht.
Beachte das das USB-Layout nicht Standard VUSB ist. (PB0 und PB1 fuer 
Datenleitungen und PD2 fuer INT0 ...)

Falls du Hilfe brauchst - ich bin in meinem TS erreichbar und stehe dir 
gern fuer Fragen zur Verfuegung.

http://matrixstorm.com/avr/tinyusbboard/#support

MfG

p.s.: Kann ein Mod bitte die Beitraege von "derHELMUT" loeschen?
Scheint ja naemlich ein fleissiger Dummschwaetzer zu sein...
Gast #3765635
Lesenswert?

VUSB sollte damit laufen.
Ansonsten empfehle ich die Lektüre "Das Wissen um die wahre Physik: Bis 
heute unterdrückt" vom promovierten Naturwissenschaftler Dr. Axel Stoll.
Darin sind die Basics von AVR und VUSB sehr nachvollziehbar beschrieben.
Weiß nur wieder keiner.
Gast #3773591
Lesenswert?

https://code.google.com/p/vusb-for-arduino/

Library wie gewohnt installieren. Benötigt wird bei dir ja nur 
UsbKeyboard.

In usbconfig.h:
1
#define USB_CFG_IOPORTNAME      D
2
/* This is the port where the USB bus is connected. When you configure it to
3
 * "B", the registers PORTB, PINB and DDRB will be used.
4
 */
5
#define USB_CFG_DMINUS_BIT      4
6
/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
7
 * This may be any bit in the port.
8
 */
9
#define USB_CFG_DPLUS_BIT       2

nach

1
#define USB_CFG_IOPORTNAME      B
2
/* This is the port where the USB bus is connected. When you configure it to
3
 * "B", the registers PORTB, PINB and DDRB will be used.
4
 */
5
#define USB_CFG_DMINUS_BIT      0
6
/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
7
 * This may be any bit in the port.
8
 */
9
#define USB_CFG_DPLUS_BIT       1

ändern.

In UsbKeyboard.h:
1
    PORTB = 0; // TODO: Only for USB pins?
2
    DDRB |= ~USBMASK;

nach

1
PORTB = 0; // TODO: Only for USB pins?
2
    DDRB |= ~USBMASK;

ändern.

Zusätzlich in der boards.txt einen Eintrag für den "USBasp-Arduino" 
anlegen und die CPU Clock auf 12 MHz stellen.
Das beigelegte Example dann noch anpassen:
1
  TIMSK0&=!(1<<TOIE0); // ++

in
1
  TIMSK&=!(1<<TOIE0); // ++

Fertig.

Die V-USB example Projekte lassen sich nativ übersetzen. Das wichtigste 
ist  der Eintrag in der usbconfig.h. Der Rest ist dann src Absuchen, CPU 
clock ändern falls nötig, usw.

Programmiere den China-USBasp mit nem zweiten asp.
OP #3774185
Lesenswert?

atmega8.name=V-USB Atmega8
atmega8.build.mcu=atmega8
atmega8.build.f_cpu=12000000L
atmega8.build.core=arduino
atmega8.build.variant=atmega8

Meine Config.

Wäre lieb wenn du es schon testen kannst bei dir und es geht wenn du mir 
da einfach alle dateien die du geändert hast zusenden könntest.
#3774218
Lesenswert?

Also wenn du meine VUSB-fuer-Ardunio Patches nimmst, und auch die 
Boardescription fuer die BeteMCU Dinger - dann gehts, denn das ist 
bereits ueber 1 Jahr lang getestet ;-)

Nachtrag: Achja, und das geht native - ganz ohne Anpassen irgendwelchen 
LIB-Codes. (Sodass es mit anderen Boards dann nimmer funktioniert.)

MfG
#3774229
Lesenswert?

Ist genau die gleiche Lib - deinen Arduinocode kannst du behalten.
Nur das was im Hintergrund werkelt ist gepatcht.

Ich habe aber auch nativen Code fuer dich, der direkt AVR gcc nutzt und 
bereits Matrixtastatur enthaelt.

Ich lade es bei Bedarf gern mal hier hoch.

Bin innerhalb der naechsten h auch noch im TeamSpeak erreichbar, fuer 
direkte Fragen an mich.

MfG
#3774252
Lesenswert?

Ok.

Gegen 19:30 muss ich dann zum Zug und bin definitiv bis 22 Uhr weg.

Code kommt per Mail. Bitte nicht vergessen die usbconfig.h fuer deinen 
Bedarf anzupassen.
Auch die main.h enthaelt moeglicherweise PIN definitionen (NUM-, Caps, 
und ScrollLock LEDs), die du aendern musst.

Ist derzeit fuer eine 6x6 Matrix Tastatur.
Du kannst ja Fragen und anpassen.

MfG
#3774259
Lesenswert?

Keyboard muesste sich wie folgt enumerieren:
1
Aug 22 15:12:14 thinkrat kernel: usb 2-1.2: new low-speed USB device number 28 using ehci-pci
2
Aug 22 15:12:14 thinkrat kernel: input: http://matrixstorm.com/avr/tinyusbboard/ tinyUSBboard as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/input/input20
3
Aug 22 15:12:14 thinkrat kernel: hid-generic 0003:4242:E131.0005: input,hidraw2: USB HID v1.01 Keyboard [http://matrixstorm.com/avr/tinyusbboard/ tinyUSBboard] on usb-0000:00:1d.0-1.2/input0


lsusb:
1
Bus 002 Device 029: ID 4242:e131 USB Design by Example
1
stephan@thinkrat ~ $ lsusb -vvvvd 4242:e131
2

3
Bus 002 Device 029: ID 4242:e131 USB Design by Example 
4
Device Descriptor:
5
  bLength                18
6
  bDescriptorType         1
7
  bcdUSB               1.10
8
  bDeviceClass            0 (Defined at Interface level)
9
  bDeviceSubClass         0 
10
  bDeviceProtocol         0 
11
  bMaxPacketSize0         8
12
  idVendor           0x4242 USB Design by Example
13
  idProduct          0xe131 
14
  bcdDevice            1.00
15
  iManufacturer           1 http://matrixstorm.com/avr/tinyusbboard/
16
  iProduct                2 tinyUSBboard
17
  iSerial                 0 
18
  bNumConfigurations      1
19
  Configuration Descriptor:
20
    bLength                 9
21
    bDescriptorType         2
22
    wTotalLength           34
23
    bNumInterfaces          1
24
    bConfigurationValue     1
25
    iConfiguration          0 
26
    bmAttributes         0x80
27
      (Bus Powered)
28
    MaxPower              100mA
29
    Interface Descriptor:
30
      bLength                 9
31
      bDescriptorType         4
32
      bInterfaceNumber        0
33
      bAlternateSetting       0
34
      bNumEndpoints           1
35
      bInterfaceClass         3 Human Interface Device
36
      bInterfaceSubClass      1 Boot Interface Subclass
37
      bInterfaceProtocol      1 Keyboard
38
      iInterface              0 
39
        HID Device Descriptor:
40
          bLength                 9
41
          bDescriptorType        33
42
          bcdHID               1.01
43
          bCountryCode            0 Not supported
44
          bNumDescriptors         1
45
          bDescriptorType        34 Report
46
          wDescriptorLength      63
47
         Report Descriptors: 
48
           ** UNAVAILABLE **
49
      Endpoint Descriptor:
50
        bLength                 7
51
        bDescriptorType         5
52
        bEndpointAddress     0x81  EP 1 IN
53
        bmAttributes            3
54
          Transfer Type            Interrupt
55
          Synch Type               None
56
          Usage Type               Data
57
        wMaxPacketSize     0x0008  1x 8 bytes
58
        bInterval              10
59
Device Status:     0x0000
60
  (Bus Powered)
Gast #3774601
Lesenswert?

Ist natürlich richtig. Die lib würde mit diesen Änderungen NUR noch mit 
dem China clone funktionieren.

@matrixstorm: cooles Projekt hast du da mit dem tinyUSBBoard. Hab ich 
auf der Suche nach dem Arduino/VUSB/atmega8 krams auch gefunden.
Gast #3774603
Lesenswert?

@ripper: Das USBKeyboard example zeigt schon sehr gut, wie das 
funktioniert. Am Anschluss von dem clone liegen auch genug gpio Pins an, 
um eine Matrixtastatur anzusteuern.

Die Infos dazu gibts zuhauf im Netz. Kannste dir in 10min zusammen 
copy/pasten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren