Forum: Mikrocontroller und Digitale Elektronik USBASP / ISP als V-USB


von Stefan A. (ripper121)


Angehängte Dateien:

Lesenswert?

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

von derHELMUT (Gast)


Lesenswert?

Nein, geht leider nicht.

von Stefan A. (ripper121)


Lesenswert?

Warum ist doch die Selbe Schaltung am USB Port?!
Siehe 
http://rn-wissen.de/wiki/index.php/V-USB:_Ein_Firmware_USB-Treiber_f%C3%BCr_AVR

: Bearbeitet durch User
von derHELMUT (Gast)


Lesenswert?

Na dann geht's ws. doch.

von Stefan A. (ripper121)


Lesenswert?

Sehr gut, so ganz ohne begründung sagst du nein es geht ne :D

von tommy (Gast)


Lesenswert?

Der USBASP ist ja von Thomas Fischl, also in diesem
Link mal auf Readme.txt klicken:
http://www.fischl.de/usbasp/

et voila: Der läuft mit V-USB

von Stefan A. (ripper121)


Lesenswert?

ja weis aber ne ob das china teil auch so geschaltet ist.
aber sieht ganz danach aus mit den screenshots

von Stephan B. (matrixstorm)


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...

von Pr0gramm (Gast)


Lesenswert?

Willst du das für Pr0gramm Entwickeln ???

von Hm (Gast)


Lesenswert?

Pr0gramm schrieb:
> Willst du das für Pr0gramm Entwickeln ???

Hahaha :D Hallo fellow pr0 user! Dachte exakt das gleiche beim lesen!

von Hm (Gast)


Lesenswert?

Wobei. Nein, kann er nicht sein. cekay und störtebeker haben nen arduino 
pro mini clone aus china für 2€ als Basis soweit ich das in den 
Prototypen Fotos sehen konnte^^

von Stefan A. (ripper121)


Lesenswert?

Gibt anscheinend echt viele pr0 User xD

von Stefan A. (ripper121)


Lesenswert?

Das soll die Steuerung für den russischen 300km/h Panzer werden und es 
wird mit der Energie der kalten Sonne angetrieben. Zur Funk Übertragung 
nutzen wir skalarwellen.
Muss man wissen.

von N. Rokpop (Gast)


Lesenswert?

Meine Fresse, was ist denn hier los?

1) Ja geht
2) du musst den Jumper "Self program" JP2 zum programmieren schließen.

von Stephan B. (matrixstorm)


Lesenswert?

N. Rokpop schrieb:
> Meine Fresse, was ist denn hier los?

Ich fuerchte Schulferien. (Vermutlich in den meisten Bundeslaendern 
jetzt)

MfG

von Stefan A. (ripper121)


Lesenswert?

1. Mich hat nur gewundert wie viele das nutzen
2. Danke ich werde es versuchen sobald die 2 Teile eingetroffen sind

Muss ich was beachten bei den Fusebits?
Wie ist der intern getacktet, mit Divisor oder normal 8Mhz?

von dummy (Gast)


Lesenswert?

>Muss ich was beachten bei den Fusebits?

Ja, fass sie nicht an.

>Wie ist der intern getacktet, mit Divisor oder normal 8Mhz?

Bist du blind? Was meinst du wofür der 12MHz Quarz da ist?

von Stefan A. (ripper121)


Lesenswert?

Danke habe ich übersehen.

von N. Rokpop (Gast)


Lesenswert?

Stefan Anderson schrieb:
> Das soll die Steuerung für den russischen 300km/h Panzer werden und es
> wird mit der Energie der kalten Sonne angetrieben. Zur Funk Übertragung
> nutzen wir skalarwellen.
> Muss man wissen.

Hier ist Nachhilfe in Deutsch angesagt.

von Stefan A. (ripper121)


Lesenswert?

Mimimimimimi

von Hm (Gast)


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.

von China (Gast)


Lesenswert?

Habs gerade ausprobiert. Funktioniert! Selbst die Arduino Lib 
funktioniert nach ein paar Anpassungen (Original Lib nutzt PORTD, der 
China USBasp nutzt PORTB).

von Stefan A. (ripper121)


Lesenswert?

Cool :)
Könntest du den Code bitte bereit stellen?

von Stephan B. (matrixstorm)


Lesenswert?


von China (Gast)


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.

von China (Gast)


Lesenswert?

Achja: Die LEDs sitzen auf A0 und A1.

Den "Set-SCK" Jumper kann man als Schalter in dem example Sketch 
missbrauchen. Der liegt auf A2. Einfach kurzschließen, und schon erfolgt 
die Ausgabe.

Schönes Spielzeug :D

von Stephan B. (matrixstorm)


Lesenswert?

Aber Vorsicht.
Das hardcoden des Codes hat zur Folge, das es mit keinem anderen Arduino 
aus der "Boardselection" funktioniert.
Besser ist die gepatchte Version der Arduino-VUSB Bibliothek zu 
installieren.
Diese wertet die aktive Boardbeschreibung aus, um das Pinset (per 
Makros) anzupassen.

MfG

von Stefan A. (ripper121)


Lesenswert?

@China (Gast):
habe alles angepasst geht leider nicht.
Kannst du mir es bitte mal per mail schicken deine angepasste Lib und 
das Example ?

Ripper121@gmail.com

von Stephan B. (matrixstorm)


Lesenswert?

Welches Board hast du denn in Arduino ausgewaehlt?
Vermutlich ein Taktproblem.

MfG

von Stefan A. (ripper121)


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.

von Stephan B. (matrixstorm)


Lesenswert?

Also ich bin nicht "China (Gast)" falls du das denkst.

Ich checke es aber dann mal nach

MfG

von Stefan A. (ripper121)


Lesenswert?

Ich weis wir sind über Mail in Kontakt du und ich ;)
Wäre super, hast ja meine mail ;)

von Stephan B. (matrixstorm)


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

: Bearbeitet durch User
von Stefan A. (ripper121)


Lesenswert?

Kannst du mir die bitte mal schicken und ein Beispiel dazu wie man eine 
taste sendet?

von Stephan B. (matrixstorm)


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

: Bearbeitet durch User
von Stefan A. (ripper121)


Lesenswert?

Mit matrix tastatur wäre auch gut 2x4 tasten oder ADC.
Bin auf arbeit, ts is ne so gut hier ^^

von Stephan B. (matrixstorm)


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

von Stefan A. (ripper121)


Lesenswert?

Danke -

von Stephan B. (matrixstorm)


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)

von China (Gast)


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.

von China (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.