www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kommunikationsprobleme USB-IO Chip45 Crumb168


Autor: Sebastian Wo (601)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich bin dabei das USB IO Projekt von Stefan Frings mit dem Chip45 
Crumb168 V2.0 AVR ATmega168 USB Modul umzusetzen.

Das Modul Crumb168 V2.0:
[[http://www.chip45.com/AVR-ATmega-Mikrocontroller-M...]]

Das Projekt:
[[http://meinemullemaus.de/software/crumb/index.html]]


Leider hänge ich seit Tagen fest und komme nicht weiter.
Ich benutze AVR Studio 4.17

Auf dem Modul habe ich einen 16MHz Quarz und die Fuse Bits so 
eingestellt das nicht der interne Quarz benutzt wird.
LFUSE = 0xFF
oder Voreinstellung LFUSE 0xDF (Betrifft Brown-out detection)
HFUSE = 0xDD


Folgende Einstellungen habe ich Makefile geändert:
Die Fuse Einstellungen habe ich auskommentiert, da ich diese über den 
Programmer von AVR Studio setze

Makefile:
# Programmer hardware settings for avrdude
AVRDUDE_HW = -c AVRISP -P //./COM6 -b 115200

# Target device for avr-gcc and avrdude, select one
MCU = atmega168

# Clock frequency in Hz
F_CPU = 16000000

# Fuse settings, same for ATmega8, 168 and 644
#LFUSE = 0xFF
#HFUSE = 0xDD



das sind die Parameter aus der serial.h
#ifndef serialconsole_h
#define serialconsole_h

// Set the correct XTAL frequency in Makefile!

// Bitrate of the serial port
//#define BAUD 115200
#define BAUD 115200

// Enable serial terminal compatibility mode, which means
// Input lines are terminated by a single \n or \r
// Output lines are terminated by \r\n
// In normal mode, lines are always terminated by \n.
#define TERMINAL_MODE 1

// Enable echo on serial interface
#define SERIAL_ECHO 1

// Initialize the serial port and bind it to stdin and stdout to it.
void initserial(void);

#endif //serialconsole_h


Die serialconcole.c und die usb-io.c sind unverändert.

Bei der Verbindung mit dem Crumb168 über Com7 mit dem Windows 
Hyperterminal habe ich folgende Einstellungen benutzt:
Baud: 115200
Databits: 8
Parity: None
Stop Bits: 1
Flow control: none


Nun zum Problem.

Mit dem internen Taktgeber des Mikrocontrollers, gab es bei der 
Verbindung mit dem Mikrocontroller über das Windows Hyperterminal 
sporadisch Fehler.
Manchmal wurden korrekt eingegebene Befehle nicht erkannt oder bereits 
während der Eingabe ausgeführt. Auch wurden während der Eingabe 
sporadisch Sonderzeichen anstelle des gewünschten Zeichens im Terminal 
angezeigt.

Ich hatte nach meiner Recherche den Verdacht, dass dies an der 
Ungenauigkeit des internen Taktgebers liegt. Mit einem externen 16MHz 
Quarz wurde es auch nicht besser. Eher schlimmer. Nun gab es bei 
Tastendruck und stehender Verbindung über das Hyperterminal mit dem 
Kontroller eine Vielzahl an Sonderzeichen. Es scheint also Abhängig von 
der Frequenz und/oder Baudrate zu sein.

Ich bin für jeden Tipp dankbar und hoffe ihr könnt mir helfen.
Danke, Sebastian

Autor: Reiner Geiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal hier nach: 
http://www.gjlay.de/helferlein/avr-uart-rechner.html

Der 16 MHz Osc. ist nicht optimal für die gewählte Baudrate.

Mit 14.7456 MHz wird es klappen, oder eine andere Baudrate wählen.

Grüße

Autor: Sebastian Wo (601)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für Deine Antwort, einen 14,7456 MHz Quarz hab ich mir vor 
ein paar Tagen besorgt, funktioniert aber immer noch nicht.

Nun musste ich auch feststellen, das ich zwischen VCC und Masse nur 2,3V 
messe. Irgendwas scheint da mit der Hardware nicht zu stimmen.

Kann es sein, das ich den Controller flashen kann, er aber danach nciht 
arbeitet? Oder muss entweder beides oder gar nichts funktionieren?

Gruß
Sebastian

Autor: Sebastian Wo (601)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe die Lösung für das Problem gefunden.

Beim Crumb168-USB muss eine Brücke für JP2 auf der Platine gezogen 
werden, wenn die Stromversorgung durch die höhere Taktung des 
Controllers mit dem externen Quarz nicht mehr ausreicht.

Bei dem 14,7456 Mhz Quarz reicht der Strom mit dem der AVR parasitär 
versorgt wird nicht mehr aus, beim internen Quarz oder einem externen 
mit geringerer Taktung funktioniert er einwandfrei, nur stimmt dann ja 
das Verhältnis für die Baudrate nicht.

War im Datenblatt des Crumb 168 meines erachtens nur unzureichend bis 
gar nicht beschrieben.

Nochmal Danke an Reiner für die Antwort.

Gruß Sebastian

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.