Einige Probleme mit open&Connect CDC Port

  • 1
  • 2
  • 3
  • Page 1 of 3
wom
 
Avatar
 
Subject:

Einige Probleme mit open&Connect CDC Port

 · 
Posted: 16.04.2017 - 20:01  ·  #1
Hallo,

ich habe ein Problem mit dem Soft I2C in Verbindung mit dem CDC Port. Ich verwende einen XMEGA 256A3BU und auf den PortC 0/1 den Soft I2C.

Die I2C Module arbeiten ohne Probleme bis ich den CDC-Port aktiviere mit Open&Connect CDC Port. Dann geht er in eine Schleife aus der er nicht mehr raus kommt und der WD-Timer kommt.

Wo liegt das Problem ? Wie kann ich das Problem beheben ?

Gruß
Wom
wom
 
Avatar
 
Subject:

Re: Soft I2C und Open&Connect CDC Port

 · 
Posted: 17.04.2017 - 20:15  ·  #2
Hallo,

nach einigen Versuchen denke ich es liegt dem TimeOut beim I2C-Soft Treiber. Kann es sein, dass beim CDC Treiber und beim I2C-Soft Treiber der gleiche Timer für das TimeOut benutzt wird? Mit der Abfrage I2CStat leuft es anscheinend in eine Schleife wenn kein Baustein vorhanden ist. Aber dies nur wenn der CDC aktiviert wird.

gruß
WOM

Damit kommt das Programm nicht in den TimeOut unter verwending von TWI_C nicht I2C
Code

Procedure OnSysTick;
Begin
     Dec(I2CTiOut);
End;

Function Read_USTI2C_4KMod(xUST:Byte):Boolean;
Var
   IOX, xMod: Byte;
Begin
     WatchDogTrig;
     xMod:=PCF8574AP+xUST;
     I2CTiOut:=2;
     TWICMASTERADDR:=xMod Shl 1;
     Repeat
     Until Bit(TWICMASTERSTATUS,6) Or (I2CTiOut=0);
     If TWICMASTERSTATUS<>$62 Then Return(False); EndIf;

     IOX:=Mod_I2C4[xMod] Or $F0;
     If TWIOutC(xMod,IOX) Then
       If TWIInpC(xMod,IOX) Then
         Mod_I2C4[xUST]:=IOX;
         Return(True);
       Else
         Return(False);
       EndIf;
     Else
       Return(False);
     EndIf;
End;
wom
 
Avatar
 
Subject:

Probleme Open&Connect CDC Port

 · 
Posted: 19.04.2017 - 19:06  ·  #3
Hallo zusammen,

je mehr ich mit dem USB CDC Treiber arbeite beschleicht mich das das ganze alles anders als stabil ist. Jetzt arbeitet auch noch FloatToStr() nicht einwandfrei. :aerger:

der linke Wert (ADVdc) ist nach einer Bearbeitung, rechts der Originalwert (ADIn) in Word;

Procedure ReadADC;
Var
xAD : Byte;
xADIn : Float;
Begin
xAD:=1;
Repeat
ADIn[xAD]:=GetAdcA(xAD);
xADIn:=Float(ADIn[xAD]);
ADVdc[xAD]:=(xADIn*0.2442);
uDelay(100);
Inc(xAD);
Until xAD>2;
End;


Gruß
wom
You must be logged in or your permissions are to low to see this Attachment(s).
wom
 
Avatar
 
Subject:

Re: Einige Probleme mit open&Connect CDC Port

 · 
Posted: 20.04.2017 - 11:25  ·  #4
Hallo,

der USB Treiber CDC macht nur Probleme. Bei Verwendung von Float kommt auch nicht das richtige Ergebniss.

Mit dem Programm wir der gleiche Wert übertragen. Links über USB mit dem CDC Treiber und rechts über eine RS485 Schnittstelle. Wenn der CDC nicht installier wird ist alles ok. Auch I2C arbeitet dann ohne Probleme.
You must be logged in or your permissions are to low to see this Attachment(s).
wom
 
Avatar
 
Subject:

Re: Einige Probleme mit open&Connect CDC Port

 · 
Posted: 26.04.2017 - 12:19  ·  #5
Hallo

das Problem lässt sich beheben. Einen FT Baustein verwenden, dann kann man damit arbeiten. Mit dem E-Lab Compiler kann man das Problem nicht lösen. Der ist anscheinend so stabile wir eine Götterspeise. Vorteil ist, das man auch mit MIKROE Compiler und dem E-Lab arbeiten kann.

Gruß
WOM
Avra
Schreiberling
Avatar
Gender:
Location: Belgrade, Serbia
Age: 53
Homepage: rs.linkedin.com/in…
Posts: 653
Registered: 07 / 2002
Subject:

Re: Einige Probleme mit open&Connect CDC Port

 · 
Posted: 27.04.2017 - 11:45  ·  #6
Have you tried to increase stack/frame? What happens if you lower CDC speed from 256000 to 19200? Do you still have problems?
wom
 
Avatar
 
Subject:

Re: Einige Probleme mit open&Connect CDC Port

 · 
Posted: 27.04.2017 - 18:16  ·  #7
Hello,
Attached the settings for the cdc. The description for this is not detailed and I find no hinweis to this. The problems appear in the I2C driver and the TWI driver. The other problem is in the conversion from word to float.

I consider whether I the desing on the ft232 building block. So I can use another compiler (MIKROE).

Br
Wom

---------------------------------------------------------------------------
USBmanufact = 'EcoTron'; // max 31 bytes
USBprodName = 'Serial CDC-USB'; // "
USBpid = $77;
USBvid = $BCDE;
USBprodRel = 001;
USBcurrent = 500;
USBvBUS = PortB.3; // port und pin, optional

SerPortCDC = TimeOut;
RxBufferCDC = 64, iData;
TxBufferCDC = 64, iData;

-------------------------------------------------------------------------
wom
 
Avatar
 
Subject:

Re: Einige Probleme mit open&Connect CDC Port

 · 
Posted: 10.05.2017 - 21:30  ·  #8
Hallo Rolf,

das ganze macht Probleme mit dem Soft-I2C und der FloatToStr steigt in unregelmäßigen abständen aus.

gruß
wom
  • 1
  • 2
  • 3
  • Page 1 of 3
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   130   144 · Page-Gen-Time: 0.039207s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI