Den internen IC einer Computermaus neu programmieren?


7

Ich habe eine Maus mit einem internen IC: SPCP168A . Nachdem ich darüber gelesen hatte, stellte ich fest, dass sie speziell für die Mausfunktionalität entwickelt und programmiert wurde. Ich bin daran interessiert, das Gerät neu zu programmieren, um seine "Kamera" (160 Bilder / s) verwenden zu können. Meine Fragen sind: Kann ich es neu programmieren oder ist es ein OTP? Hat jemand etwas ähnliches gemacht?


Ich habe Artikel gesehen, die einen
hobbybasierten

Die Maus sendet Uart- oder Ps / 2-Daten mit Informationen über ihre Relativbewegung. Es ist einfach, dieses Signal an anderer Stelle zu verwenden. Was ich nicht tun werde, ist, den Frame dazu zu bringen, ihn mit einem anderen Algorithmus zu verarbeiten. (Es gibt einen anderen Sensor / IC, der das macht, dh mehrere Bilder pro Sekunde aufnehmen, aber ich hatte gehofft, diesen wiederzuverwenden, und es scheint auch eine interessante Herausforderung zu sein (wenn es natürlich möglich ist))
Ernest Dujo

1
Von Interesse vielleicht: hackaday.com/2017/07/29/…

Antworten:


14

Die Spezifikationen für diesen bestimmten Chip (SPCP168A) zeigen keinen expliziten seriellen / SPI-Anschluss. Außerdem gibt es in der Blogosphäre keinen Hinweis darauf, dass dieser spezielle Chip über Optionen zum Aktualisieren der Feldfirmware verfügt. Es ist also sehr wahrscheinlich, dass es von einem Masken-ROM ausgeführt wird.

Es gibt jedoch andere optische Mäuse auf dem Markt, die auf der ursprünglich patentierten Avago-Technologie basieren. Der Hauptchip ADNS-2051 verfügt über eine Schnittstelle zu einer MCU, sowohl einige serielle als auch "Quadraturausgänge". Es gibt einige Hack-Beispiele, die diesen Chip als 16x16-Videomatrix mit Arduino verwenden.


12

Ich bin mir nicht einmal sicher, ob die MCU in diesem IC überhaupt über programmierbaren Speicher verfügt - vielleicht ein paar Bytes, um ein benutzerdefiniertes USB-Gerät und eine Hersteller-ID festzulegen, aber das ist es wahrscheinlich. (Rest wäre ROM)

Ich bin mir ziemlich sicher, dass es speziell so konzipiert ist, dass die Relativbewegung direkt aus der Kamerabeobachtung mit Hardware berechnet wird. Das lässt sich sehr einfach in Hardware umwandeln (und in MCU-Software ist es schwieriger, dies schnell genug zu tun).

Ich fürchte, dies ist nicht der IC, den Sie suchen.

Aber keine Sorge, es gibt etwas teurere Mäuse, die mit übergroßen MCUs geliefert werden, um den Sensor an USB anzuschließen und komplexere Funktionen zu implementieren. Wenn ich nach Reprogrammierbarkeit suchen sollte, dann dort. Es gibt auch schon Leute, die gezeigt haben, dass sie schädliche Software auf einer Gamer-Maus ausführen können.


5

Um die Herstellungskosten so niedrig wie möglich zu halten, kann der speziell entworfene Chip ein 100% iges Zustandsmaschinendesign in Hardware sein. Selbst wenn es eine interne MCU mit Firmware gab, ist es eine gute Möglichkeit, dass sie im maskierten ROM gespeichert wird.


1
Lesen Sie das verknüpfte Datenblatt. Es heißt ausdrücklich, dass es eine MCU gibt. (Ja, ich weiß, dass das Datenblatt erst verlinkt wurde, als Pipe bearbeitet wurde)
The Photon

2
@ThePhoton Ich würde immer noch annehmen, dass Michael Recht hat, dass die Firmware fast ausschließlich im ROM gespeichert ist - wirklich keine Verwendung für Flash in einem Einzweck-SoC mit kostengünstiger Massenproduktion.
Marcus Müller

4

Ich habe das schon einmal für ein Schulrobotikprojekt gemacht. Ziel war es, Positionsinformationen von der Maus als Positionssensor für einen Roboter zu verwenden.

Folgendes habe ich gefunden:

1) Alle Mäuse, die ich verwendet habe, hatten ASICS (und ich wette, dass alle dies tun)

2) Der ASIC, der Informationen hatte, war eine chinesische Maus und hatte ein Datenblatt (anstatt zu versuchen, ein Datenblatt für eine bestimmte Maus zu finden, suchte ich verschiedene Mäuse nach einer, für die ich ein Datenblatt finden konnte).

3) Die Maus, für die ich ein Datenblatt hatte, hatte zwei Probleme

  • Die Daten, die von der Maus zurückkamen, waren keine absolute Position, sondern a ΔxΔy Position war es laut und nicht nützlich für die absolute Position, aber nützlich für Geschwindigkeit oder Beschleunigung.

  • Nach einigem Reverse Engineering konnte die Maus abgefragt werden, um die Werte der Kamera zu ermitteln. Dies konnte jedoch nur in Intervallen von ~ 1 Sekunde durchgeführt werden. Nicht sehr nützlich.


"Nach einigem Reverse Engineering konnte die Maus abgefragt werden, um die Werte der Kamera zu ermitteln. Dies konnte jedoch nur in Intervallen von ~ 1 Sekunde durchgeführt werden. Nicht sehr nützlich." Können Sie uns mitteilen, wie Sie von der Relativbewegung zu den Kamerawerten gekommen sind?
Ernest Dujo

1
Die Maus hatte ein Register, um die Pixel der Kamera abzufragen. Das Datenblatt enthielt jedoch eine Beschreibung dieser Register, bei denen dies bei Ihnen nicht der Fall ist. Es sieht so aus, als ob auf Ihrem Mauscontroller diese Register nicht im bereitgestellten Datenblatt aufgeführt sind. So wie ich es gemacht habe, habe ich mir die Register im Datenblatt angesehen und dann die Treiber angesehen und mit einem in C geschriebenen Programm auf die verschiedenen Register zugegriffen.
Voltage Spike

Sie hatten also im Grunde eine Möglichkeit, sich mit der Schaltung (SPI, I²C) zu verbinden?
Ernest Dujo

Ich kann mich nicht erinnern, ob wir die vorhandene Hardware verwendet haben oder ob wir einen Konverter verwenden mussten. Ich glaube, ich habe eine Maus gefunden, in die bereits ein FCI-zu-SPI-Konverter eingebaut ist.
Spannungsspitze
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.