Forum: FPGA, VHDL & Co. Eigenartiges Verhalten beim Cypress uC CY7C68013A


von Bustle (Gast)


Lesenswert?

Hallo ihr,

ich werde einfach nicht schlau. Vielleicht könnt ihr mir weiterhelfen.

Ich habe beim Mikrocontroller CY7C68013A einen Endpoint 8 als IN
definiert und frage ihn als Interrupt ab.

Ich lasse mir vom Mikrocontroller immer was in den Buffer schreiben und
rufe diesen anschließen ab.

Hier der Code

...

TD_Poll(md_uebergabe_poll);
md_uebergabe_poll++;

if (md_uebergabe_poll == 0xFFFF)
{
  md_uebergabe_poll=0;
}

...

das mit dem hoch zählen aber ich zur Entschleundigung eingeführt, falls
es dies der Fehler wäre. Aber ohne Erfolg.

hier der Code für die Aufgerufene Funktion

...

if (md_ep8_auffuellen == 0xFFFE)
{
for (md_ep8_fifo_fuellen = 1; md_ep8_fifo_fuellen <= 127;
     md_ep8_fifo_fuellen++)
{
EP8FIFOBUF[md_ep8_fifo_fuellen] = md_ep8_fifo_fuellen;
}

SYNCDELAY;
EP8BCH = 0x00;
SYNCDELAY;
EP8BCL = 0xFF;
SYNCDELAY;
}

...

Und das kommt dabei raus, wenn ich den Endpoint 3mal abfrage...

Interrupt IN Transfer
Interrupt IN success.
Buffer Contents
0000  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0010  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0020  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0030  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0040  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0050  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0060  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0070  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0080  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0090  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00A0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00B0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00C0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00D0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00E0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00F0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E
Interrupt IN Transfer
Interrupt IN success.
Buffer Contents
0000  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0010  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0020  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0030  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0040  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0050  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0060  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0070  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0080  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
0090  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
00A0  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
00B0  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
00C0  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
00D0  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
00E0  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20
00F0  10 20 10 20 10 20 10 20 10 20 10 20 10 20 10
Interrupt IN Transfer
Interrupt IN success.
Buffer Contents
0000  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0010  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0020  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0030  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0040  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0050  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0060  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0070  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0080  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
0090  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00A0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00B0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00C0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00D0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00E0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F
00F0  7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E 7F 7E

_____________________________________________________________

bei der nächsten Abfrage würden wieder die 10 20 10 20 usw. kommen,
dann wieder 7E und 7F usw.

Komisch ist das die 7E und 7F die letzten Werte sind die in den Buffer
geschrieben werden. Wenn ich andere längen nehme und andere Zahlen
eintragen, werden trotzdem die letzten beiden in den Buffer geschrieben
Werte ausgegeben.

Ich hoffe mir kann jemand irgendwelche Tipps geben, die mir weiter
helfen.

Vielen Dank

Gruß
Bustle

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.