Inhoudsopgave:

Hack een CFA735/CFA835: 4 stappen
Hack een CFA735/CFA835: 4 stappen

Video: Hack een CFA735/CFA835: 4 stappen

Video: Hack een CFA735/CFA835: 4 stappen
Video: CrystalFontz CFA835 Linux Demo 2024, Juli-
Anonim
Hack een CFA735/CFA835
Hack een CFA735/CFA835

Heeft u een project dat een display, een toetsenbord en wat geheugen nodig heeft, maar is de voorgeladen firmware op de Crystalfontz CFA735- of CFA835-module niet helemaal wat u zoekt? Je hebt geluk - je kunt deze modules hacken om aangepaste firmware te laden.

De CFA735 en CFA835 zijn veelzijdige intelligente LCD-modules. Zowel de Crystalfontz CFA735 als de CFA835 zijn gebaseerd op de CFA10052 hardwaremodule, dus tijdens deze tutorial wordt naar de CFA735 en/of CFA835 verwezen als de CFA10052. De CFA10052 kan opnieuw worden geprogrammeerd om uw eigen aangepaste firmware uit te voeren.

  • STMicroelectronics STM32F401 microcontroller
  • ARM 32-bit Cortex™-M4 CPU @ 84 MHz
  • 256K flitser, 64K RAM
  • LCD met achtergrondverlichting van 244 x 68 pixels
  • Sitronix ST7529 32 grijstinten grafische LCD-controller
  • Buck-boost schakelende voeding maakt een breed voedingsspanningsbereik mogelijk
  • Afzonderlijke schakelende LED-helderheidscontrollers voor toetsenbord en LCD-achtergrondverlichting
  • Verlicht toetsenbord met 6 knoppen
  • 4x tweekleurige (rood/groen) LED's
  • USB2-interface
  • microSD-kaartsleuf
  • 5 IO-pinnen voor algemeen gebruik (GPIO's)
  • Meerdere seriële/SPI/I2C/CAN-interfaces (afhankelijk van GPIO-gebruik).

In deze zelfstudie wordt uitgelegd hoe u de firmware die op een CFA10052 wordt geleverd, kunt vervangen door nieuwe firmware die:

  1. Weergeven op het LCD-scherm een alternerend raster, met huidige achtergrondverlichting, LCD-contrast en informatie over de status van het toetsenbord;
  2. Regel de achtergrondverlichting en het LCD-contrast met behulp van het toetsenbord.
  3. Verander achtereenvolgens de kleur van de vier LED's van rood naar groen.
  4. Schakel de USART seriële poort op Header-1 pinnen 1 & 2 (115200 baud) in en echo alle ontvangen gegevens.
  5. Schakel de virtuele seriële USB-poort in en echo alle ontvangen gegevens terug naar de host.
  6. Omvat, maar demonstreert niet, usD lees-/schrijftoegang tot bestanden.

Natuurlijk kunt u uw eigen firmware schrijven en deze laden met behulp van deze stappen.

BELANGRIJKE NOTITIE:

De Crystalfontz CFA10052 hardwaremodule wordt geleverd met een bootloader en CFA735/CFA835 firmware. De bootloader en CFA735/CFA835-firmware zijn niet open-source en kunnen niet door de gebruiker van de CFA10052 worden gekopieerd, noch kunnen ze door de gebruiker op de CFA10052 worden geprogrammeerd. Als u uiteindelijk terug wilt naar de CFA735/CFA835-firmware, moet u deze terugsturen naar Crystalfontz om hem opnieuw te laten programmeren.

Benodigdheden

  • Crystalfontz CFA10052 (hardware v1.1 of hoger) Module (CFA735/CFA835)
  • PC (Windows/Linux/OSX) met STM32CubeIDE en STM32 ST-LINK Utility geïnstalleerd
  • STMicroelectronics ST-LINK (V2 of V3) programmeerinterface
  • CFA10052 programmeerkabel (details hieronder)
  • Aangepaste firmware (of gebruik de onze hier)
  • Als u Windows 7/8/8.1/10 (of gelijkwaardige serverversies) gebruikt en de virtuele seriële USB-poort wilt testen, moet u hier stuurprogramma's downloaden. De seriële USB-poort werkt zonder dat er extra stuurprogramma's nodig zijn op Windows 10+, Linux, OS-X.

Stap 1: Verzamel/maak benodigdheden

Benodigdheden verzamelen/maken
Benodigdheden verzamelen/maken

We raden aan om de STM32CubeIDE te gebruiken om dit voorbeeldfirmwareproject te laden en te gebruiken. STM32CubeIDE is een gratis IDE op basis van Eclipse die door STMicroelectronics is aangepast om STM32-specifieke tools op te nemen. De IDE kan worden gedownload op de STM32CubeIDE-webpagina.

Om de correcte werking van de STM-apparaatconfiguratietool te behouden, hoeft u alleen de broncode van de apparaatconfiguratietool te bewerken tussen de overeenkomende opmerkingenblokken "GEBRUIKERSCODE BEGIN xxx" en "GEBRUIKERSCODE EINDE xxx".

Bepaal vervolgens of u contact met ons opneemt voor een CFA10052 programmeerkabel of om uw eigen kabel te maken. We gaan in deze tutorial niet in detail in op het maken van de kabel, maar als je je eigen CFA10052 programmeerkabel wilt maken, kun je de aansluitingen vinden op de GitHub-pagina, de beste manier om dit te doen is om te beginnen met een zestienpolige lintkabel en splits deze op de kabel voor de ST Link.

Stap 2: Wis bestaande firmware

Bestaande firmware wissen
Bestaande firmware wissen
Bestaande firmware wissen
Bestaande firmware wissen

Als uw CFA10052-module is geladen met de meegeleverde CFA735- of CFA835-firmware, moet u eerst de bestaande firmware wissen voordat u nieuwe firmware installeert. Het flashgeheugen is beveiligd tegen lezen en schrijven en moet worden verwijderd voordat aangepaste firmware kan worden geladen.

Er zijn twee methoden om de geïnstalleerde firmware te verwijderen:

  1. Koppel de USB-kabel (of voeding) los van de CFA10052-module.
  2. Sluit de CFA10052 aan op de ST-LINK met behulp van de programmeerkabel (zie hierboven), en de ST-LINK op de host-pc.
  3. Houd de toetsen omhoog en omlaag op de CFA10052 ingedrukt terwijl u de USB-kabel in de CFA10052 (of voeding) steekt. De CFA10052 zou nu het Crystalfontz Bootloader-scherm moeten tonen.
  4. Voer het STM32 ST-LINK-hulpprogramma uit. Open in het menu "Doel" het venster "Optiebytes". Selecteer in het vak "Leesbeveiliging" de optie "Niveau 0". Klik op Toepassen. De Crystalfontz-firmware is nu verwijderd en eventuele aangepaste firmware kan nu worden geprogrammeerd.

Alternatieve methode (als u de Crystalfontz Bootloader niet kunt openen door de toetsen ingedrukt te houden):

  1. Koppel de USB-kabel (of voeding) los van de CFA10052-module.
  2. Sluit het BOOT0-testpunt (een kleine pad aan de achterkant van de CFA10052-module, vlakbij de H1-connector) aan op 3,3V of 5V.
  3. Sluit de CFA10052 aan op de ST-LINK met behulp van de programmeerkabel (zie hierboven), en de ST-LINK op de host-pc.
  4. Schakel de CFA10052 in (of sluit hem aan op USB-voeding). Het display moet leeg zijn.
  5. Voer het STM32 ST-LINK-hulpprogramma uit. Open in het menu "Target" het venster "Option Bytes". Selecteer in het vak "Read Out Protection" "Level 0". Klik op Toepassen. De Crystalfontz-firmware is nu verwijderd en eventuele aangepaste firmware kan nu worden geprogrammeerd.
  6. Aansluiting van de BOOT0-pin op 3,3V/5V is niet meer nodig.

Stap 3: Compileer en laad uw firmware op de CFA10052

Compileer en laad uw firmware op de CFA10052
Compileer en laad uw firmware op de CFA10052

Nadat de door Crystalfontz geleverde firmware is verwijderd, bent u klaar om uw eigen firmware te compileren en te laden. Voor deze tutorial hebben we een aantal alternatieve firmware geleverd waarmee het toetsenbord de helderheid van de achtergrondverlichting en het displaycontrast kan regelen.

Om de firmware te compileren:

  1. Open de STM32CubeIDE
  2. Kies in het menu Bestand de optie Importeren en vervolgens "Bestaande projecten importeren in werkruimte".
  3. Selecteer in het hoofdmapvak de map van deze voorbeeldfirmware.
  4. Klik op de knop Voltooien.
  5. Selecteer in de Projectverkenner het project cfa10052_example en open vervolgens het Src- en "main.c"-bestand.
  6. Selecteer in het menu Project "Project bouwen".

Om de firmware op de CFA10052 te programmeren en uit te voeren:

  1. Koppel de USB-kabel (of voeding) los van de CFA10052-module.
  2. Sluit de CFA10052 aan op de ST-LINK met behulp van de programmeerkabel (zie hierboven), en de ST-LINK op de host-pc.
  3. Sluit de USB-kabel (of voeding) aan op de CFA10052.
  4. Zorg ervoor dat het firmwareproject is gebouwd (zie bovenstaande stappen) en "Binaries" verschijnt onder "cfa10052_example" in de Projectverkenner.
  5. Als "Binaries" niet zichtbaar is, klikt u met de rechtermuisknop op het project "cfa10052_example" en selecteert u Vernieuwen.
  6. Selecteer het menu Uitvoeren en vervolgens "Debug-configuraties".
  7. Klik in het selectievak voor doeltypen voor foutopsporing aan de linkerkant met de rechtermuisknop op "STM32 Cortex-M-toepassing" en selecteer "Nieuwe configuratie".
  8. Er wordt een configuratievenster weergegeven. De standaardinstellingen zijn OK. Klik op Toepassen en vervolgens op Sluiten.
  9. Selecteer in het menu Uitvoeren "Debug As" en vervolgens "STM32 Cortex Application". STM32CubeIDE moet nu verbinding maken met de ST-LINK en de firmware uploaden en uitvoeren op de CFA10052.

De bovenstaande stappen zijn alleen vereist bij het voor de eerste keer laden van het project in STM32CubeIDE. Nadat de broncode van de firmware is gewijzigd, is alleen het opnieuw opbouwen van het project (Ctrl-B-sneltoets) en het programmeren van de CFA10052 (F11-sneltoets) nodig.

Firmware kan ook worden geladen via een van de normale STM32-bootloadermethoden (foutopsporing is alleen beschikbaar met behulp van de SWD-interface en een ST-LINK). Als u bijvoorbeeld een seriële verbinding gebruikt, kan USART1 worden gebruikt (RX=H1-Pin1 en TX=H1-Pin2). Zie de PDF hier voor meer gedetailleerde informatie over de STM32-bootloader en interfaces.

Stap 4: Licenties

De door Crystalfontz geleverde broncode wordt geleverd met behulp van The Unlicense, een licentie zonder enige voorwaarden die werken aan het publieke domein opdraagt. Werken zonder licentie, wijzigingen en grotere werken mogen onder andere voorwaarden en zonder broncode worden verspreid. Zie het UNLICENCE-bestand of unlicense.org voor details.

Door STM32CubeIDE gemaakte broncode en STMicroelectronics-bibliotheken vallen onder Copyright (c) 2019 STMicroelectronics. Alle rechten voorbehouden. De softwarecomponent is in licentie gegeven door ST onder de BSD 3-Clause-licentie, de "Licentie"; U mag deze bestanden alleen gebruiken in overeenstemming met de Licentie. U kunt een kopie van de Licentie verkrijgen op opensource.org/licenses/BSD-3-Clause.

Aanbevolen: