PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2ten Rs232 am Atmega32?



Crischan
27.12.2009, 14:36
Hi,

Ich versuche seid ein paar Tagen eine 2te Rs232 Schnittstelle an meinem atmega32 anzubringen, aber ich bekomme das nicht hin.
Hab mit Google gesucht und was von Uart gelesen :-s aber versteh das nicht so ganz.

Könnt ihr mir bitte was dazu sagen, ob das machbar ist?

Mein vorhaben:
Ich hab vor eine Gps-Maus an den atmega anzuschliesen mit diversen sensoren und dies dann mit einem xbee an mein Laptop zusenden

vllt seht ihr ein besseren weg als ein 2ten Rs232 am atmega, dann wäre ich dankbar wenn ihr mit ihn mitteilen könntet

P.s. Ich arbeite mit Bascom und würde auch gerne dabei bleiben


Mfg Crischan

Jaecko
27.12.2009, 14:44
Naja, wenn du von der GPS-Maus nur Daten kriegst (nichts senden) und an den Laptop nur sendest (also vom Laptop nix kommt), dann reicht ja eine.
Rx von GPS, Tx an Laptop.
Die Baudrate muss dann natürlich bei allen Geräten die gleiche sein.

Was Bascom selbst angeht: Bascom kann (relativ einfach) Software-UART mit fast jedem Pin.

Crischan
27.12.2009, 14:48
Hi,

danke für die fixe antwort :)
Das mit dem senden ist genau das problem, ich will auch daten zum atmega senden.

könntest du mir erklären wie ich das mit dem UART mache?

Jaecko
27.12.2009, 14:56
Bascom ist bei mir schon ewig her; habs auch nicht mehr aufm PC.
Das ging irgendwie mit dem Open "COM....-Befehl; Dort gibt man die Parameter sowie den jeweiligen Pin an. Wie genau müsste eigentlich in der Hilfe stehen.

Crischan
27.12.2009, 15:13
Supi, ich danke dir, habs :)

mit


Open comd.24800,8,n,1 For Input As #2

geht es

Hatte es sonst immer mit


Config Com2 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

versucht

danke dir

mfg Crischan

Crischan
27.12.2009, 19:21
Hi,

Hab da noch ein problem mit der ausgabe :(

Ich hab es soweit hinbekommen das die daten aufn Laptop lesbar sind, allerdings hab ich noch probleme mit den ersten zeilen die kommen nicht richtig rüber

Hier mal meine ausgabe


’š‚bšÊb‚ªb‚ºb’ʲb‚‚b‚ºb¢šbŠ²ºb‚‚Rº²j¤Dé
ÕÔ*iI)S)Ó)'%¦)ISISiS)Ó’b‚ªºb¢ŠbŠ²bŠªb‚ªŠ
$GPRMC,191459,V,5219.6233,N,00851.1113,E,000.0,303 .6,271209,,,N*65
$GPGGA,191500,5219.6233,N,00851.1113,E,0,00,,00054 .5,M,046.5,M,,*57
$GPGSA,A,1,,,,,,,,,,,,,,,*1E



die ersten zeichen sind totaler Müll.

habt ihr eine idee woher das kommt oder wie man das abstellen kann?

Hier mal der bascom-code vllt. mach ich auch nur was falsch


$regfile = "m32def.dat"
$crystal = 16000000
$baud = 4800
$hwstack = 32
$swstack = 10
$framesize = 40



Open "comd.6:4800,8,n,1" For Input As #2
Config Serialin = Buffered , Size = 200

Dim Inputstring1 As String * 99
Dim Inputstring2 As String * 99
Dim Inputstring3 As String * 99
Dim Inputstring4 As String * 99
Dim Inputstring5 As String * 99

Do

Input #2 Inputstring1 , Inputstring2 , Inputstring3 , Inputstring4 , Inputstring5

Print Inputstring1 ; Inputstring2 ; Inputstring3 ; Inputstring4 ; Inputstring5
Loop

Close #2

Im moment will ich einfach nur die Daten von der Maus übern atmega zum Laptop senden.

Vllt seht ihr ja was, wäre euch aufjedenfall dankbar

mfg Crischan

Jaecko
27.12.2009, 19:30
Läufts dann dauerhaft fehlerfrei oder kommen die Fehler irgendwann wieder?

Ich würd da jetzt mal versuchen, ob das Verhalten gleich bleibt, wenn die Baudrate zwischen AVR und PC erhöht wird (z.B. 9600), so dass der AVR seine Daten also schneller loswerden kann, als er sie von der GPS-Maus kriegt.

Reicht da auch nicht nur ein Inputstring? Die einzelnen GPS-Datensätze werden eigentlich meistens nur so 70-80 Zeichen lang.

Crischan
27.12.2009, 19:39
:)

Hätte ich auch sebst draufkommen können, das mit der baudrate zu erhöhen hat schon ausgereicht.

danke dir, aber was meinst du mit nur ein Inputstring?
Etwar?

Inputstring1 , Inputstring2 , Inputstring3 , Inputstring4 , Inputstring5

Ne hatte ich auch erst gedacht aber bei nur einem bekomm ich nix rein

Aber gibt es noch einen anderen weg die daten auf sicherem weg reinzubekommen und weiter zureichen?

Crischan
27.12.2009, 19:54
Hm, das mit der Baudrate war nur ein zufalls effekt, der fehler ist wieder da :heul:

Gibt es noch eine andere möglichkeit? weiss da wer was?

Vitis
28.12.2009, 19:53
kann an den 16MHz hängen, mit Baudratenquarz kann ggf.
Abhilfe geschaffen werden.

Crischan
28.12.2009, 20:26
es sind ja immer nur die ersten Zeilen die nicht richtig ausgegeben werden, kann man den AVR nicht irgendwie darauf vorbereiten das ne text nachricht kommt?

Richard
29.12.2009, 01:52
Versuche einmal die Demo inkey.bas von Bascom, damit klappt das
bei mir und nen GPS Empfänger. Mein GPS arbeitet von Haus aus
allerdings mit 9600 Baud? Ich lese auch nur 1 Byte und sende das gleich
weiter, geht auch ISR gesteuert.

Gruß Richard