Skip to content

faq technik

hcanIngo edited this page Dec 27, 2015 · 2 revisions

Technische FAQ

Q: Nach dem Update auf eine neue Controller-1612 Firmware bootet der Controller zwar, laed aber seine Config nicht und meldet auf dem Bus: FIRMWARE_CONFIG_COMPAT_ERROR eds_block_type:20 eds_addr_hi:0 eds_addr_lo:180 size_in_config:9 size_in_firmware:6 Was soll ich machen?

Seit kurzdem ist diese Kompatibilitaetspruefung eingebaut. Der Controller meldet: Die Firmware und die Konfiguration im EEPROM sind nicht (mehr) kompatibel.

Im Detail bedeutet das hier:

Der EDS Block vom Typ 20 an der Adresse 180 hat in der Config eine Groesse von 9 Bytes, die Firmware kennt diesen Typ aber nur mit einer Groesse von 6 Bytes. Bevor nun Probleme auftreten, meldet die Firmware dies beim Booten und laed die Config nicht (nachzupruefen mit "show ram-usage": es sind 0 bytes geladen).

Abhilfe: Das haengt vom Fall ab - im Extremfall EEPROM formatieren und die (vorher gesicherte Config) neu einspielen. Wichtig ist auch, dass die telican-Version zu der Firmware-Version passt - sonst schreibt telican ev. andere Groessen ins EEPROM und die Firmware kommt dann damit nicht klar!

In diesem Fall war es ein Bug in devices.c: durch eine falsche sizeof() Anweisung hatte die Firmware die falsche Groesse fuer den Typ 20 (vermutlich durch Copy + Paste Fehler).

Q: Auf einem neu installierten Debian 4.0 (etch) ist zwar das FTDI Kernel Modul geladen, aber das /dev/tttyUSB0 Device existiert nicht

Das Problem kommt oefter vor - nun endlich auch mal bei mir ;-) In /var/log/messages findet man Hinweise:

ftdi_sio 2-2:1.0: FTDI USB Serial Device converter detected
drivers/usb/serial/ftdi_sio.c: Detected FT232BM
usb 2-2: FTDI USB Serial Device converter now attached to ttyUSB0
usbcore: registered new driver ftdi_sio
drivers/usb/serial/ftdi_sio.c: v1.4.3:USB FTDI Serial Converters Driver
usb 2-2: usbfs: interface 0 claimed by ftdi_sio while 'brltty' sets config #1
brltty[2208]: USB interface in use: ftdi_sio
ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
kernel: ftdi_sio 2-2:1.0: device disconnected

Es gibt einen Prozess brltty, welcher ein Braile Display/Keyboard verwaltet. Dieser greift sich das Hostinterface, da vermutlich auch die Braile-Hardware einen FTDI Chip einsetzt. Abhilfe: Das brltty Paket deinstallieren:

aptitude remove brltty

Sollte jemand dieses Paket benoetigen, so versuche ich gerne zu helfen, damit die beiden USB Devices koexistieren koennen.

Q: der EDS ist korrupt und telican kommt nicht mehr rein, um ein Format abzusetzen.

Verbinden mit:

$ telican -c 300 --ignore-type

Dann die EEPROM Zellen 32 und 33 ausnullen (den Magic Code ueberschreiben):

> set ee 32 0
> set ee 33 0
> reset

Danach findet er keinen formatierten Bereich (der Magic Code fehlt) und formatiert automatisch. Dann kann man wieder normal connecten.

Q: Wo ist das Plugin-Interfacce, welches fuer die Version 2.0 geplant war?

Die urspruengliche Idee, eigene Aenderungen durch ein Plugin-Interface zu ermoeglichen, erschient zuerst sehr verlockend. Nachdem ich aber feststellen musste, dass der gesamte Buildprozess umgebaut werden muesste (Aenderungen in den XML-Dateien hcan-protocols.xml und eds.xml auch per Plugin ermoeglichen etc) und dann noch merkte an wievielen Stellen manche Leute Aenderungen vornehmen, habe ich die Idee verworfen. Als Alternative habe ich das Patchen (hoffentlich ausfuehrlich genug) beschrieben.

Q: Wie kann man einstellen, dass das Hostinterface nicht unter /dev/ttyUSBx, sondern unter einem konstanten Device-Namen im /dev-Baum erscheint?

Das laesst sich mittels udev realisieren und ist hier beschrieben.

Q: Mein gerade fertig gebautes Hostinterface sendet im kermit dauernd: Y0Cffffff1f0fffffffffffffffff07ffffffffffffFY0Cffffff1f0fffffffffffffffff07f

Entweder der der MCP2515 ist nicht eingesteckt oder der ATmega32/ATmega644p bekommt dazu keine Verbindung zum MCP2515. Ueberpruefe die SPI Schnittstelle zum MCP. Pruefe, ob der Quarz des MCP schwingt.

Q: Ich habe die Adresse eines Boards vergessen. Wie kann ich sie herausfinden?

Man kann mit einem Trick die Adresse herausfinden: Bootet ein Board, so sendet es seinen Reset-Grund mit einem Frame, z.B.:

0256 -> 0040 :SFP SLS BOOT_RESETFLAG_LOG flag:8 

Mit einer kleinen Drahtbruecke resettet man nun das Board, in dem man den Pin 1 und Pin 5 (die beiden aeussersten Pins) des ISP-Anschlusses kurz verbindet. In einem mitlaufendem telican Dump sollte nun ein Frame wie oben dargestellt erscheinen.

Clone this wiki locally