www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMega48P mit HIDKeys


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche seit kurzem das HIDKeys Projekt von Obdev.at auf einen 
AtMega48P zu portieren. Habe alle Register umgestellt (TIFR --> TIFR0).
Weiterhin habe ich in der usbdrv.h alle sRegster gecheckt, sollte 
stimmen. Die Schaltung, die ich nutze sollte auch stimmen. Ist der 
Schaltung entnommen, die beim Projekt dabei ist.

Hat jemand einen Tipp für mich, Danke !

Grüße
Stefan

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dass Nennen des Problems und der eigentlichen Frage könnte unter 
Umständen hilfreich sein.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kriegs nich hin...das Gerät meldet sich nicht. Ich bekomme immer nur 
"Unbekanntes USB Gerät"...

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wurde die richtige Frequenz gewählt?
Schwingt der Quarz?
Wenn die Zener-Diodenvariante gewählt wurde: stimmt die Spannung an den 
Dioden?

Wie lange wird gebraucht um die Hauptschleife einmal zu durchlaufen?

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
12MHz Quarz schwingt.
Fuses high: 0xDD, low: 0xDF

Das mit dem Schleifendurchlauf stellt mich vor das Problem den irgendwie 
zu messen. Wie mach ich das? Anhand der Flanken auf den D+/D- Kanälen?

Grüße

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag: keine Zenerdioden,sondern eine LED, die die 
Versorgungsspannung auf 3,3V herabsetzt. Funktioniert bei dem HIDKeys 
auf einem ATMega16 gut.

Grüße

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ist der ATmega aber "etwas" übertaktet ;)
Denn wenn ich nicht ganz daneben liege will der ATmega16 bei 3,3V mximal 
8MHz und V-USB fängt erst ab 12MHz an.

Läuft die Schaltung?
(Ausgeben von Blinkzeichen,...)

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm...der atmega16 läuft wunderbar und emuliert mir eine usb tastatur.
Hier aus dem Datenblat:
"• Operating Voltages
– 2.7 - 5.5V for ATmega16L
– 4.5 - 5.5V for ATmega16
• Speed Grades
– 0 - 8 MHz for ATmega16L
– 0 - 16 MHz for ATmega16
"

Hm, da muss ich erst ein wenig mal coden...

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey,

so ich bin jetzt soweit rausgefunden zu haben, dass mein Quarz mir zwar 
12MHz liefert aber mit einer Amplitude von 100mV. Ich habe ein schon 
laufendes System mit einem Atmega16; dessen Quarz schwingt bei 12MHz mit 
fast einem Volt Spitze-Spitze.Was mach ich falsch?
Es ist die übliche Quarzschaltung mit 22pF gegen GND. Die Fuses bei dem 
mega48 sind verwirrend finde ich. Allerdings habe ich auf "ext crytsal 
8- MHz" gestellt. Momentan habe ich mich sogar komplett ausgesperrt, 
glaube ich. Dämliche gefuse...

Grüße

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Leute,

Ok neue Platine aufgesetzt, neuen Quarz drauf und sauberer aufgebaut. 
Zumindest kann ich nun den einwandfrei kompilierten Quellcode auf den 
Mega48 flashen. Der fängt nun auch auf genau 3V an mit dem USB Host zu 
sprechen, allerdings nach ein wenig Takten hin und her wird er nur als 
"unbekanntes Gerät weiterhin" erkannt. Mein Vergleichssystem mit einem 
Mega16 arbeitet auch auf 3V auf D- und funktioniert einwandfrei. Was 
kann nun noch nicht hinhauen?

Habe auch ein Testprogramm geschrieben, das mir einen Pin zyklisch 
toggelt. Funktioniert.

Ich werde mal probieren das nun noch im USB Code zu implementieren und 
die Zeit messen....Ich bin mir unsicher, wo genau im Code das Sinn 
macht; hier?:

int main(void){
  ...
  if(TIFR0 & (1<<TOV0)){   /* 22 ms timer */
            TIFR0 = 1<<TOV0;

            PORTB ^= (1 << PB5);
  }
  return 0;
}

Danke euch für eure Hilfe.
Stefan

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.