Forum: Compiler & IDEs Serielle Verbindung ?


von Ruppyo J. (rub)


Lesenswert?

Hallo,

(Anfängerfrage)

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

http://www2.produktinfo.conrad.com/datenblaetter/175000-199999/191148-an-01-de-USB_Modul_UM_100_Bausatz.pdf

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 ?


von Karl heinz B. (kbucheg)


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


von rub (Gast)


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

von Karl heinz B. (kbucheg)


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.

von rub (Gast)


Lesenswert?

Ok, Danke, werd ich mir ansehen!

von Ruppyo J. (rub)


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 ?

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
Noch kein Account? Hier anmelden.