www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB mit obdev auf Tiny45 ohne Quartz


Autor: Rene Zimmermann (renezimmermann)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Durchblicker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rene Zimmermann (renezimmermann)
Datum:

Bewertung
0 lesenswert
nicht 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:
    uchar calibrationValue = eeprom_read_byte(0);
    if(calibrationValue != 0xff){
        OSCCAL = calibrationValue;  /* a calibration value is supplied */
    }else{
        /* we have no calibration value, assume 8 MHz calibration and adjust from there */
        if(OSCCAL < 125){
            OSCCAL += 3;    /* should be 3.5 */
        }else if(OSCCAL >= 128){
            OSCCAL += 7;    /* should be 7 */
        }else{  /* must be between 125 and 128 */
            OSCCAL = 127;   /* maximum possible avoiding discontinuity */
        }
    }

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

Autor: Durchblicker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtig. Versuche es erst mit einem Quarz und verschlechtere Dich dann. 
Somit hast Du schon mal eine funktionierende Referenz.

Autor: Geraldo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.