Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: RS232 Kategorie: Programmierung C (von Josef - 4.08.2009 19:36)
Als Antwort auf Re: RS232 von PeterS - 2.08.2009 23:44
Ich nutze:
C-Control Pro Mega128
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

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


    Antwort schreiben


Antworten:

Re: RS232 (von PeterS - 4.08.2009 23:44)
    Re: RS232 (von Josef - 5.08.2009 16:55)
        Re: RS232 (von Olaf Breuer - 23.01.2011 16:48)