PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : USART = rs232 ???



paul93
08.02.2011, 16:55
Hallo,

kann ich mit einem USB to UART adapter ne kommunikation zwischen der rn-Control Platine über den rs232 anschluss und dem USB Port meines pc herstellen? Mit hilfe des terminals?

Ich spreche von folgendem Adapter: http://shop.myavr.de/index.php?sp=article.sp.php&artID=200024

hardware.bas
08.02.2011, 20:14
Leider konnte ich keinen Schaltplan finden. Da es sich hier jedoch
offensichtlich um einen Umsetzer von USB direkt mit TTL-Pegel zur
UART handelt, also ohne RS232-Treiber, glaube ich, dass es möglich
ist, Diesen direkt mit den entsprechenden PINs (RX,TX) des Prozessors
zu verbinden. VG Micha

paul93
08.02.2011, 20:34
Danke für die Antwort :)

Nun hab ich das RN-Control über deiesen Adapter angeschlossen. Auf dem avr hab ich das demoprogramm geschrieben. Für das Terminal habe ich somit baud 9600, 8n1, keine flussteuerung und emulation auf VT100.
Da kommt dann aber nur müll an... (y½½µaW[ag¿£—¿«««««åë¿åës5y¿%159/;5#¿S5-!#¿75).
Ich habe schon viel in foren gesucht und viel ausprobiert, finde den fhler aber nicht... was könnte ich denn noch versuchen?

dremler
08.02.2011, 20:35
ändere mal die baudrate....iwann passt es sicher...

shedepe
08.02.2011, 20:39
Dann poste doch am besten auch noch das Programm, das du auf der RN-Control laufen hast.

paul93
08.02.2011, 20:49
http://www.rn-wissen.de/index.php/RN-Control_Demoprogramm_in_C

shedepe
08.02.2011, 21:14
Statt
UBRRH = 0; //Highbyte ist 0
UBRRL = 103; //Lowbyte ist 103 (dezimal) -> (Frequenz_in_Hz / (Baudrate * 16)) - 1 <- Quarfrequenz = 16*1000*1000 Hz!!!!
das verwenden:
UBRRH = ((F_CPU +BAUD*8 )/ (BAUD * 16L) - 1) >>8;
UBRRL = ((F_CPU +BAUD*8 )/ (BAUD * 16L) - 1) & 0xFF;

und BAUD als 9600 definieren.
Also am anfang der Datei so:
#define BAUD 9600

Zudem solltest du überprüfen ob die Fuses korrekt eingestellt sind auf den externen Quarz

paul93
08.02.2011, 21:36
programm geändert... geht nicht.
überprüfe jetzt noch die fuses

radbruch
08.02.2011, 21:43
Laut Baudratentabelle im Datenblatt des Mega32 (19.12 Examples of Baud Rate Setting) ist UBRRL = 103 für 9600 Baud beim 16MHz-Takt richtig. Für den alternativen 7,37MHz-Takt des RN-Control wäre der Wert für UBRRL 47.

hardware.bas
09.02.2011, 03:24
Kenne mich weder in C(hinesisch) aus, noch kenne ich das RN-Board,
wenn der AVR jedoch nicht quarzstabilisiert ist, kann es diese
Probleme geben. Auch wenn ein Quarz auf dem Board ist, kann es
sein, dass z.B. ein neuer AVR so gefust ist, dass er nur mit
dem ziemlich ungenauen internen Takt läuft . VG Micha

paul93
09.02.2011, 05:45
Ja also n quarz hab ich installiert. Aber die Fuses hab ich noch nicht hinbekommen zu setzen... Versuche es über das makefile mit avrdude. Bekomme bis jetzt aber nur fehler. Deswegen werd ich noch n bisschen anleitungen durchstöbern, wie ich nun die doofen fusebits setzten kann.
Über ponyprog & Co. Kann ich das nicht machen, weil ich auf macintosh arbeite...
Sollt ich nich weiterkommen melde ich mich nochmal ;)

pc-fan
09.02.2011, 13:45
Hi paul93,

zum Fuses setzen unter Mac könntest du dir mal folgendes anschauen:
http://avr8-burn-o-mat.aaabbb.de/

Ich habe zwar keinen Mac, nutze dieses Programm aber unter Linux. (Bei mir funktioniert es super)

kalletronic
09.02.2011, 14:32
Hi,

du musst aufpassen wo du diesen Adapter am RN-Contol anschließt. Beim Anschluss "RS232" vom RN-Control ist der MAX232 davorgeschaltet, der den TTL-Pegel auf den Pegel der Seriellen Schnittstelle des Computers wandelt (-12V und + 12V wenn ich mich nicht irre). Wenn der Adapter nur TTL pegel kann müsstest du ihn an PD0 und PD1 anschliessen, da hast du TTL-Pegel

Gruß Kalle

paul93
09.02.2011, 20:50
@pc-fan: sieht gut aus das programm :) nur habe ich ein problem: wenn ich da mittels checkboxen die fuses auswähle und dann auf frite fuses klicke, schriebt der etwas, resetet mein avr und gibt ne erfolgsmeldung aus. Wenn ich dann auf read fuses klicke, ist kein fuse ausser die mit radioboxen ausgewählt...
avrdude gibt dabei folgendes aus:
/usr/local/CrossPack-AVR/bin/avrdude -C /usr/local/CrossPack-AVR/etc/avrdude.conf -p m32 -P /dev/tty.SLAB_USBtoUART -c stk500v2 -u -U hfuse:w:0x89:m -U lfuse:w:0xFF:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9502

avrdude done. Thank you.

Eine idee, was los sein könnte?