Inhaltsverzeichnis:

CFA735/CFA835 hacken – Gunook
CFA735/CFA835 hacken – Gunook

Video: CFA735/CFA835 hacken – Gunook

Video: CFA735/CFA835 hacken – Gunook
Video: Repurposed Tape Deck 2024, Juli
Anonim
Hacken Sie einen CFA735/CFA835
Hacken Sie einen CFA735/CFA835

Haben Sie ein Projekt, das ein Display, eine Tastatur und etwas Speicher benötigt, aber die vorinstallierte Firmware auf dem Crystalfontz CFA735- oder CFA835-Modul ist nicht ganz das, wonach Sie suchen? Sie haben Glück - Sie können diese Module hacken, um benutzerdefinierte Firmware zu laden.

CFA735 und CFA835 sind vielseitige intelligente LCD-Module. Sowohl der Crystalfontz CFA735 als auch der CFA835 basieren auf dem CFA10052-Hardwaremodul, daher werden in diesem Tutorial CFA735 und/oder CFA835 als CFA10052 bezeichnet. Der CFA10052 kann umprogrammiert werden, um Ihre eigene benutzerdefinierte Firmware auszuführen.

  • STMicroelectronics STM32F401 Mikrocontroller
  • ARM 32-Bit Cortex™-M4 CPU @ 84 MHz
  • 256K Flash, 64K RAM
  • 244 x 68 Pixel LCD mit Hintergrundbeleuchtung
  • Sitronix ST7529 32 Graustufen-Grafik-LCD-Controller
  • Buck-Boost-Schaltnetzteil ermöglicht einen weiten Versorgungsspannungsbereich
  • Separate schaltende LED-Helligkeitsregler für Tastatur- und LCD-Hintergrundbeleuchtung
  • 6-Tasten-Tastatur mit Hintergrundbeleuchtung
  • 4x zweifarbige (rot/grün) LEDs
  • USB2-Schnittstelle
  • microSD-Kartensteckplatz
  • 5 Allzweck-IO-Pins (GPIOs)
  • Mehrere serielle/SPI/I2C/CAN-Schnittstellen (je nach GPIO-Nutzung).

Dieses Tutorial zeigt Ihnen, wie Sie die Firmware eines CFA10052 durch eine neue Firmware ersetzen, die:

  1. Anzeige eines abwechselnden Rasters auf dem LCD mit aktueller Hintergrundbeleuchtung, LCD-Kontrast und Tastaturstatusinformationen;
  2. Steuern Sie die Hintergrundbeleuchtung und den LCD-Kontrast über die Tastatur.
  3. Ändern Sie nacheinander die Farbe der vier LEDs von Rot auf Grün.
  4. Aktivieren Sie den seriellen USART-Port an den Pins 1 und 2 von Header-1 (115200 Baud) und geben Sie alle empfangenen Daten aus.
  5. Aktivieren Sie den virtuellen seriellen USB-Port und senden Sie alle empfangenen Daten an den Host zurück.
  6. Beinhaltet, aber nicht demonstriert, uSD-Lese-/Schreibzugriff auf Dateien.

Natürlich können Sie Ihre eigene Firmware schreiben und mit diesen Schritten laden.

WICHTIGER HINWEIS:

Das Crystalfontz CFA10052 Hardwaremodul wird mit einem Bootloader und CFA735/CFA835 Firmware programmiert geliefert. Der Bootloader und die CFA735/CFA835-Firmware sind nicht Open Source und können vom Benutzer weder vom CFA10052 kopiert noch vom Benutzer auf den CFA10052 programmiert werden. Wenn Sie am Ende zur CFA735/CFA835-Firmware zurückkehren möchten, müssen Sie sie zur Neuprogrammierung an Crystalfontz zurücksenden.

Lieferungen

  • Crystalfontz CFA10052 (Hardware v1.1 oder höher) Modul (CFA735/CFA835)
  • PC (Windows/Linux/OSX) mit installiertem STM32CubeIDE und STM32 ST-LINK Utility
  • STMicroelectronics ST-LINK (V2 oder V3) Programmierschnittstelle
  • CFA10052 Programmierkabel (Details unten)
  • Benutzerdefinierte Firmware (oder verwenden Sie unsere hier)
  • Wenn Sie Windows 7/8/8.1/10 (oder gleichwertige Serverversionen) verwenden und den virtuellen seriellen USB-Port testen möchten, müssen Sie die Treiber von hier herunterladen. Der serielle USB-Port funktioniert ohne zusätzliche Treiber unter Windows 10+, Linux, OS-X.

Schritt 1: Vorräte sammeln/erstellen

Vorräte sammeln/erstellen
Vorräte sammeln/erstellen

Wir empfehlen die Verwendung des STM32CubeIDE zum Laden und Verwenden dieses Beispiel-Firmware-Projekts. STM32CubeIDE ist eine kostenlose auf Eclipse basierende IDE, die von STMicroelectronics modifiziert wurde, um STM32-spezifische Tools zu enthalten. Die IDE kann auf der STM32CubeIDE-Webseite heruntergeladen werden.

Um den korrekten Betrieb des STM-Gerätekonfigurationstools aufrechtzuerhalten, müssen Sie nur den vom Gerätekonfigurationstool erstellten Quellcode zwischen den übereinstimmenden Kommentarblöcken "USER CODE BEGIN xxx" und "USER CODE END xxx" bearbeiten.

Entscheiden Sie als nächstes, ob Sie uns für ein CFA10052-Programmierkabel kontaktieren oder Ihr eigenes herstellen möchten. Wir werden in diesem Tutorial nicht auf die Herstellung des Kabels im Detail eingehen, aber wenn Sie Ihr eigenes CFA10052-Programmierkabel herstellen möchten, finden Sie die Anschlüsse auf der GitHub-Seite. Am besten beginnen Sie mit a 16-poliges Flachbandkabel und spleißen Sie es an das Kabel für den ST Link an.

Schritt 2: Vorhandene Firmware löschen

Vorhandene Firmware löschen
Vorhandene Firmware löschen
Vorhandene Firmware löschen
Vorhandene Firmware löschen

Wenn Ihr CFA10052-Modul mit der mitgelieferten CFA735- oder CFA835-Firmware geladen ist, müssen Sie zuerst die vorhandene Firmware löschen, bevor Sie eine neue Firmware installieren. Der Flash-Speicher ist lese- und schreibgeschützt und muss entfernt werden, bevor benutzerdefinierte Firmware geladen werden kann.

Es gibt zwei Methoden zum Entfernen der installierten Firmware:

  1. Trennen Sie das USB-Kabel (oder Netzteil) vom CFA10052-Modul.
  2. Verbinden Sie den CFA10052 über das Programmierkabel (siehe oben) mit dem ST-LINK und den ST-LINK mit dem Host-PC.
  3. Halten Sie die Auf- und Ab-Tasten am CFA10052 gedrückt, während Sie das USB-Kabel an den CFA10052 (oder das Netzteil) anschließen. Der CFA10052 sollte nun den Crystalfontz Bootloader-Bildschirm anzeigen.
  4. Führen Sie das STM32 ST-LINK-Dienstprogramm aus. Öffnen Sie im Menü "Ziel" das Fenster "Optionsbytes". Wählen Sie im Feld "Ausleseschutz" die Option "Stufe 0". Klicken Sie auf Übernehmen. Die Crystalfontz-Firmware wurde jetzt entfernt und jede benutzerdefinierte Firmware kann jetzt programmiert werden.

Alternative Methode (wenn Sie den Crystalfontz Bootloader nicht öffnen können, indem Sie die Tasten gedrückt halten):

  1. Trennen Sie das USB-Kabel (oder Netzteil) vom CFA10052-Modul.
  2. Verbinden Sie den BOOT0-Testpunkt (ein kleines Pad auf der Rückseite des CFA10052-Moduls, in der Nähe des H1-Anschlusses) mit 3,3 V oder 5 V.
  3. Verbinden Sie den CFA10052 über das Programmierkabel (siehe oben) mit dem ST-LINK und den ST-LINK mit dem Host-PC.
  4. Schalten Sie den CFA10052 ein (oder schließen Sie ihn an die USB-Stromversorgung an). Die Anzeige sollte leer sein.
  5. Führen Sie das STM32 ST-LINK-Dienstprogramm aus. Öffnen Sie im Menü "Ziel" das Fenster "Optionsbytes". Wählen Sie im Feld "Ausleseschutz" die Option "Stufe 0". Klicken Sie auf Übernehmen. Die Crystalfontz-Firmware wurde jetzt entfernt und jede benutzerdefinierte Firmware kann jetzt programmiert werden.
  6. Der Anschluss des BOOT0-Pins an 3.3V/5V wird nicht mehr benötigt.

Schritt 3: Kompilieren und laden Sie Ihre Firmware auf den CFA10052

Kompilieren und laden Sie Ihre Firmware auf den CFA10052
Kompilieren und laden Sie Ihre Firmware auf den CFA10052

Nachdem die von Crystalfontz gelieferte Firmware entfernt wurde, können Sie Ihre eigene Firmware kompilieren und laden. Für die Zwecke dieses Tutorials haben wir einige alternative Firmware bereitgestellt, die die Steuerung der Helligkeit der Hintergrundbeleuchtung und des Displaykontrasts über die Tastatur ermöglicht.

So kompilieren Sie die Firmware:

  1. Öffnen Sie die STM32CubeIDE
  2. Wählen Sie im Menü „Datei“die Option „Importieren“und dann „Vorhandene Projekte in den Arbeitsbereich importieren“.
  3. Wählen Sie im Stammverzeichnis das Verzeichnis dieser Beispiel-Firmware aus.
  4. Klicken Sie auf die Schaltfläche Fertig stellen.
  5. Wählen Sie im Projekt-Explorer das Projekt cfa10052_example aus, öffnen Sie dann die Datei Src und "main.c".
  6. Wählen Sie im Menü Projekt die Option "Projekt erstellen".

So programmieren und starten Sie die Firmware auf dem CFA10052:

  1. Trennen Sie das USB-Kabel (oder Netzteil) vom CFA10052-Modul.
  2. Verbinden Sie den CFA10052 mit dem Programmierkabel (siehe oben) mit dem ST-LINK und den ST-LINK mit dem Host-PC.
  3. Verbinden Sie das USB-Kabel (oder das Netzteil) mit dem CFA10052.
  4. Stellen Sie sicher, dass das Firmware-Projekt erstellt wurde (siehe Schritte oben) und "Binaries" unter "cfa10052_example" im Projekt-Explorer angezeigt wird.
  5. Wenn "Binärdateien" nicht sichtbar sind, klicken Sie mit der rechten Maustaste auf das Projekt "cfa10052_example" und wählen Sie Aktualisieren.
  6. Wählen Sie das Menü Ausführen und dann "Debug-Konfigurationen".
  7. Klicken Sie im Auswahlfeld für Debug-Zieltypen auf der linken Seite mit der rechten Maustaste auf "STM32 Cortex-M-Anwendung" und wählen Sie "Neue Konfiguration".
  8. Ein Konfigurationsfenster wird angezeigt. Die Standardeinstellungen sind OK. Klicken Sie auf Übernehmen und dann auf Schließen.
  9. Wählen Sie im Ausführen-Menü "Debug As" und dann "STM32 Cortex Application". STM32CubeIDE sollte sich nun mit dem ST-LINK verbinden und die Firmware auf den CFA10052 hochladen und ausführen.

Die obigen Schritte sind nur beim erstmaligen Laden des Projekts in STM32CubeIDE erforderlich. Nachdem Änderungen am Firmware-Quellcode vorgenommen wurden, ist nur der Neuaufbau des Projekts (Strg-B-Kürzel) und die Programmierung des CFA10052 (F11-Tastenkürzel) erforderlich.

Firmware kann auch über eine der normalen STM32-Bootloader-Methoden geladen werden (Debugging ist nur über die SWD-Schnittstelle und einen ST-LINK möglich). Wenn Sie beispielsweise eine serielle Verbindung verwenden, kann USART1 verwendet werden (RX=H1-Pin1 und TX=H1-Pin2). Detailliertere Informationen zum STM32-Bootloader und den Schnittstellen finden Sie im PDF hier.

Schritt 4: Lizenzen

Der von Crystalfontz bereitgestellte Quellcode wird unter Verwendung von The Unlicense bereitgestellt, einer Lizenz ohne jegliche Bedingungen, die Werke der Public Domain widmet. Nicht lizenzierte Werke, Modifikationen und umfangreichere Werke können unter anderen Bedingungen und ohne Quellcode verbreitet werden. Siehe die Datei UNLICENCE oder unlicense.org für Details.

Der von STM32CubeIDE erstellte Quellcode und die STMicroelectronics-Bibliotheken unterliegen dem Copyright (c) 2019 von STMicroelectronics. Alle Rechte vorbehalten. Die Softwarekomponente wird von ST unter der BSD 3-Klausel-Lizenz, der "Lizenz" lizenziert; Sie dürfen diese Dateien nur in Übereinstimmung mit der Lizenz verwenden. Eine Kopie der Lizenz erhalten Sie unter opensource.org/licenses/BSD-3-Clause.

Empfohlen: