PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : brauche Hilfe mit 3pol UART -> PC + Kritik am Wissensbere



Ceos
20.02.2008, 16:12
Also mal erhlich, die enformationen zur beschaltung vom 3pol zum 9pol SUB-D im wissensbereich iss ja mal extrem dürftig .... ich bekomm hier keine vernünftige kommunikation zu stande, ich frag mich obs am funkmodul liegt oder das ich die falschen pins angeschlossen habe weil es nur ein bild von der HINTERANSICHT einer 9-poligen SUB-D im wissensbereich gibt, und die pindarstellung bei der suche nach RS232 auch irgendwie verwirrend ist.

zur eigentlichen kritik .... wenn ich nach dem pin-bild unter rs232 gehe, müsste ich die stifte sehen (am PC/verlängerungskabel) dann den 2ten oberen pin von links mit RX und den 3ten mit TX beschalten, und der ganz rechts müsste GND sein .... wenn ich mir DAS bild ansehe
https://www.roboternetz.de/wissen/index.php/Bild:Rn232adapter.jpeg
und davon ausgehe das ich das direkt an den PC anschliessen kann und da eine BUCHSE (also das ding mit löchern) dran ist, es genau verkehrt herum angelötet ist !?!? bitte dringend hier um aufklärung

https://www.roboternetz.de/wissen/index.php/RS232

hier ist es genau anders herum erklärt, als das bild vermuten lässt!!!

hululu
20.02.2008, 16:54
Beim ersten bild ist der stecker von hinten gezeigt, und beim zweiten von vorne. daher ist einmal Pin 1 links und einmal rechts(logisch) Schau dir mal son ein Stecker oder Buchse an dann siehts du dass jeder Pin nummeriert ist. Wenn du nach dieser nummerierung gehts muss es klappen.
Wenns so nicht geht tausche einmal pin 2 und 3 (RxD und TxD)

oberallgeier
20.02.2008, 17:27
Die praktische Auswirkung am dreipoligen Anschluss nach Bild ist die - dass Du zum Tauschen von RxD und TxD nix löten musst - da muss man nur den Stecker um 180° drehen und wieder draufstecken.

Ceos
20.02.2008, 18:14
ich glaub ich werd blöd .. ich hab folgenden code

void USART_Init( unsigned int ubrr)
{
/* Set baud rate */
UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}

void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSRA & (1<<UDRE)) )
;
/* Put data into buffer, sends the data */
UDR = data;
}

void USART_Flush( void )
{
unsigned char dummy;
while ( UCSRA & (1<<RXC) ) dummy = UDR;
}

int main(void)
{
USART_Init(2400);

DDRD = BV(PD2);
while(1)
{
PORTD &= ~BV(PD2);
unsigned int C1,C2;
for (C1 = 0; C1 < 1000; C1++)
{
for (C2 = 0; C2 < 20000; C2++);
}
PORTD |= BV(PD2);
USART_Transmit('A');
//SerWrite("A",1);
for (C1 = 0; C1 < 200; C1++)
{
for (C2 = 0; C2 < 20000; C2++);
}
}
}
und mich nach
https://www.roboternetz.de/wissen/images/6/65/Avrtutorial_grundschaltung_max232.gif
bei der beschaltung gerichtet ... trotzdem kommt NIX an ... bin ich zu blöd oder was iss hier falsch ?

PS: Die Pins zählt man doch von oben(da wo die kerbe iss) links nach unten und von rechtsunten nach oben ??? ich hab auch 8bit 2400baud und 2 stoppbits im HT eingestellt ....

EDIT: Max232 PIN13 an die 2 vom PC, 14 an 3 und GND auf die 5 vom PC
11 an PIN3 vom mega8 und 12 an PIN2 vom mega8 und die kondensatoren wie aufm schaltbild

EDIT: wenn der abgebildete stecker 9pol auf 3pol ne BUCHSE ist, liegt pin2 des 3pol auf PIN1 des SUB-D, schau nochmal genau hin das iss irgendwie verdreht!

Ceos
20.02.2008, 18:39
*sich an den kopf greift, und im boden versinkt*

.... und dabei sag ich es selber immer ..... erst ins datenblatt schauen dann meckern .... OMG im datenblatt etwas unkenntlich weil ganz oben und ganz unten und nciht seitlich auf der abbildung angebracht .... hab ich die spannungsversorgung vergessen -.- das erklärt ALLES .... also die signale spiegeln funkioniert schonmal ... nun muss ich nur rausfinden was ich falsch mache denn das signal vom IC kommt zwar an (eine LED parallel zum comport) aber das HT spuckt nix aus