PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : halbe Schnittstelle



fedelio
15.10.2006, 10:38
ich hab das problem schon mal angesprochen, nur kam da leider keine lösung raus ;(

also ich versuch noch mal mein problem genau darzulegen ...

ich hab einen schaltkreis, der dem grundschaltkreis eigemldich fast ähnlich ist, nur noch weiter ausgänge dabei
das problem ist, die programmirschnittstelle geht nicht ... aber eben nur zu hälfte nicht ;(
das bascom zeigt an wie viel daten drauf sind aber nicht was es für ein chip ist ;( und das bascom kann den chip resten aber keine daten rüberspielen

kennt jemand das problem, oder hattes es schon mal ? wenn ja, währe es cool wenn er mal seine lösung angeben könnte.

ich will nämlich nicht alles wieder ablöten und neu machen ;(

danke im vorraus, tobias

pongi
15.10.2006, 11:20
ich will nämlich nicht alles wieder ablöten und neu machen ;(

Wenn du mit nachmessen (also was mit was verbunden ist, bzw nicht verbunden ist) nicht selber draufkommst, wirst du da nicht ums neulöten herumkommen. Dein Problem liegt aber wahrscheinlich bei den Leitungen die die seriele Kommunikation machen (bei einem AVR MISO und MOSI), also die doppelt testen.

fedelio
15.10.2006, 17:02
... hab das problem gelöst ... aber es tat sich nen neues auf ;(

bei der uart schnittstelle ...

könnte mir mal bitte jemand sagen wie viel Volt am stecker anliegen ?
bei mir sind es mämlich einmal masse und einmal 3 V ;(
glaubnicht das die werte stimmen ...

danke im vorraus

tobias

Jon
15.10.2006, 18:38
Die 3V stimmen nicht. Egal an welchem Stecker.
Meinst du den am AVR oder am PC?

jon

Pascal
15.10.2006, 19:35
Die 3V stimmen nicht. Egal an welchem Stecker.

Die 3V können schon richtig sein. Für RS232(also der Stecker der seriellen Schnittstelle direkt am PC) sind die Pegel ja anders als bei UART(das, was die AVRs verwenden). RS232 verwendet einmal für logisch 1 Pegel zwischen -3 und -15V, für logisch 0 Pegel zwischen +3 und +15V.

3V können also sehr wohl vorkommen.

fedelio
16.10.2006, 09:23
also ich meine beim avr ... alles können die 3 v richtig sein, das problem ist aber eben das mein hyperterminal nichst empfängt ;(

also ne verbing baut der auf, aber dann kommt nichst ? ;(

muss ich bei dem avr wenn ich mit bascom arbeite, noch die bautrate und so was einstellen oder sollte es einfach so gehen ?

ich hab nämlich einfach ne endlosschleife drin, die nur ein print austgibt.
aber wie gesagt kommt nichts raus ;( ...
muss ich den hardware uart noch aktiviren, oder so ?

danke im vorraus

tobias

Pascal
16.10.2006, 14:04
also ich meine beim avr ... alles können die 3 v richtig sein, das problem ist aber eben das mein hyperterminal nichst empfängt ;(

Ich versteh noch nicht so genau, was genau du vor dir hast. Kannst du also noch mal beschreiben(am besten mit einem Schaltplan), wie du den AVR beschaltet hast?

Hast du einen MAX232 zwischen dem AVR und dem PC? Ich kann darüber leider keine Informationen finden, was das Helfen nicht gerade erleichtert.

fedelio
16.10.2006, 15:13
ok, ich weiß schon, meißt beschreib ich mein problem schnlecht ;(

also ich möchte eine verbindung zw. computer und avr über uart herstellen. Da ich später das über funk realisren möchte, zur zeit verwende ich haber noch ein 0-Modem-Kabel.

Der MAX232 ist am avr angeschlossen, eigendlich wie diese schaltung:
https://www.roboternetz.de/wissen/images/6/65/Avrtutorial_grundschaltung_max232.gif

nun das problem ist, das ich am computer nichts empfange, obwohl ja 3,6 v am der buches des avr anliegen.

danke im vorraus

tobias

p.s. das 0-model-kabel hab ich nur die rx, tx und masse-kabel genommen und gedreht am avr angeschlossen

Pascal
16.10.2006, 15:40
Ich geh jetzt mal davon aus, dass du alles richtig verbunden hast( oder davon ausgehst).

Hast du die Schaltung selbst aufgebaut? Falls ja, überprüf nochmal alle Verbindungen, ob sie richtig gelötet sind und auch logisch so gehören. Evtl. hat sich da ein Fehler eingeschlichen.



nun das problem ist, das ich am computer nichts empfange, obwohl ja 3,6 v am der buches des avr anliegen.

Direkt am AVR sollten keine 3,6V anliegen, da dieser mit 5V-Pegeln arbeitet(sofern du keine lowvoltage-Variante verwendest). Das deutet also schonmal auf irgendeinen Fehler hin.



Der MAX232 ist am avr angeschlossen, eigendlich wie diese schaltung:

Du sagst "eigendlich". Verwendest du nun diese Schaltung, oder nicht? Hast du sie in Teilen verändert aufgebaut?

fedelio
16.10.2006, 16:04
also die 3,6 V liegen an der buchse für das rs232 kabel an und zw. der buchs und dem avr ist ja noch der max232 der dieses spannung so zu sagen wandelt ^^ am avr tx bzw. rx liegen 5 v an

ich habe bei der schaltung eigendlich gesagt, weil ich sie noch um einen pwm ausgang und einen zweiten schalter erweitert habe ...

tobias

p.s oder, kannst du mir mal über icq helfen Pascal, da kann ich dir mein problem genau erklähren ...

Pascal
16.10.2006, 16:41
am avr tx bzw. rx liegen 5 v an

sags doch gleich... ;-)



p.s oder, kannst du mir mal über icq helfen Pascal, da kann ich dir mein problem genau erklähren ...

Jetzt is schlecht, aber ich schreib dir eine pm mit meiner icq#. Heut abend hab ich dann Zeit.

fedelio
17.10.2006, 16:14
allso, ich hab mein may232n noch mal neu gemacht, doch es geht immer noch nicht ...

beim einstecken des kabel sendet der manchmal irgendwelche sonderzeichen, sonnst gibt der nichts aus ,(

kennt jemand das problem, oder hatte ähnliche probleme, währe schön wenn mir jemand helfen könnte

mfg XeNoN

Hubert.G
17.10.2006, 16:25
Wenn du den AVR aus der Schaltung nehmen kannst oder RX/TX zwischen AVR und MAX232 auftrennen kannst, dann mach eine Brücke zum MAX232 hin. Mit einem Terminal-Programm am PC musst du dann jedes gesendete Zeichen zurückbekommen. Wenn das klappt hast du einen Wurm im AVR, wenn nicht dann in Richtung MAX232 und PC.

Hubert.G
17.10.2006, 16:38
Ich habe jetzt noch weiter oben gelesen, die Baudrate des AVR und des Terminalprogramm am PC müssen schon übereinstimmen, sonst gibt dir der PC nur Schrott aus. Du musst also schon wissen was du in deinem Programm eingestellt hast.

Jon
17.10.2006, 17:51
Bei mir gibt es noch das Problem, dass es garnicht bei einer Baudrate von 9600 funzt.
Bei mir geht es nur mit 1200.
Kannst du auch mal probieren.

jon

Hubert.G
17.10.2006, 18:21
Jon
Mit welchem Controller und was für einer Taktfrequenz(Quarz) arbeitest du?

Jon
17.10.2006, 18:56
Ich habe einen ATMEGA32 mit 16Mhz.

jon

Hubert.G
17.10.2006, 19:36
Bei 16MHz ist der Fehler nur 0,2%, das sollte einwandfrei funktionieren. Bei der Auslieferung sind die AVR allerdings auf 1MHz interner Takt eingestellt und das funktioniert dann sicher nicht mehr. Ich hoffe du hast die Fuses richtig eingestellt.

Hubert

Jon
17.10.2006, 19:46
Bei 16MHz ist der Fehler nur 0,2%, das sollte einwandfrei funktionieren.
Hat mich auch gewunder. Aber solange es einigermaßen funtzt stört es mich nicht. Ich verwende RS232 auch praktisch nie.

Bei der Auslieferung sind die AVR allerdings auf 1MHz interner Takt eingestellt und das funktioniert dann sicher nicht mehr.
Wie meinst du das?

Ich hoffe du hast die Fuses richtig eingestellt.
Die habe ich so gesetzt, wie es im Wissensbereich beschrieben ist.

jon

Hubert.G
17.10.2006, 19:55
Du wärst nicht der erste dessen AVR mit dem internen Oszillator läuft ohne das er es merkt. Ich möchte dir aber nichts unterstellen, ist nur ein Erfahrungswert.

Jon
17.10.2006, 20:08
Bascom gibt an, wenn ich die Fusebits auslese, dass ich den Externen Quarz verwende.
Ist mir jetzt aber erstmal egal.
achso.. Ich hatte das Blink_LED Programm erst mit dem internen Takt und dann mit dem externen Quarz getestet. Die LED blinkte mit dem externen Quarz deulich schneller, beim selben Programm. (Sollte, soweit ich weiß, richtig sein.)

jon

fedelio
18.10.2006, 09:50
;), wenn ich nochmal auf mein problem zurückkommen könnte,)

also wenn ne brücke mach von tx und rx geht es ... man dann geht es wirklich ... doch leider kann eben der microcontroller noch nichts senden?

deshalb: muss ich irgendweclhe Fusebits anmachen um den uart zu benutzen ? und stimmt der quellcode so, oder muss ich noch was einstellen, wa ich vergesse hab



$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 8000000
$baud = 9600

Config Portc.0 = Output

Do
Portc.0 = 0
Print "**** RN-CONTROL sagt Hello World *****"
Wait 5
Portc.0 = 1
Wait 1
Loop


p.s. http://www.iguanalabs.com/max232.jpg ist das die richtieg pinbelgung von max232, denn ich hab nämlich von oben links nach unten links bis 8 gezählt und dann wieder von oben rechts bis unten rechts von 9 bis 16 ...
bitte sagt mir das ich richtig gezählt hab ...

Laeubi
18.10.2006, 10:21
öm... also gezählt wird wie auf dem Bild welches den Chip von oben zeigt, also wenn du den Chip wie auf dem Bild drehst, dann sind die Pins halt so wie dort bezeichnet.

Hubert.G
18.10.2006, 11:11
Wenn das ein neuer Kontroller ist gehören noch die Fusebits auf externen Quarz eingestellt sonst läuft er mit dem internen 1MHz Oszillator und da geht mit dem UART nichts, aber Vorsicht, genau anschauen was du machst, sonst sperrst du dich vom Programmieren aus. Da ich nur mit GCC und PonyProg arbeite kann ich dir bei BASCOM nicht helfen.
Die Zählweise beim MAX232 ist wie auf dem Bild die Pin angeschrieben sind, rechts von unten nach oben, das ist bei allen DIL-ICs so.

fedelio
18.10.2006, 14:40
hab das problem gelöst, doch es tun sich neue auf ;), schreib sie gleich hier hin, weil sie nen bezug haben ;)

ich brauch ein terminal wo ich pfeiltasten versenden kann ;) ...
also ich möchte, das wenn ich links drücke, das terminal dies auch schickt ... oder muss ich da selber nen programm schreiben ?

ogni42
18.10.2006, 14:44
Was Du suchst sind wahrscheinlich die Escape Sequenzen um den Cursor auf dem Terminal zu manipulieren:

http://www.termsys.demon.co.uk/vtansi.htm
http://www.mit.edu/~vona/VonaUtils/vona/terminal/VT100_Escape_Codes.html

Du musst die entsprechende Terminalemulation eingeschaltet haben.