Hardwareprobleme

USB-1.1-Controller: Übertragung bleibt stehen oder stockt

Fehler
Beim Senden von Daten vom SpartanMC zum Host mit vorheriger Überprüfung des entsprechenden Enable-Bits (zeigt an, ob vorheriges Paket versendet wurde) bleibt die Übertragung stehen oder läuft nur mit Unterbrechnungen.

Mögliche Ursache
Inkompatibilität mit einem USB-Hub

Lösung
SpartanMC-USB-Controller ohne Hub direkt mit dem Host verbinden


UART (über USB serial CP201x): Beim Senden vom PC zum SpartanMC gehen scheinbar Daten verloren

Fehler
Trotz korrekt parametrierter Hardware (Baudrate etc.) scheinen Daten auf dem Weg vom PC zum SpartanMC verloren zu gehen. Insbesondere kleine Datenpakete machen dabei Probleme. Bei größeren Datenmengen fehlt das Ende.

Mögliche Ursache
BUG IM KERNELTREIBER. Der zuständige Treiber cp201x.ko mit der Bezeicnung Silicon Labs CP210x RS232 serial adaptor driver in der Version v0.09 scheint beim Senden die Daten fehlerhaft zu paketieren. Es schlägt also bereits die USB-Übertragung fehl. Dieser Fehler wurde auf Kernelversion 3.3.2 nachgewiesen.

Werden während des Sendens der Daten vom PC aus gleichzeitig Daten aus der UART gelesen, tritt der Fehler interessanterweise nicht auf!

Lösung
Eine andere UART verwenden biggrin

UART (über USB allgemein): Die UART-Kommunikation läuft unzuverlässig

Fehler
Bei Verwendung eines USB-Serial-Wandlers zusammen mit dem SpartanMC und UART-Peripherie läuft die Kommunikation unzuverlässig und es treten nicht deterministische Fehler auf. Fehler in der SpartanMC-Hardware sind weitestgehend ausgeschlossen worden.

Mögliche Ursache
Instabilitäten im USB-Subsystem von Linux.

Lösung
USB-Geräte vom PC abstecken und wieder anstecken, andere Ports probieren, einen eventuell vorhandenen Hub weglassen, etc.


Bootloader: Initialisierung des Upload-Vorgangs schlägt fehl

Fehler
Beim Ausführen von make upload meldet sich der Bootloader vom SpartanMC zwar, aber das initiale Handshake schlägt fehl ("unexpected response"). Die Kommunikation erfolgt über einen USB-Seriell-Wandler. Debug-Ausgaben über die UART vom SpartanMC scheinen aber prinzipiell zu funktionieren.

Mögliche Ursache
Probleme mit dem USB-Seriell-Wandler.

Lösungsansatz
Beiträge zum Thema "UART" auf dieser Seite lesen.

SpartanMC