PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATmega8 MAX232



extremesports
07.03.2010, 00:48
Hallo,

ich habe ein Problem bei meinen Versuchen mit UART. Ich habe in meiner Schaltung eine LED, die den Datenfluss über die Schnittstelle anzeigt. So lange ich das D-Sub9 Kabel nicht an meinem Laptop am Com Port 1 angeschlossen hab funktioniert alles. Sobald ich aber das Kabel am Laptop anschließe blinkt die LED, welche die den Datenfluss anzeigt nicht mehr.

Hat jemand nen Tip was ich falsch gemacht haben könnte.

Ich kann auch mal nen Schaltplan und den Programmcode hochladen wenn das hilft.

Gute Nacht O:)

Jaecko
07.03.2010, 11:40
Nur her mit dem Schaltplan. Hier wär mal wichtig, wie die LEDs angeschlossen sind.

oberallgeier
07.03.2010, 12:53
Ohne Code sind alle Ratschläge sinnlos WENN es ein (durchaus möglicher) Softwarefehler ist. Und Hochladen kostet kaum mehr Mühe als wenn wir das Posting lesen. BTW: beim Hochladen von Code bitte den [ Code ]-Tag benutzen

extremesports
07.03.2010, 16:34
Schaltplan und Code kommen bis spätestens morgen abend. Hab grad viel zu tun und weiß nicht ob ich heut noch dazu komme. Schaltplan muss ich nämlich erst noch schnell zeichnen. :wink:

extremesports
07.03.2010, 17:35
So, hab doch grad noch Zeit gefunden.
Beim Schaltplan hab ich einen Fehler: VCC und GND vom MAX232 fehlen irgendwie, sind aber in Wirklichkeit angeschlossen und ich hab auch ein Kondensator dazwischen gebaut.

Schaltplan:
Link http://www.abload.de/image.php?img=atmega8_max232nkutg.jpg

Code:

$regfile = "M8def.dat" '.dat-file ATmega8'
$crystal = 1000000 'Taktfrequenz 1MHz'
$hwstack = 100 'Größe Hardwarestack'
$swstack = 60 'Größe Softwarestack'
$framesize = 100 'Größe Frame'

$baud = 4800

Do
Print "Hallo"
Waitms 200
Loop

End 'end program

Ich hab es schon mit Hyperterminal und HTerm versucht. Es hat beide Male nicht funktioniert.
Bin über jeden Tipp dankbar.

Jaecko
07.03.2010, 17:49
Mit "Invoke" kriegst die fehlenden Pins für VCC/GND her.

Die LEDs würd ich selber eher nicht direkt an die Datenleitung hängen sondern über den Umweg eines Transistors. Klemm die LEDs mal ab, ob es dann geht. Wenn ja: Problem gefunden.
Das Programm selbst schaut OK aus.

Welche Werte haben denn die Cs beim MAX232?

extremesports
07.03.2010, 18:09
Habs schon ohne die LEDs versucht. Die kamen eigentlich erst in die Schaltung um zu sehen, ob überhaupt was gesendet wird. Ich werd trotzdem mal Transistoren dazwischen bauen.

Die Werte der Cs sind folgende:
an V+ : 10µF 25V
an V- : 47µF 25V
zwischen C1+ und C1- : 1µF 50V
zwischen C2+ und C2- : 1µF 50V

Kann da das Problem liegen?
Ich meine mich erinnern zu können, dass ich mal irgendwo gelesen hab, dass man alles zwischen 1µF und 47µF mit einer Spannungsfestigkeit von mindestens 16V verwenden kann.
Die verwendeten ELKOs hatte ich noch vorrätig, deshalb hab ich die verwendet.
Kann ich nicht auch überall Kondensatoren mit 100nF verbauen, wie zwischen VCC und GND?

"edit": Wenn ich Hyperterminal verwende leuchtet die LED an der TXD Leitung sobald ich das Kabel an COM 1 anschließe. Irgendwie komisch, bei HTerm passiert das nicht.

oberallgeier
07.03.2010, 18:17
Erstens: ich schliesse meine RS 232 (von Platinen) nie an einer SUB-D-9 an - immer an einer dreipoligen Stiftleiste mit GND in der Mitte. Einmal brauche ich zur Datenübertragung (senden und empfangen) nicht mehr - und dann - irre ich mich immer wieder. Und mit dieser Steck erbelegung ist die Sache durch simples Steckerwenden geritzt.

Zweitens: Ich fürchte, dass Deine Anschlüsse an der SUB-D-9 (http://de.wikipedia.org/wiki/RS232#Verkabelung_und_Stecker) nicht stimmen, bin mir aber nicht sicher. Vielleicht kannst Du das mal mit fliegenden Drähten ummodeln - und dann testen.

Drittens: Code ist Ba scom - das kann ich nicht.

Nicht zum Lesen gedacht: Forumregel 11 lesen (https://www.roboternetz.de/phpBB2/viewtopic.php?t=1340).

extremesports
07.03.2010, 18:47
Entschuldige den Verstoß gegen Forenregel 11. Hab ich umgehend korrigiert und durch nen Link ersetzt. Kommt nicht wieder vor...

Ich werd das mal ohne dem D-Sub 9 Kabel versuchen und direkt mit dem Stecker am Laptop verbinden. Mal sehen ob es dann geht

Besserwessi
07.03.2010, 18:55
Wenn die Widerstände bei den LEDs groß genug sind, geht es auch direkt am PORT. Bei so etwa 1-3 K stören die LEDs nicht mehr, und man kann sie trotzdem noch erkennen, wenn es nicht gerade in der Sonne ist.

Die Pins beim Sub D sind schon die richtigen. Es könnte aber sein, das Pin2 und 3 vertauscht sind. Das Hängt auch davon ab ob man Male oder Female Buchsen hat, bzw. Verlängerungskabel vs. Nullmodem.

oberallgeier
07.03.2010, 19:10
Entschuldige den Verstoß gegen Forenregel 11 ...Halb so wild - daher die kleine Schrift *ggg* - der Browser macht sich mit diesen Bildern leider ziemlich breit. Danke für Deine schnelle Reaktion.


... Die Werte der Cs sind folgende ... Kann da das Problem liegen ...Ich hab bei einem MAX232N schon KerKos 100 nF gehabt. Das funktionierte nicht gaaanz richtig - aber so halbwegs.

Meine Platinen sind meist etwas klein; da ist immer wenig Platz. Seit neuestem verwende ich recht oft als "232"-Adapter dieses Ding hier (http://www.gms2000.de/minimikro/LP_usbprog_pr.htm) - das "lag hier rum" und stammt aus (m)einem U SB-Experimentierkasten. Bei meinem 20 MHz-mega328P laufen störungsfrei 256 kBd - das freut den Tempofreak. Als Terminal habe ich dazu das br@y v1.9b. Vorteil des Adapters: geht über U SB und kann TTL - genau richtig für At mel-Anwendungen.

PS und OT: welche Extremsportarten?

extremesports
07.03.2010, 22:39
Komisch. Ich hab grad mal einfach alle Kontakte durchgetestet. Wenn ich an dem Kabel, das ich hier verwendet habe den Pin 4 Für die TXD Leitung verwende funktioniert alles und ich kann vom ATmega8 Daten an den PC senden. Hat mit Hyperterminal und mit HTerm funktioniert.
Wahrscheinlich hab ich einfach ein Kabel mit total außergewöhnlicher Belegung erwischt. Is auch schon ziemlich alt das Kabel.

Vielen Dank für eure schnelle Hilfe und die vielen Tips! :wink:

@oberallgeier: alles was ich mitnehmen kann ^^
im sommer Mountainbike Downhill, wenns mal nicht so teuer is Bungeejumping
Bergsport im Sommer und im Winter.
Kitesurfen hab ich aus Zeitgründen aufgegeben.
Und noch so einiges, was aber aus finanziellen und zeitlichen Gründen nur sporadisch stattfindet...

oberallgeier
07.03.2010, 23:12
... funktioniert alles und ich kann vom ATmega8 Daten an den PC senden ...Na dann BINGO - nicht Bungee ; - ) - freut mich, dass es läuft. Aber es sollte ja auch die andere Richtung laufen: PC an Controller!

... wenns mal nicht so teuer is Bungeejumping ... Bergsport ... noch so einiges ... sporadisch ...Gut gut, schöne Sachen machst Du. Ja, das Geld . . . Bj hab ich nie gemacht, mit dem HG oder GS von der Frühjahrsthermik richtig rauf beamen lassen - oder mit 10 m/s runterwaschen - ist mindestens ähnlich adrenalinfördernd wie Bj. Na ja, HG WAR vor 30 Jahren extrem. Heute ist das, ebenso wie GS nicht soo wild. Klettern, aber nix über 7 - - das Alter : - ( . Der Rest: auch Segeln, ab 44 Füssen und bis 8 Bft, ist nicht wirklich extrem. Kitesurfen würde ich gerne, aber mann kann nicht alles haben. Ich wünsch Dir alles Gute.

extremesports
09.03.2010, 19:42
Jetzt hab ich da doch noch ne Frage.
Ich hab es hinbekommen, dass alles in beiden Richtungen funktioniert.
Wenn ich jetzt aber mein ISP Kabel trenne (ich verwende einen mysmart usb mkII also programieradapter) dann funktioniert es in keiner richtung mehr. wenn ich mehr als nur ein zeichen auf ein mal sende, dann kommt total wirres Zeug an.
Woran kann das liegen?

Hier mal noch der momentan verwendete Code:

$regfile = "M8def.dat" '.dat-file ATmega8'
$crystal = 1000000 'Taktfrequenz 1MHz'
$hwstack = 100 'Größe Hardwarestack'
$swstack = 100 'Größe Softwarestack'
$framesize = 100 'Größe Frame'

$baud = 4800


Dim I As Byte

Do

If Usr.rxc = 1 Then 'Wenn Byte empfangen...
I = Udr 'Byte aus UART auslesen
Select Case I
Case "H"
Print "Hallo AVR"
Case "h"
Print "hallo avr"
Case Else
Print "Unbekannter Befehl"
End Select
End If

Loop

End

Jaecko
09.03.2010, 19:52
GND vom PC und GND vom AVR sind schon noch miteinander verbunden?
Also auch ohne das ISP-Kabel? (Pin5 der RS232-Buchse)

extremesports
09.03.2010, 20:04
@Jaecko: danke für die super-schnelle Antwort.

Ich hatte nach meinen ersten Tests nur die Belegung von TXD geändert. Die von RXD hat gestimmt. Und wie konnte es anderst sein? - Die Belegung von GND war genau spiegelverkehrt angeschlossen.

Jetzt gehts auch wenn ich das ISP Kabel unterbrichen hab.

Danke!