www.mikrocontroller.net

Forum: Compiler & IDEs Serielle Verbindung ?


Autor: Ruppyo Jantzen (rub)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

(Anfängerfrage)

Ich habe hier das USB-Modul UM 100 von ELV gekauft (nicht von Conrad 
:-))

http://www2.produktinfo.conrad.com/datenblaetter/1...

So ich wollte mal ein paar Daten zum PC übertragen und habe dazu dieses 
Progrämmchen geschrieben (allerdings in Bascom-AVR).


$regfile = "m16def.dat"
$crystal = 1000000
$baud = 300

Do
   Print "Hello World"
   Waitms 300
Loop

End


Das Programm läuft auf meinem Testboard, und am USB- Modul flackert ein 
paar mal die rote LED, dann kommt die Pause und anschließend geht es von 
vorne los.

TDX ist an RDX und RDX an TDX angeschlossen.
GND und VCC beziehe ich auch von dem USB-Modul.
Der Jumper für die Stromquelle steht auf usb.

Hier die Einstellungen des USB / Com-Ports

Bits Pro Sekunde : 300
Datenbits : 8
Parität : Keine
Stopbits : 1
Flussteuerung : Keine

-> Erweitert
FIFO-Puffer verwenden : Ja
FIFO Empfangspuffer : 14
FIFO Übertragungspuffer : 16
COM-Anschlussnummer : COM5

------------------------

Die Einstellungen in Basecom

-> Options -> Communication

ComPort : Com5
Baudrate : 300
Parity : None
Databits : 8
Stopbits : 1
Handshake : None
Emulation : None
RTS : OFF

Konflikt mit dem Com-Port besteht nicht und ich habe es auch bereits 
über einen Anderen versucht, bringt aber nichts.
Beim Öffnen des Terminalfensters wird der Port wohl erkannt, bzw. wenn 
ich den USB-Stecker abgezogen habe kommt beim Öffnen die Meldung, das 
der Port nicht verfügbar ist.

Das Modul empfängt Daten, wenn ich etwas übers Terminalfenster sende 
(grüne LED blinkt)!
Und es erhält Daten wenn der Mikrocontroller (Mega16) Daten per Print 
Sendet (rote LED blinkt).
Jedoch bekommt der Mikrokontroller nichts vom PC (über input 
"Irgendwas")  und der PC meist auch nichts vom Controller mit. Wenn 
jedoch Etwas im PC ankommt, dann sind das irgendwelche seltsamen 
Zeichen.

Ich nehme stark an, dass es an der eingestellten Taktrate des 
Controllers liegt und die Baud-Werte dann nicht passen.

Was muss ich denn einstellen, wenn ich den internen Quarz des Mega16s 
benutze (doch 1MHz, oder)?

Und ist dieser vielleicht zu langsam, so dass ich besser einen Externen 
drannhänge ?

(An den Fusebits muss ich, denke ich mal, nichts ändern, sonst würde das 
USB-Modul ja auch nichts empfangen)

Wiso läuft das denn nicht ?


Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine Diagnose scheint richtig zu sein.
Das Flackern der LED deutet durchaus darauf hin,
dass sich da Dtaen rüberquälen.

> Was muss ich denn einstellen, wenn ich den internen Quarz des Mega16s
> benutze (doch 1MHz, oder)?
> Und ist dieser vielleicht zu langsam, so dass ich besser einen Externen
> drannhänge ?

Ja und ja.
Mit dem internen Oszillator ist das eher Glückssache ob der
genau genug auf den 1Mhz schwingt. Um eine Übertragung
auf der UART hinzukriegen, sollte der Takt aber schon
einigermassen genau und vor allem stabil sein. Auch ist
1 Mhz keine gute Frequenz um daraus die Taktraten
für eine UART abzunehmen:
http://www.mikrocontroller.net/articles/Baudratenquarz


Autor: rub (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort und den Link !!!

Ach, da habe ich gleich noch ne Frage dazu.

Bei den Fusebits, wieso gibt es da 4 Einstellungen für den Quarz ?

Also interner und die beiden möglichen externen sind ja ok, aber für was 
4 ?

Und wie muss ich cksel0, cksel1, cksel2 und cksel3 für einen Externen am 
ersten Anschluss einstellen ?

Hier habe ich darüber nicht so viel gefunden.
http://www.mikrocontroller.net/articles/AVR_Fuses

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Bei den Fusebits, wieso gibt es da 4 Einstellungen für den Quarz ?

Je nach dem Frequenzbereich, in dem der Quarz schwingen soll,
wird der dazu nötige Verstärker im µC anders beschaltet.

> Und wie muss ich cksel0, cksel1, cksel2 und cksel3 für einen Externen am
> ersten Anschluss einstellen ?

Im BASCOM Programmer gibt es doch einen schönen Dialog
zum Einstellen der Fuse-Bits.

Autor: rub (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, Danke, werd ich mir ansehen!

Autor: Ruppyo Jantzen (rub)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Also mittlerweile habe ich es mit einem Bautratenquarz und auch über 
einen weiteren USB-Seriell-Adapter probiert. Bei diesem

http://www.computeruniverse.net/products/90094486.asp

läuft das Ganze natürlich noch über den MAX232 (n) der auf meinem Board 
sitzt.

Über diesen Adapter erhalte ich Daten, aber die Zeichen stimmen immer 
noch nicht. Habe es mittlerweile mit allen möglichen Baudraten 
ausprobiert, Bekomme aber hin und wieder auch Probleme mit dem Comport 
und starte dann mein Notebook eben neu.

Ich nehme an, dass es irgendwie am USB-Treiber liegt, kann es mir aber 
auch nicht wirklich erklären.

Kennt jemand von euch diese Probleme und hatt mir vielleicht noch einen 
Tip ?

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.