Hallo allerseits, ich erstelle eine Anwendung in Python und würde damit per USB mit einen Microcontrollerboard kommunizieren. Hierzu möchte ich erkennen, welcher Prozessor genau angeschlossen ist. Gibt es eine Möglichkeit, dieses in Form einer CPUID anwendungsseitig mit Python zu erfahren? Vielen Dank Robert
Da die Glaskugel gerade zum Polieren außer Haus ist, wäre es nett, wenn du uns Näheres zum Prozessor sagen würdest, Hersteller und Typ so zum Anfang wäre schon mal gut.
Na da ist doch genau das, was ich wissen will. Wenn ich es wüsste, brauche ich nicht zu fragen. Glaskugelfrei. Robert
Nun ich mach das für meine CPUs regelmäßig allerdings in C. Also ja das ist kein Problem.
Ich gehe mal davon aus, dass du dir dann für die USB Kommunikation auch ein eigenes Protokoll (Befehle) definierst. Wenn du mehrere Boards hast (mit je einem anderen µC), dann könntest du "low-level Befehle" definieren, die alle Boards unterstützen, z.B. getCPUID. Dann kannst du unterscheiden was angeschlossen ist, da sich die Befehle bzw. Funktionalität von den einzelnen Boards unterscheiden.
R. F. schrieb: > Na da ist doch genau das, was ich wissen will. Nun, wenn du gerade irgendeinen x-beliebigen Prozessor da angeschlossen hast und jetzt per USB wissen willst, welcher das ist, wird's schwierig, denn nicht alle Prozessoren dieser Welt haben so eine ID, und die, die so eine haben, lassen sich nicht alle auf exakt die selbe Art auslesen. Manche µCs haben nicht mal selber USB. Die Auswahl wenigstens etwas einzuschränken, wäre da sicherlich sehr hilfreich, wenn das Auslesen der ID nicht zur Lebensaufgabe werden soll. > Wenn ich es wüsste, brauche ich nicht zu fragen. Ist denn keine Typenbezeichnung aufgedruckt?
R. F. schrieb: > Na da ist doch genau das, was ich wissen will. Dann ist die Antwort eindeutig: Nein. Jeder Hersteller kocht sein eigenes Süppchen, nichts ist zueinander kompatibel.
Ich will in Abhängigkeit von der CPU Entscheidungen in der Anwendung treffen, derzeit sind nur avr, ARM und PIC vorgesehen.
R. F. schrieb: > Ich will in Abhängigkeit von der CPU Entscheidungen in der Anwendung > treffen, derzeit sind nur avr, ARM und PIC vorgesehen. Einfach in die USB Firmware jeder Familie ein usb comand einbauen was dir die jeweilige ChipId liefert und schon kannst du das unter Phyton auswerten. Mir ist natürlich klar dass du was anderes hören willst, aber das wäre ein Weg. Eine Alternative wäre im Datenblatt zu schauen ob es einen eingebauten Weg gibt die ID über USB zu übertragen
Die Programmiersprache Python an sich hat dazu keine Standard-Funktion.
Wenn sie existiert, dann als hardwarespezifisches Modul. Das kann dann
aber nur funktionieren, wenn Python und das Modul auf dem
Mikrocontroller laufen.
In diesem Fall musst du die Doku deiner Mikro-Python Implementierung
schauen.
Falls es Dir um ein Python Script auf dem PC geht: In diesem Fall musst
du irgendwie mit dem Mikrocontroller kommunizieren. Also erfordert dies
eine Firmware auf dem Mikrocontroller, die irgendwie die CPUID ausliest
und an den PC weiter reicht. Auf dem PC muss dein Python Script mit der
Firmware auf dem Mikrocontroller so kommunizieren, wie diese Firmware
das verlangt.
Eine Standardlösung wirst du vergeblich suchen.
> derzeit sind nur avr, ARM und PIC vorgesehen
Ist dir bewusst, dass das mehr als 10.000 unterschiedliche Modelle von
mehr als 10 Firmen sind?
R. F. schrieb: > ich erstelle eine Anwendung in Python und würde damit per USB mit einen > Microcontrollerboard kommunizieren. Hierzu möchte ich erkennen, welcher > Prozessor genau angeschlossen ist. > > Gibt es eine Möglichkeit, dieses in Form einer CPUID anwendungsseitig > mit Python zu erfahren? Nein, das gibts nicht. Aber das angeschlosssene USB-Gerät identifiziert sich doch mit Hersteller-ID, Produkt-ID, Hersteller-String, Produkt-String und Seriennummern-String. Damit solltest Du rausfinden können, was an anderen Ende hängt und die Ansteuerung entsprechend wählen. So ist es bei USB-Geräten vorgesehen. Die Strings und IDs musst Du im USB-Stack auf der anderen Seite halt passend programmieren. fchk
Frank K. schrieb: > Du im USB-Stack auf der anderen Seite halt passend programmieren Das ist ein mit vernünftigem Aufwand gangbarer Weg, identifiziert zunächst aber das Board und nicht die CPU. Da ist es wohl am einfachsten, der TO legt sich auf dem PC eine Datenbank an, wo für jedes Board alles vermerkt ist was er wissen will. Ist ja alles sein eigenes Zeug, wenn ich es richtig vertanden habe - aber vielleicht kommt ja noch das eine oder andere Salamischeibchen. Georg
R. F. schrieb: > ich erstelle eine Anwendung in Python und würde damit per USB mit > einen Microcontrollerboard kommunizieren. USB erlaubt eine Menge verschiedener Kommunikationsprotokolle. Und keines davon kommt ohne die Mitwirkung des µC aus. Sprich: wenn du die µC-Seite programmierst, dann kannst du da beliebige Abfragen vorsehen. > Hierzu möchte ich erkennen, welcher Prozessor genau angeschlossen ist. > Gibt es eine Möglichkeit, dieses in Form einer CPUID anwendungsseitig > mit Python zu erfahren? Klar. Du mußt deinem Gerät nur beibringen, daß es diese Information über das gewählte Protokoll an den Host weitergibt. Z.B. auf Anfrage. Frank K. schrieb: > das angeschlosssene USB-Gerät identifiziert > sich doch mit Hersteller-ID, Produkt-ID, Hersteller-String, > Produkt-String und Seriennummern-String. Damit solltest Du rausfinden > können, was an anderen Ende hängt georg schrieb: > identifiziert zunächst aber das Board und nicht die CPU Wenn der TE den USB-Stack in Software macht oder anderweitig Einfluß auf die USB-Deskriptoren nehmen kann (z.B. indem er ein passend programmiertes EEPROM an den USB-Chip hängt), dann kann er da alles reinschreiben, was er mag. Auch eine CPU-Id.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.