Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > Hallo Peter, > > > > danke für die rasche antwort, ich habe mir auf deinen rat hin ein speicherskope besorgt und mich in die > > schnittstlle gehängt. > > Zur info, es handelt sich um eine schnittstelle von einem PV-Wechselrichter > > der von einem datenlogger abgefragt wird und der datenlogger sendet fertig aufbereitet daten an den PC, wo > > man laut hersteller mitlesen kann. > > > > zur definition die c-control pro bekommt die daten über einen max 232 auf die > > 2te schnittstelle (0=GND, 1=+5V). > > die folgende pegelbeschreibung ist auf pin x2_11 gemessen: > > nun zu den pegeln auf der schnittstelle-> > > Anfrage vom Datenlogger an wechselrichter (wird laufend gesendet) -> Startbit=0, 8 datenbits, > > 1tes Stopbit=0, 2tes Stopbit=1 > > > > aufbereitete Daten vom logger (wird alle 4,5 sec gesendet) -> Startbit=0, 8 Datenbits, 2 Stopbits=1 > > in diesem format kommen mehrere bytes. > > > > Ich habe auch das ganze mit einem vorgeschalteten inverter versucht -> hat auch nicht funktioniert. > > > > kann es sein, dass der von dir unten erzeugte frame error das problem darstellt? > > > > danke für deine anregungen > > Der frame error wird nicht von mir erzeugt, das macht der UART im Atmel selbst. Meines Erachtens > müssen Stopbits high sein. Was Du hast wäre ein -> Startbit, 8Bit Daten, Parity = space, 1 Stopbit > > Der Atmel UART kann aber nur Parity = none, odd, even. Vielleicht kann man im 9 Bit Daten Modus > ein Parity = space erzeugen. Aber wie schon gesagt, 9 Bit Daten werden momentan von den UART > Library Routinen der C-Control Pro nicht unterstützt. > > Frag doch bitte mal den Hersteller des Geräts, was für ein serielles Format er erzeugt. Dann > hättest Du Gewissheit, ob Du richtig gemessen hast. > > Gruss Peter > Routinen > > > > > Josef > > > > > > hallo zusammen > > > > > > > > habe mir ein ccontrol pro mega 128 gekauft um über eine serielle > > > > schnittstelle daten einzulesen. > > > > > > > > die schnittstelle liefert mit 3200 baud 1 startbit 8 datenbits und 2 > > > > stopbits, wobei das erste stopbit high und das zweite low ist. > > > > > > Hallo Josef, > > > > > > die Schnittstelle ist mit 2 Stopbits, das 1. high, das 2. low doch ziemlich exotisch. Ich > > > kenne eigentlich nur, das beide Stopbits high sind. Der Receiver im Mega128 ignoriert laut > > > Datenblatt das zweite Stop Bit. Allerdings wird bei 1. Stopbit low und 2. Stopbit high ein > > > Frame Error erzeugt. > > > > > > Laut Datenblatt können die Atmel Mega auch nur high Stopbits erzeugen. Die Schnittstelle kann > > > auch kein Mark oder Space Parity, allerdings kann man wohl pfuschen, in dem man 9Bit Daten > > > angibt, und damit das Parity erzeugt. 9Bit Daten werden allerdings zur Zeit von der C-Control > > > Pro Library nicht unterstützt. > > > > > > Schau doch mal im Oszi, was wirklich für Daten ankommen, die vom Mega128 gelesen werden sollen. > > > Das klingt mir etwas abenteuerlich mit 2 unterschiedlichen Stopbits. > > > > > > Gruss Peter > > > > > > > > > > > das program schaut so aus > > > > // Hauptprogramm > > > > // > > > > void main(void) > > > > { > > > > byte c; > > > > char Text1[37]; > > > > char Text2[27]; > > > > > > > > Text1="-- Test serielle Schnittstelle --"; > > > > Text2="-WR Schnittstellentest-"; > > > > > > > > Serial_Init(0,SR_8BIT|SR_1STOP|SR_NO_PAR,47); > > > > //Init RS232: 19200, bps, 8 Bit, 1 Stop, NP > > > > Serial_Init(1,SR_8BIT|SR_2STOP|SR_NO_PAR,287); //287 > > > > //Init RS232: 3200, bps, 8 Bit, 2 Stop, NP > > > > c=0; > > > > > > > > Serial_WriteText(0,Text1); > > > > Serial_WriteText(0,Text2); > > > > { > > > > Serial_Write(0,c); > > > > Serial_WriteText(0,"1"); > > > > c=Serial_Read(1); > > > > Serial_WriteText(0,"2"); > > > > Serial_Write(0,c); > > > > Serial_WriteText(0,"3"); > > > > }while (1); > > > > } > > > > > > > > > > > > das programm bleibt bei Serial_WriteText(0,"1") also schreibt noch 1 raus hängen. > > > > was auch noch eigenartig ist, es wird vom auf den monitor diese Zeile -> Wert von c > > > > (Serial_Write(0,c);) nicht geschrieben; > > > > er wartet auf daten von der schnittstelle. habe einen PC angehängt und 2 stopbits über > > > > die RS 232 geschickt, das funktioniert mit jeder baurate. von der zweiten schnittstelle werden auch > > > > am PC daten empfangen. > > > > > > > > hat vielleicht jemand eine idee? > > > > > > > > danke