Forum: Mikrocontroller und Digitale Elektronik usb 2.0 mit control pannel


von Hallo H. (Firma: gast) (hamdou)


Lesenswert?

hallo zusammen,
kann jemand bitte mir sagen,wie kann ich daten in FIFOS direkt schreiben
und von dort wieder lesen mittels usb control pannel,
ich habe das folgende quell code  geschrieben aber hat nicht gecklappt.
   SYNCDELAY;
EP8FIFOBUF[ 0 ] = 0x02;
EP8FIFOBUF[ 1 ] = 0x06;
EP8FIFOBUF[ 2 ] = 0x07;
EP8FIFOBUF[ 3 ] = 0x03;
SYNCDELAY;
EP8BCH = 0x00;
SYNCDELAY;
EP8BCL = 0x04; // pass newly-sourced buffer on to host
      xFIFOBC_IN = ( ( EP6FIFOBCH << 8 ) + EP6FIFOBCL ); // get 
EP6FIFOBCH/L value

      if( xFIFOBC_IN < 0x0200 )         // if pkt is short,
      {
        INPKTEND = 0x06;                // force a commit to the hoste}

von Termite (Gast)


Lesenswert?

Moin
gibts dazu noch ein paar nähere Infos?
Welcher Controller z.B. was verstehst du unter Controll Panel? ein 
element deiner IDE?

gruss

von Hallo H. (Firma: gast) (hamdou)


Angehängte Dateien:

Lesenswert?

EZ_usb control panel ist ein software damit kann man daten ,die in usb 
controller EZ-usb 2.0 fx2(firma cypress) rein oder raus 
kommen,simulieren
und ich habe bei anhang ein pdf datei die das erklärt.
mir geht darum, daten von usb controller zu senden.

MfG

von Christian R. (supachris)


Lesenswert?

Schau dir bitte mal die Beispiele wie BulkLoop oder BulkText an, die im 
Entwicklungspaket des EZ-USB sind. Da ist das im Quelltext einigermaßen 
gut dokumentiert.

von Hallo H. (Firma: gast) (hamdou)


Lesenswert?

danke sehr für die hinweise ,aber leider das bringt nicht zu viel weil 
das habe ich schon gesehen,er benutzt die gpif designer,und ich wollte 
einfach die Fifos benutzen um die daten  zwichenzuspeicheren und an die 
host weiter schicken.umdie daten in fifos zu speicheren benutze ich ein 
port pin zum beispiel pa.0(daten kommen seriell,werden in fifo 
gespeichert un dann an die pc geschickt).

MfG

von mars (Gast)


Lesenswert?

Hi!

Das Bulkloop Demo kopiert ke5r 8051 µC die Daten von einen Endpoint in 
den Anderen. Es wird kein GPIF, oder FIFO Mode verwendet.

von Hallo H. (Firma: gast) (hamdou)


Lesenswert?

das ist richtig,aber ich wollte auf ein fifo zugreifen zum beispiel 
schreibe ich ein hex wert in einem endpoint und dann wollte ich diese 
wert an pc schicken,wo ich mittels control panel dise hex wert sehe.
das heisst ,ich benutze ein endpoint als IN transfer:in diese endpoint 
fifo schreibe ich diese hex wert.
kann mir jemand bitte sagen ob ich direkt dise wert schreiben kann oder 
muss ich erstmal ein endpoint für out transfer definiere und von dort 
die hex werte schicke .(das habe ich gemacht und hat funktionniert),aber 
ich wollte am endeffekt daten von draussen(adc)seriell kriege und in 
port pin zum beispiel pa.0 anschliesse und von dort die daten in ein 
endpointfifo(IN transfer)zwichenspeichere und weitereschicke zum pc.
dass heisst ich brauche kein kopierung von daten von ein endpoint in 
andere endpoint.
MfG

von Christian R. (supachris)


Lesenswert?

Du musst auf Manual-In schalten, und dann kannst du auch selbst (also 
die CPU) Pakete in den FIFO schreiben. Steht auf Seite 137 im Technical 
Reference Manual. Da stehen ja auch Beispiele dabei. Aber wieso willst 
du unbedingt die Slave FIFOs verwenden? Die sind eigentlich zum Betrieb 
mit einem externen Master (FPGA...) gedacht. Viel einfacher geht das 
über die Endpoint-Buffer, wie im BulkLoop Demo.

von Hallo H. (Firma: gast) (hamdou)


Lesenswert?

Guten abend,
kann man bitte mir sagen wo ich eine fehler gemacht habe?
ich habe folgendes quellcode jetzt verwendt um einige byte am pc zu 
schicken, aber ich bekomme falsche byte(nicht wie sie definiert)
und danke schön in voraus.
void TD_poll(void)
{
word x;
  if(!EP2468STAT &bmEPFULL))
    {
      for(k=0;k<8;k++)
       {
         aH[k]=1;
       }
      for(h=0;h<8;h++)
       {
        aL[h]=1;
       }
  APTR1H=&aH;
  APTR1L=&aL;
  AUTOPTRH2=MSB(&EP6FIFOBUF);
  AUTOPTRL2=MSB(&EP6FIFOBUF);
  for(x=0x0000;x<0x0200;x++)
  XAUTODATA2=XAUTODATA1;

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.