Innehållsförteckning:

Hacka en CFA735/CFA835: 4 steg
Hacka en CFA735/CFA835: 4 steg

Video: Hacka en CFA735/CFA835: 4 steg

Video: Hacka en CFA735/CFA835: 4 steg
Video: 10 FREE Online Courses From Harvard University That Can Pay You US$6,000 A Month With A Side Hustle 2024, Juli
Anonim
Hacka en CFA735/CFA835
Hacka en CFA735/CFA835

Har du ett projekt som behöver en display, en knappsats och lite minne, men den förinstallerade firmware på Crystalfontz CFA735 eller CFA835 -modulen är inte riktigt det du letar efter? Du har tur - du kan hacka dessa moduler för att ladda anpassad firmware.

CFA735 och CFA835 är mångsidiga intelligenta LCD -moduler. Både Crystalfontz CFA735 och CFA835 är baserade på hårdvarumodulen CFA10052, så under denna handledning kommer CFA735 och/eller CFA835 att kallas CFA10052. CFA10052 kan omprogrammeras för att köra din egen anpassade firmware.

  • STMicroelectronics STM32F401 mikrokontroller
  • ARM 32-bitars Cortex ™ -M4 CPU vid 84 MHz
  • 256K blixt, 64K RAM
  • 244 x 68 pixlar bakgrundsbelyst LCD
  • Sitronix ST7529 32 gråskala grafisk LCD -kontroller
  • Buck-boost-omkopplingsmatning möjliggör ett brett matningsspänningsområde
  • Separata omkopplare av LED -ljusstyrka för knappsats och LCD -bakgrundsbelysning
  • 6 knappars bakgrundsbelyst knappsats
  • 4x tvåfärgade (röda/gröna) lysdioder
  • USB2 -gränssnitt
  • microSD -kortplats
  • 5 generella IO -stift (GPIO: er)
  • Flera seriella/SPI/I2C/CAN -gränssnitt (beroende på GPIO -användning).

Denna handledning visar dig hur du byter in den inbyggda programvaran som levereras på en CFA10052 med ny firmware som kommer att:

  1. Visa på LCD -skärmen ett alternerande rutnät med nuvarande bakgrundsbelysning, LCD -kontrast och knappsatsstatusinformation;
  2. Kontrollera bakgrundsbelysningen och LCD -kontrasten med knappsatsen.
  3. Ändra färgen på de fyra lysdioderna från rött till grönt i följd.
  4. Aktivera USART-seriell port på sidhuvud-1-stift 1 och 2 (115200 baud) och upprepa mottagna data.
  5. Aktivera den virtuella USB -porten och upprepa mottagna data till värden.
  6. Inkluderar, men visar inte, åtkomst till läsning/skrivning av uSD.

Naturligtvis kan du skriva din egen firmware och ladda den med hjälp av dessa steg.

VIKTIG NOTERING:

Crystalfontz CFA10052 hårdvarumodul levereras programmerad med en bootloader och CFA735/CFA835 firmware. Bootloader och CFA735/CFA835 firmware är inte öppen källkod och kan inte kopieras från CFA10052 av användaren, inte heller kan de programmeras på CFA10052 av användaren. Om du vill återgå till CFA735/CFA835 -firmware måste du skicka tillbaka den till Crystalfontz för att få den omprogrammerad.

Tillbehör

  • Crystalfontz CFA10052 (hårdvara v1.1 eller senare) modul (CFA735 / CFA835)
  • PC (Windows/Linux/OSX) med STM32CubeIDE och STM32 ST-LINK Utility installerat
  • STMicroelectronics ST-LINK (V2 eller V3) programmeringsgränssnitt
  • CFA10052 programmeringskabel (detaljer nedan)
  • Anpassad firmware (eller använd vår här)
  • Om du använder Windows 7/8/8.1/10 (eller motsvarande serverversioner) och vill testa den virtuella USB -porten måste du ladda ner drivrutiner härifrån. USB-seriell port fungerar utan att behöva ytterligare drivrutiner på Windows 10+, Linux, OS-X.

Steg 1: Samla/skapa förbrukningsmaterial

Samla/skapa tillbehör
Samla/skapa tillbehör

Vi rekommenderar att du använder STM32CubeIDE för att ladda och använda detta exempel på firmware -projekt. STM32CubeIDE är en gratis IDE baserad på Eclipse som har modifierats av STMicroelectronics för att inkludera STM32 -specifika verktyg. IDE kan laddas ner på STM32CubeIDE -webbsidan.

För att upprätthålla korrekt funktion av STM-enhetens konfigurationsverktyg måste du bara redigera enhetskonfigurationsverktyget som skapat källkod mellan matchande "ANVÄNDARKOD BÖRJ xxx" och "ANVÄNDARKOD SLUT xxx" kommentarsblock.

Besluta sedan om du vill kontakta oss för en CFA10052 -programmeringskabel eller om du vill göra din egen. Vi kommer inte att gå över till att göra kabeln i detalj i den här självstudien, men om du vill skapa din egen CFA10052 -programmeringskabel kan du hitta anslutningarna på GitHub -sidan, det bästa sättet att göra detta är att börja med en sexton stift bandkabel och skarva den till kabeln för ST Link.

Steg 2: Radera befintlig fast programvara

Radera befintlig fast programvara
Radera befintlig fast programvara
Radera befintlig fast programvara
Radera befintlig fast programvara

Om din CFA10052 -modul är laddad med den medföljande firmware CFA735 eller CFA835 måste du först radera den avslutande firmware innan du installerar ny firmware. Flashminnet är läs- och skrivskyddat och måste tas bort innan anpassad firmware kan laddas.

Det finns två metoder för att ta bort den installerade firmware:

  1. Koppla bort USB -kabeln (eller strömförsörjningen) från CFA10052 -modulen.
  2. Anslut CFA10052 till ST-LINK med programmeringskabeln (se ovan) och ST-LINK till värddatorn.
  3. Håll upp- och nedknapparna på CFA10052 medan du ansluter USB -kabeln till CFA10052 (eller strömförsörjning). CFA10052 ska nu visa Crystalfontz Bootloader -skärmen.
  4. Kör STM32 ST-LINK Utility. I "Target" -menyn, öppna fönstret "Option Bytes". Välj "Nivå 0" i rutan "Läs ut skydd". Klicka på Apply. Crystalfontz firmware har nu tagits bort och eventuell anpassad firmware kan nu programmeras.

Alternativ metod (om du inte kan gå in i Crystalfontz Bootloader genom att hålla ned tangenterna):

  1. Koppla bort USB -kabeln (eller strömförsörjningen) från CFA10052 -modulen.
  2. Anslut BOOT0-testpunkten (en liten kudde på baksidan av CFA10052-modulen, nära H1-kontakten) till 3,3V eller 5V.
  3. Anslut CFA10052 till ST-LINK med programmeringskabeln (se ovan) och ST-LINK till värddatorn.
  4. Slå på CFA10052 (eller anslut den till USB -ström). Displayen ska vara tom.
  5. Kör STM32 ST-LINK Utility. I "Target" -menyn, öppna fönstret "Option Bytes". I rutan "Read Out Protection", välj "Level 0". Klicka på Apply. Crystalfontz firmware har nu tagits bort och eventuell anpassad firmware kan nu programmeras.
  6. Anslutning av BOOT0 -stift till 3,3V/5V behövs inte längre.

Steg 3: Kompilera och ladda din firmware till CFA10052

Kompilera och ladda din firmware till CFA10052
Kompilera och ladda din firmware till CFA10052

När den medföljande firmware från Crystalfontz har tagits bort är du redo att kompilera och ladda din egen firmware. För den här självstudien har vi levererat alternativ firmware som ger knappsatsen kontroll över bakgrundsbelysningens ljusstyrka och kontrast.

För att kompilera firmware:

  1. Öppna STM32CubeIDE
  2. I Arkiv -menyn väljer du Importera och sedan "Importera befintliga projekt till arbetsytan".
  3. I katalogen rutan, välj katalogen för detta exempel firmware.
  4. Klicka på knappen Slutför.
  5. I projektutforskaren väljer du projektet cfa10052_exempel, öppnar sedan filen Src och "main.c".
  6. Välj "Bygg projekt" på menyn Projekt.

För att programmera och köra firmware på CFA10052:

  1. Koppla bort USB -kabeln (eller strömförsörjningen) från CFA10052 -modulen.
  2. Anslut CFA10052 till ST-LINK med programmeringskabeln (se ovan) och ST-LINK till värddatorn.
  3. Anslut USB -kabeln (eller strömförsörjningen) till CFA10052.
  4. Se till att firmware -projektet har byggts (se steg ovan) och att "Binärer" visas under "cfa10052_example" i Project Explorer.
  5. Om "Binärer" inte syns högerklickar du på projektet "cfa10052_exempel" och väljer Uppdatera.
  6. Välj menyn Kör och sedan "Debug Configurations".
  7. I rutan för felsökningsmåltyper till vänster, högerklicka på "STM32 Cortex-M Application" och välj "Ny konfiguration".
  8. Ett konfigurationsfönster visas. Standardinställningarna är OK. Klicka på Apply och sedan på knappen Stäng.
  9. I menyn Kör, välj "Debug As" och sedan "STM32 Cortex Application". STM32CubeIDE ska nu ansluta till ST-LINK och ladda upp och köra firmware på CFA10052.

Ovanstående steg krävs bara för att ladda projektet för första gången i STM32CubeIDE. Efter att källkodskodändringar har gjorts behövs bara ombyggnad av projektet (Ctrl-B-genväg) och programmering av CFA10052 (tangentgenväg F11).

Firmware kan också laddas via någon av de vanliga STM32-bootloader-metoderna (felsökning är endast tillgänglig med SWD-gränssnittet och en ST-LINK). Om du till exempel använder seriell anslutning kan USART1 användas (RX = H1-Pin1 och TX = H1-Pin2). För mer detaljerad information om STM32-bootloader och gränssnitt, se PDF här.

Steg 4: Licenser

Crystalfontz-levererad källkod tillhandahålls med hjälp av The Unlicense, en licens utan några som helst villkor som tillägger verk till det offentliga området. Olicensierade verk, modifieringar och större verk kan distribueras under olika villkor och utan källkod. Se UNLICENCE -filen eller unlicense.org för mer information.

STM32CubeIDE skapade källkod och STMicroelectronics-bibliotek är Copyright (c) 2019 STMicroelectronics. Alla rättigheter förbehållna. Programvarukomponenten är licensierad av ST enligt BSD 3-Clause-licensen, "Licensen"; Du får inte använda dessa filer utom i enlighet med licensen. Du kan få en kopia av licensen på opensource.org/licenses/BSD-3-Clause.

Rekommenderad: