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}
Moin gibts dazu noch ein paar nähere Infos? Welcher Controller z.B. was verstehst du unter Controll Panel? ein element deiner IDE? gruss
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
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.
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
Hi! Das Bulkloop Demo kopiert ke5r 8051 µC die Daten von einen Endpoint in den Anderen. Es wird kein GPIF, oder FIFO Mode verwendet.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.