Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller über SPI identifzieren


von Carsten R. (kaffeetante)


Lesenswert?

Hallo Leute,

ich habe mich heute mal wieder an meinen Hardwarebestand gesetzt und bin 
dabei über folgende Frage gesolpert.

Man steht ja ab und an vor dem Problem, daß man ein Grät hat mit 
unbekanntem Conroller. Nun haben einige Geräte davon eine SPI 
Schnittstelle und es gibt einige Controller die über Signature Bytes 
verfügen, so daß man sie per SPI identifizieren kann.

Das Dumme ist nur, daß das Komando zum auslesen der Signature Bytes 
nicht einheitlich ist, so daß man zumindest den Hersteller schon kennen 
muß, damit man dem Controller die Anfrage sich auszuweisen korrekt 
mitteilen kann.

Kennt jemand eine Software, Datenbank, Website oder Liste mit den 
gängigsten Varianten die Signature Bytes auszulesen? Natürlich kann man 
sich auch per Brute-Force durch die Kombinationen arbeiten und schauen 
was man als Antwort bekommt und hoffen daß man damit etwas anfangen 
kann. Dabei ristkiert man aber das Gerät versehentlich per 
Chip-Erase-Kommando zu bricken oder anderen Unfug auszulösen.

Daher wollte ich mich hier mal umhören ob jemandem so etwas schon zu 
Ohren gekommen ist. Ich konnte bisher nichts Brauchbares finden.

Konkret hatte ich gerade ein Casio SF-3900ER Diary in den Händen und den 
mal aufgeschraubt, da mir das Teil geradezu perfekt für die nächste 
Bastelaktion erschien. Wie so oft bei solchen Geräten sind die Chips 
gehäuselos direkt auf die Platine gesetzt und mit einem Epoxy-Klecks 
versiegelt worden. Aber das SPI-Interface ist eindeutig zu 
identifizieren. Wenn man jetzt noch herausfinden könnte welcher 
Mikrocontroller auf dem Teil verbaut ist.... Aber dies ist auch nur ein 
Beispiel.

Also falls jemand von einem "univeral SPI-Chipidentifier" oder so etwas 
in der Art gehört hat... Natürlich verfügt nicht jeder IC über diese 
Funktion. Aber es wäre schon schön wenn man diese Signature Bytes von 
den gängigsten ICs auslesen könnte.

viele Grüße

Carsten

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Carsten R. schrieb:
> Nun haben einige Geräte davon eine SPI Schnittstelle und es gibt einige
> Controller die über Signature Bytes verfügen, so daß man sie per SPI
> identifizieren kann.

Das geht aber nur, wenn die Programmierung der Controller auch über 
diese SPI-Schnittstelle erfolgt. Das aber ist bei weitem nicht bei allen 
Controllern verbreitet, andere werden mit einem Bootloader über eine 
serielle Schnittstelle, ein JTAG-Interface, oder eine proprietäre 
Abwandlung eines JTAG-Interfaces programmiert -- und manche gar nicht, 
weil sie maskenprogrammiert sind (wie es die Dinge in Deinem Casio-Gerät 
sein dürften).

von holger (Gast)


Lesenswert?

>Also falls jemand von einem "univeral SPI-Chipidentifier" oder so etwas
>in der Art gehört hat.

So etwas gibt es nicht.

von Carsten R. (kaffeetante)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Carsten R. schrieb:
>> Nun haben einige Geräte davon eine SPI Schnittstelle und es gibt einige
>> Controller die über Signature Bytes verfügen, so daß man sie per SPI
>> identifizieren kann.
>
> Das geht aber nur,...
>Das aber ist bei weitem nicht bei allen Controllern verbreitet,...

Ich hätte mich genauer ausdrücken sollen:

Es gibt einige Geräte mit SPI Schnittstelle und es gibt einige 
Controller die über Signature Bytes verfügen, so daß man sie per SPI 
identifizieren kann

Carsten R. schrieb:
> Natürlich verfügt nicht jeder IC über diese
> Funktion. Aber es wäre schon schön wenn man diese Signature Bytes von
> den gängigsten ICs auslesen könnte.

Es geht mir also um eine Übersicht, Zusammenfassung, Software oder 
irgendetwas das den Zugriff auf die ID jener Chips, welche den Zgriff 
auf die Signature Bytes per SPI unterstützen, vereinheitlicht. Mir ist 
klar, daß das Beispielsweise mit einem x-beliebigen SPI-Schieberegister 
nicht geht, weil die Funktion nicht implementiert ist. Aber irgend einen 
Sinn muß es doch haben, daß in den Signature-bytes eine Hersteller-ID 
enthalten ist. Daher hatte ich die Hoffnung daß es wenigstens eine Hand 
voll Hersteller gibt die dieses einigermaßen vereinheitlicht 
unterstützen, denn sonst wäre das Einbinden einer Herstellerkennug 
eigentlich sinnfrei wenn es pro Identifikationsverfahren immer nur einen 
Hersteller gibt.

Wenn es sich dann herausstellt, daß es nur ein einmalig beschreibbares 
Teil oder sogar ein schon ab Werk per maske Programmiertes IC ist dann 
ist es halt so, aber man weiß es dann wenigstens. Dann hat man das Teil 
wenigstens identifiziert. Mir geht es nur um die Identifikation per 
Signature Bytes, wie im Threadtitel beschrieben.

von AndreasH (Gast)


Lesenswert?

Hi,
kann es sein, daß Du SPI und JTAG verwechselt hast?

Andreas

von holger (Gast)


Lesenswert?

>Es geht mir also um eine Übersicht, Zusammenfassung, Software oder
>irgendetwas das den Zugriff auf die ID jener Chips, welche den Zgriff
>auf die Signature Bytes per SPI unterstützen, vereinheitlicht.

So etwas gibt es nicht.

von Carsten R. (kaffeetante)


Lesenswert?

AndreasH schrieb:
> Hi,
> kann es sein, daß Du SPI und JTAG verwechselt hast?

Laut Datenblatt Atmel ATmega bieten diese die Möglichkeit der 
Identifikation sowohl über SPI als auch für JTAG. Suche Signature Byte 
im Datasheet. Es steht bei SPI. Aber auch bei JTAG wird beim Boundary 
Scan etwas ähnliches beschrieben, ähnlich aber nicht identisch. Im 
ersten fall sind es 3 Bytes und im zweiten Fall sind es 4 Bytes (device 
identification register).

holger schrieb:
>>Es geht mir also um eine Übersicht, Zusammenfassung, Software oder
>>irgendetwas das den Zugriff auf die ID jener Chips, welche den Zgriff
>>auf die Signature Bytes per SPI unterstützen, vereinheitlicht.
>
> So etwas gibt es nicht.

Dann muß ich wohl die atmelspezifische Übersicht hier im Forum selbst 
erweitern sobald ich herausgefunden habe mit welchen Chips ich es sonst 
noch zu tun habe. Irgendwie wundert es mich, daß es so etwas nicht geben 
soll. Es könnte nützlich sein, auch wenn es nicht allumfassend wäre/ist.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Carsten R. schrieb:
> Laut Datenblatt Atmel ATmega bieten diese die Möglichkeit der
> Identifikation ...

Ja. Die bieten das. Sonst aber macht das kaum jemand. Und die Welt ist 
nicht Atmel-zentrisch, auch wenn dieses Forum hier manchmal den Eindruck 
erwecken will.

Andere µCs sind auch eindeutig identifizierbar, aber halt auf die von 
ihrem jeweiligen Hersteller vorgesehene völlig andere Art.

von visitor (Gast)


Lesenswert?

Selbst wenn es einen universellen Chip-Identifizierer geben wurde, woher 
weiss man bei einem unbekannten Chip, wo sich die SPI Pins befinden?

von Axel S. (a-za-z0-9)


Lesenswert?

visitor schrieb:
> Selbst wenn es einen universellen Chip-Identifizierer geben wurde, woher
> weiss man bei einem unbekannten Chip, wo sich die SPI Pins befinden?

Yep. Das ist ein Henne-Ei Problem. Um zu wissen, wie man die Chip-ID 
ausliest, muß man erst wissen was das für ein Chip ist, Man braucht also 
eine zusätzliche Identifikationsmöglichkeit. Und wenn man erst mal den 
Hersteller und die Chip-Familie kennt, dann weiß man auch wo man die 
ausgelesene Device-ID nachschlagen muß.

Das viel größere Problem dürfte die Volatilität dieser Information sein. 
Die meisten Hersteller vernichten gnadenlos alle Informationen über 
Bauteile die nicht mehr aktiv sind.


XL

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

visitor schrieb:
> woher weiss man bei einem unbekannten Chip, wo sich die SPI Pins
> befinden?

Die will der Threadstarter bei seinem Casio-Gerät ja irgendwie 
identifiziert haben.

von Carsten R. (kaffeetante)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Die will der Threadstarter bei seinem Casio-Gerät ja irgendwie
> identifiziert haben.

Genau so ist es. Es kommt öfter vor, daß solche Schnittstellen 
geräteintern vorhanden und gekennzeichnet sind, beispielsweise für 
Wartungs- Reperaturzwecke oder Qualitätssicherung oder Programmierung. 
Mal ist es JTAG, mal ist es SPI. In solchen Situationen wäre es schön 
wenn man es etwas vereinfacht testen könnte ob man einen der bekannteren 
Chips mit einem solchen Feature vor der Nase hat. Ich muß nicht jeden 
Exoten identifiziern können. Denn wer will sich schon in wenig 
verbreitete Controller bei Einzelstücken einarbeiten. Das macht ohnehin 
nur Sinn wenn es wahrscheinlich ist, daß man öfter auf solche Controller 
stößt. Aber im Moment sieht der Grundtenor dieses Threads dahingehend 
eher schlecht aus.

Aber Danke für die Teilnahme. So weiß man wenigstens, daß so etwas 
entweder nicht existiert oder zumindest so selten ist, daß es schwer zu 
finden ist.

Rufus Τ. Firefly schrieb:
> Ja. Die bieten das. Sonst aber macht das kaum jemand. Und die Welt...

Dann ist das wohl wieder ein Bispiel für einen gscheiterten Alleingang. 
Schade.

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.