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
Dass Nennen des Problems und der eigentlichen Frage könnte unter Umständen hilfreich sein.
Ich kriegs nich hin...das Gerät meldet sich nicht. Ich bekomme immer nur "Unbekanntes USB Gerät"...
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?
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
Nachtrag: keine Zenerdioden,sondern eine LED, die die Versorgungsspannung auf 3,3V herabsetzt. Funktioniert bei dem HIDKeys auf einem ATMega16 gut. Grüße
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,...)
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...
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.