Forum: Mikrocontroller und Digitale Elektronik Olimex AT90USB162 Ausgabe über USB


von LabAT (Gast)


Lesenswert?

Hallo,
ich habe ein Olimex AT90USB162 Board und habe auf meine Frage hier, nach 
zwei Tagen suchen, noch keine Antwort gefunden.
Die Beispiele, „avr-usb-162_Led“ und „avr-usb-162_Button“, von Atmel 
kann ich mit Flip über USB aufspielen und alles funktioniert 
einwandfrei.

Ich möchte Signale vom AT90USB162 über USB ausgeben und an den PC 
senden. Hier soll das Signal mit einem Programm aufgenommen werden.

Meine Frage ist folgende:
Kann man beispielsweise das Programm “avr-usb-162_Button“ so 
umschreiben, dass beim drücken des Buttons nicht nur die LED leuchtet, 
sondern auch ein Signal über die USB-Datenleitung zum PC gesendet wird? 
Oder gibt es so ein Programm evtl. schon?
Dieses Signal möchte ich dann mit einem Programm auf dem PC sichtbar 
machen. Das wäre ein Anfang.
Später sollen dann elektrische Größen vom Mikrocontroller verarbeitete 
und zum PC gesendet werden.

avr-usb-162_Button code
1
/*  Sample program for Olimex AVR-USB-162 with AT90USB162 processor
2
 *  Toggles the Led On when the button is pressed
3
 *  Compile with AVRStudio+WinAVR (gcc version 3.4.6) */
4
5
#include "avr\io.h"
6
7
void PORT_Init()
8
{
9
  PORTB = 0b00000000;
10
  DDRB = 0b00000000;
11
12
  PORTC = 0b00000000;
13
  DDRC = 0b00000000;
14
15
  PORTD = 0b00000000;
16
  DDRD = 0b00010000;    //set Led as output
17
}
18
19
int main(void)
20
{
21
  PORT_Init();
22
23
  asm("WDR");            //Watchdog Timer Reset
24
  MCUSR= ~(1<<WDRF);
25
  WDTCSR = (1<<WDCE) | (1<<WDE);
26
  WDTCSR = 0x00;
27
  WDTCKD = 0x00;
28
29
  while (1)
30
  {
31
    if (!(PIND & 0b10000000))
32
      PORTD = PORTD | 0b00010000;
33
    else
34
      PORTD = PORTD & 0b11101111;
35
  }
36
  return 0;
37
}

Danke für die Antworten

von Floh (Gast)


Lesenswert?

LabAT schrieb:
> sondern auch ein Signal über die USB-Datenleitung zum PC gesendet wird?
> Oder gibt es so ein Programm evtl. schon?

Du hast dir die Funktionsweise von USB noch garnicht angeschaut.
Mach dich erstmal über USB schlau.
Dann kannst du die Software für den uC proggen.
Eventuell kannst du auch mal nach den Code zu gemüte führen, der ist 
zwar für den AT90usb1287, lässt sich aber adaptieren.

http://www.ssalewski.de/AT90USB_firmware.html.de

von usr (Gast)


Lesenswert?

Stichwort: LUFA STACK Oder leichter für den anfang Uart auf pc

von LabAT (Gast)


Lesenswert?

Danke für die schnellen Antworten.

Danke für den Link zu:
http://www.ssalewski.de/AT90USB_firmware.html.de

Hat jmd. schon einmal die Firmware für den AT90USB162 umgeschrieben?

Gruß

von Mirco (Gast)


Lesenswert?

Hallo zusammen,

ich habe ein ähnliches Problem wie LabAT. Ich bin Anfänger auf diesem 
Gebiet. Habe aber dennoch ein Projekt begonnen.
Ich möchte Daten über die USB-Schnittstelle des Olimex 
AVR-USB-162-Boards senden. ICh habe mich Aufgrund der USB-Anbindung und 
des Preises für dieses Board entschieden. Ich habe mir von Atmel das 
Paket AVR328 geladen. Daraus habe ich die 
STK526-series2-hidio-2_0_2-doc.a90, zum testen, auf den Controller 
gespielt. In dem Paket ist eine AtUsbHid.dll  und eine 
UsbHidGenericDemo.exe dabei. Mit dem UsbHidGenericDemo.exe lässt sich 
die LED über den Button LED 3 ein und ausschalten. Das Bedeutet für 
mich, dass ich Daten über USB zum Controller schicken kann. Ich versuche 
mich in die einzelnen H-Dateien einzulesen. Klappt auch sehr langsam. 
Ich bin der Meinung,dass ich die stk_526.h anpassen muss. Müssen noch 
andere anpassen?

Nun zu meiner eigentlichen Frage:
Wie kann ich die stk_526.h für meine Zwecke anpassen?

Gibt es jemanden der das Paket AVR328 für den OLIMEX AVR-USB-162 
angepasst hat, sodass man die LED an bzw. aus und den Taster abfragen 
kann?

gruß
Mirco

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.