mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Datenübertragung: USB <--> cy7c67300


Autor: dj9nmh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

seit kurzem befasse ich mich mit dem oben genannten µC und bin nun auf 
ein Problem gestoßen, bei welchem ich nicht wirklich weiter komme. Ich 
versuche zunächst einmal den Fehler zu beschreiben und danach zu sagen, 
was der source code macht.

Ich empfange seriell daten über die HSS, des Controllers. Diese kommen 
alle korrekt an. Nun schicke ich diese in 64KB Blöcken weiter an den PC. 
Der PC liest mittels polling die Daten des µC. Je nachdem wie kurz die 
zykluszeit ist, sind die übertragenen Daten mehr oder weniger 
Fehlerhaft. Es fehlen entweder Zeichen oder es kommen welche doppelt.

Und nun versuche ich nochmal die wichtigsten punkte meines quellcodes in 
worten zu fassen. Auf dem µC läuft eine IDLE-Schleife. Pro Zyklus lese 
ich die Daten über den Endpoint 1 aus und sende über Endpoint 2. Das 
Tatsächliche Senden geschieht dann letztlich über ein Interrupt, welches 
über eine C-Funktion des Frameworks zur Verfügung gestellt wird. Hierbei 
übergebe ich mittels einer Struktur unter anderem, die Pufferlänge, 
einen Buffer auf den Buffer und ich übergebe eine Handler-Routine, 
welche aufgerufen wird, wenn die Daten am PC ausgelesen wurden. Beim 
Debuggen stellte sich heraus, dass sowohl vor dem schreiben auf EP2, als 
auch nach dem Lesen im Buffer des µC immer die richtigen Daten standen. 
Es fiel aber auf, dass nach einem fehlerhaftem Lesen, der µC nicht mehr 
in die Handler-Routine sprang.

Nun meine generellen Überlegungen zu dem Problem: Ich benutze den 
Bulktransfer bei full-speed. das müsste bedeuten ich müsste eine 
Übertragungsgeschwindigkeit von 12 Mbit/s realisieren können. 
Zykluszeiten beim Polling waren bisher so 100-1000 ms. Pro Lesevorgang 
werden immer 64KByte übertragen. Eigentlich müsste das ja ohne Probleme 
machbar sein. Daher denke ich, dass ich evtl die SIE1 (USB-Schnittstelle 
für Kommunikation zum PC) nicht richtig konfiguriert habe oder sonst 
irgend ein generelles Problem besteht.

Falls es nötig ist mein Problem an einem bestimmten Punkt detailierter 
zu beschreiben, lasst es mich wissen. Oder evtl. kann mir jemand 
allgemeine Tips zur Vorgehensweise bei der Fehlersuche zur 
µC-Programmierung geben. Eigentlich wäre ich für jede Form der Hilfe 
dankbar, da ich bisher noch sehr Wenig Erfahrung auf diesem Gebiet 
gesammelt habe und dies mein erster Controller ist :D

Danke schonmal für Antworten,

Stefan

Autor: dj9nmh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe leider keine Bearbeiten-Funktion gefunden, deshalb jetzt noch ein 
zweiter Post. Kurz noch die Initialisierung meiner USB-Schnittstelle:

- Update der Bios Deskriptor Pointer
- Initialisierung Endpoint Control Register (EP0, EP1, EP2)
- USB EP (EP0, EP1 und EP2) Status Register Initialisierung
- Initialisierung EP1 Count Result Register (64KByte pro Block)
- SIE1 initialisieren (Full-Speed)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.