USB mit obdev auf Tiny45 ohne Quartz

OP #679795
Lesenswert?
• ▲
▼
Hallo,

habe dieses Projekt mal nachgebaut:
http://www.obdev.at/products/avrusb/easylogger-de.html

Mein Computer sagt aber immmer wenn ich das Ding per USB Verbinde: 
"USB-Gerät wurde nicht erkannt".

Hat das schon mal jemand nachgebaut? Gab es dabei Probleme? Mir ist 
unklar wie ich die Fuse setzen muß. Muß der EEprom leer sein?

Gruß Rene
Gast #679814
Lesenswert?
• ▲
▼
Ich denke, Du musst den High Frequency PLL Clock - PLLCLK benutzen, also 
CKSEL3:0 auf 0001 setzen. Weiterhin muss dann noch die Frequenz auf 
16.5MHz kalibriert werden.

Insofern kann ich mir nicht vorstellen, dass bei diesem Projekt ein 
zuverlässiger Betrieb möglich ist. Ein Anforderung von 1% kann unmöglich 
erfüllt werden. Schon 5% für eine normale UART machen ziemliche 
Probleme.

Ich kann die Stelle in der Spec von Atmel auch nicht finden, die 1% 
Genauigkeit angibt. Das gilt wohl nur für konstante Raumtemperatur und 
Versorgungsspannung. Dafür ist USB aber nicht gerade bekannt.

Betrachte es einfach als Studie, die jemand einmal zum Laufen gebracht 
hat.

P.S. Es gibt keine leeren EEPROMs.
OP #679846
Lesenswert?
• ▲
▼
Hallo,

da haben wir schon den ersten Fehler, PLL habe ich nicht benutzt. Ist 
jetzt geändert aber immer noch das selbe Ergebnis. Ein leerer EEprom 
heisst für mich alle Bytes sind 0xFF. Ich Spiele hier auf folgende 
Stelle im Quellcode an:
1
    uchar calibrationValue = eeprom_read_byte(0);
2
    if(calibrationValue != 0xff){
3
        OSCCAL = calibrationValue;  /* a calibration value is supplied */
4
    }else{
5
        /* we have no calibration value, assume 8 MHz calibration and adjust from there */
6
        if(OSCCAL < 125){
7
            OSCCAL += 3;    /* should be 3.5 */
8
        }else if(OSCCAL >= 128){
9
            OSCCAL += 7;    /* should be 7 */
10
        }else{  /* must be between 125 and 128 */
11
            OSCCAL = 127;   /* maximum possible avoiding discontinuity */
12
        }
13
    }

Als Studie will ich das eigentlich nicht abhaken, zumal die Xtal 
Anschlüsse für die reine Anmeldung (Enumeration] am PC keine Rolle 
spielen, sodaß man da doch einen Quartz anschliessen könnte. Dann sollte 
1% überhaupt kein Problem mehr sein.

Gruß Rene
Gast #680003
Lesenswert?
• ▲
▼
Hallo Rene,

war bei mir am Anfang auch so...
Ich hab dann ein Oszi angeschlossen, den CLKOUT aktiviert und die 
Frequenz gemessen. Dann mit dem ersten Byte im EEProm die Frequenz 
eingestellt. Seitdem läufts.
Hinweis: Du kannst das OSCCAL-Byte auslesen und von diesem Wert aus die 
Kalibrierung starten. Bei mir war das OSCAL-Byte 0x95 und der Wert den 
ich ins EEprom geschrieben habe war 0x96.


Geraldo

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