PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Seriale Kommunikation falsche Zeichenausgabe



oderlachs
27.02.2013, 10:25
Für ein neuen Projekt möchte ich ein CB328ab-Boad von EleCont verwenden doch es gelingt keine serielle Kommunikation, ich bekomme nur Hyrogluphen angezeigt.
Hier der Testcode:
'SerielleKomunikation mit EleConT Controller-Board : CB328ab
$regfile = "m328pdef.dat" ' ATmega328
$crystal = 20000000 ' 20MHz org. Qu.Wert??
$baud = 9600 ' 9600 Baud 0,8,1

Dim A As Integer

Do
Input "Bitte Zahl eingeben: " , A
Print "Die eingegebene Zahl war " ; A
Loop

End
Solte ich eventuell die org. Q-Frenquenz ändern, einen anderen Qu einbauen ?? Progge selten mit Bascom...

Wer weiss Rat ?

Danke

Gerhard

Kampi
27.02.2013, 10:52
Hey,

du testest direkt mit einem PC Terminal?
Wie sehen die Hieroglyphen aus?
Wenn du das was du über UART empfängst in einem Integer speicherst, erhältst du bei der Ausgabe nur den ASCII Wert das ist dir aber klar oder?
Und Texte kannst du da eh nicht drin speichern, sondern nur einzelne Werte.

malthy
27.02.2013, 11:26
Solte ich eventuell die org. Q-Frenquenz ändern, einen anderen Qu einbauen ??

Wichtig ist nur, dass der Controller auch wirklich auf 20 MHz läuft, d.h. die Fuses korrekt eingestellt sind, damit nicht der interne Oszillator verwendet wird. Dass der Baudratenfehler bei 9600 Baud bei einem 20 MHz Quarz ein Problem ist, habe ich noch nicht beobachtet. Ich verwende diese Kombination häufig. Was auch noch zu "Hieroglyphen" bei der RS232 Verbindung führen kann, ist eine fehlende Masseverbindung zwischen µC und PC. Das hatte ich mal in Form ein Kabelbruchs, hat mich damals fast in den Wahnsinn getrieben :-).

Kampi
27.02.2013, 11:34
Was auch noch zu "Hieroglyphen" bei der RS232 Verbindung führen kann, ist eine fehlende Masseverbindung zwischen µC und PC. Das hatte ich mal in Form ein Kabelbruchs, hat mich damals fast in den Wahnsinn getrieben :-).

Stimmt *hust*
Das Problem hatte ich auch schon einige Male ;)

oderlachs
27.02.2013, 15:36
Hallo @ll !!
Vielen vielen Dank für Eure Informationen und Anregungen.
Zu 1. Ja ich müsste den ASCII wert sehen, tut's aber nicht
zu 2. Ja der µC läuft exakt auf 20MHz, alle Fuses richtig gesetzt
zu 3. Die Datenleitungen sind i.O. Brücke ich RxTx ( vom STK500, es dient als TTL/PC Schnittstelle) gehts wunderbar per "Echo"

Ich bin noch zu neu in Serialanwendungen per Bascom, darum fragte ich ob ich event-. grundsätzlich was falsch mache, zu Mal der Code woanders(µC auf dem STK) wunderbar funktioniert. Darum dachte ich an die Baudeinstellung mit 20MHz Q. Das STK hat ja andere Frequenz als Takt.

Esrt noch mals Danke werde weiter proben...

Kampi
27.02.2013, 15:42
Wie sieht den der Datenmüll aus den du Empfängst?

oderlachs
27.02.2013, 16:06
ich wollte es gerade fotografisch senden ;)
Hier:
1. termialausgabe 2. Fuses
2467824679

malthy
27.02.2013, 16:08
wenn du in deinem Bascom-Programm vor der Schleife zB ein


Print "Dies ist ein Test"

machst, kommt auch Müll an? Theoretisch könnte er ja auch schon Müll gesendet bekommen ...

oderlachs
27.02.2013, 16:27
Ich habe erst mal noch 2 Sachen auf der Herstellerseite(Manual) gefunden, das Board muss man noch mit einer Brücke Avcc zu Vcc und einen 0,1µf Cond von Aref zu GND beschalten, kann sein das dann die Fehler weg sind..muss erst mal löten...Bei den primitiven Blink und Schaltversuchen ging alles , na mal sehen....

malthy
27.02.2013, 16:30
Ich habe erst mal noch 2 Sachen auf der Herstellerseite(Manual) gefunden, das Board muss man noch mit einer Brücke Avcc zu Vcc und einen 0,1µf Cond von Aref zu GND beschalten, kann sein das dann die Fehler weg sind

Das wird damit nichts zu tun haben, das ist ja nur die Beschaltung des Analog-Teils des AVR. Den verwendest du bei dem o.g. Prog. ja nicht und er ist auch völlig unabhängig vom UART.

HeXPloreR
27.02.2013, 16:33
Hallo oderlachs,

die Baudrate im Terminal ist auch 9600 ( 8N1 )?
RX > TX und TX > RX (GND > GND)?
Das neue Programm wird sicher compiliert und übertragen?

Ich würde eine Bytevariable für A wählen.

Kampi
27.02.2013, 16:47
Probier erst mal ob die Übertragung eines fest definierten Textet funktioniert. Wenn es funktioniert kannst du weiter testen.
Mach erst mal das was Malte gesagt hat, sprich sende einen festen Text.

oderlachs
27.02.2013, 17:01
Hallo Leute !

Ihr müsst meine Blödheit besser wohl Blindheit entschuldigen, es war einPegelfehler, denn auf dem Bord ist noch ein SMD IC zu finden, zur Pegelwandlung RS232-TTL.
Es ist schon echt dumm wenn das Augenlicht nicht mehr das ist was es mal war.
Ich danke Euch allen für die Hilfe, habe wieder was dazu gelernt, das ich ja dann dieses Board gar nicht gebrauchen kann da ich für die Anwendung auch seriell TTL oder 3,3V Pegel brauche.

Mit besten Grüssen und Danke
ein ,
vor Scham sich verkriechender ,
Oderlachs
;) :mad:

Kampi
27.02.2013, 17:18
Shit happens :)
Passiert mal und hinterher ist man immer schlauer ;)
Ich habe gestern auch ne halbe Stunde nach einem Problem gesucht, warum bei einer FT232 Adapterplatine als Spannung nur 3,3V rauskommen bis mir eingefallen ist, dass ich bei der Platine nicht Vcc rausgeführt habe sondern den 3,3V Ausgang vom FT232 (die Platine ist für den Anschluss eines XBees gebaut worden aber ich verwende sie mittlerweile auch um alles andere von UART auf USB zu wandeln).....
Von daher bist du mit solchen "Problemen" nicht alleine ^.^