Cuprins:

Hackează un CFA735 / CFA835: 4 pași
Hackează un CFA735 / CFA835: 4 pași

Video: Hackează un CFA735 / CFA835: 4 pași

Video: Hackează un CFA735 / CFA835: 4 pași
Video: Raspberry Pi, USB-Serial, Crystalfonts CFA633 2024, Noiembrie
Anonim
Hackează un CFA735 / CFA835
Hackează un CFA735 / CFA835

Aveți un proiect care are nevoie de afișaj, tastatură și memorie, dar firmware-ul preîncărcat de pe modulul Crystalfontz CFA735 sau CFA835 nu este exact ceea ce căutați? Ai noroc - poți hack aceste module pentru a încărca firmware personalizat.

CFA735 și CFA835 sunt module LCD inteligente versatile. Atât Crystalfontz CFA735, cât și CFA835 se bazează pe modulul hardware CFA10052, deci în timpul acestui tutorial CFA735 și / sau CFA835 vor fi denumite CFA10052. CFA10052 poate fi reprogramat pentru a rula propriul firmware personalizat.

  • Microcontroler STMicroelectronics STM32F401
  • ARM 32-bit Cortex ™ -M4 CPU @ 84 MHz
  • 256K Flash, 64K RAM
  • LCD retroiluminat de 244 x 68 pixeli
  • Controler LCD grafic Sitronix ST7529 32 în tonuri de gri
  • Alimentarea cu comutare Buck-boost permite o gamă largă de tensiune de alimentare
  • Controlere separate de luminozitate cu comutare LED pentru tastatură și lumini de fundal LCD
  • Tastatură cu 6 butoane iluminată din spate
  • 4x LED-uri bi-color (roșu / verde)
  • Interfață USB2
  • slot pentru card microSD
  • 5 pini IO de uz general (GPIO)
  • Mai multe interfețe serial / SPI / I2C / CAN (în funcție de utilizarea GPIO).

Acest tutorial vă va arăta cum să înlocuiți firmware-ul livrat pe un CFA10052 cu un firmware nou care va:

  1. Afișați pe ecranul LCD o rețea alternativă, cu lumini de fundal actuale, contrast LCD și informații despre starea tastaturii;
  2. Controlați luminile de fundal și contrastul LCD utilizând tastatura.
  3. Schimbați culoarea celor patru LED-uri din roșu în verde în ordine.
  4. Activați portul serial USART pe pini 1 și 2 Header-1 (115200 baud) și faceți ecou tuturor datelor primite.
  5. Activați portul serial virtual USB și faceți ecoul tuturor datelor primite înapoi la gazdă.
  6. Include, dar nu demonstrează, acces la fișierul de citire / scriere uSD.

Desigur, puteți scrie propriul firmware și îl puteți încărca folosind acești pași.

NOTĂ IMPORTANTĂ:

Modulul hardware Crystalfontz CFA10052 este livrat programat cu un bootloader și firmware CFA735 / CFA835. Bootloader-ul și firmware-ul CFA735 / CFA835 nu sunt open-source și nu pot fi copiate de pe CFA10052 de către utilizator și nici nu pot fi programate pe CFA10052 de către utilizator. Dacă ajungeți să reveniți la firmware-ul CFA735 / CFA835, va trebui să îl expediați înapoi la Crystalfontz pentru a-l reprograma.

Provizii

  • Crystalfontz CFA10052 (hardware v1.1 sau o versiune ulterioară) Modul (CFA735 / CFA835)
  • PC (Windows / Linux / OSX) cu STM32CubeIDE și STM32 ST-LINK Utility instalat
  • STMicroelectronics ST-LINK (V2 sau V3) interfață de programare
  • Cablu de programare CFA10052 (detalii mai jos)
  • Firmware personalizat (sau utilizați-l pe al nostru aici)
  • Dacă utilizați Windows 7/8 / 8.1 / 10 (sau versiuni de server echivalente) și doriți să testați portul serial virtual USB, va trebui să descărcați driverele de aici. Portul serial USB va funcționa fără a necesita drivere suplimentare pe Windows 10+, Linux, OS-X.

Pasul 1: colectați / creați consumabile

Colectați / creați consumabile
Colectați / creați consumabile

Vă recomandăm să utilizați STM32CubeIDE pentru a încărca și utiliza acest exemplu de proiect de firmware. STM32CubeIDE este un IDE gratuit bazat pe Eclipse care a fost modificat de STMicroelectronics pentru a include instrumente specifice STM32. IDE-ul poate fi descărcat de pe pagina web STM32CubeIDE.

Pentru a menține funcționarea corectă a instrumentului de configurare a dispozitivului STM, trebuie să editați numai codul sursă creat de instrumentul de configurare a dispozitivului între blocurile de comentarii potrivite „USER CODE BEGIN xxx” și „USER CODE END xxx”.

Apoi, decideți dacă să ne contactați pentru un cablu de programare CFA10052 sau să vă creați propriul. Nu vom trece la realizarea cablului în detaliu în acest tutorial, dar dacă doriți să creați propriul cablu de programare CFA10052, puteți găsi conexiunile pe pagina GitHub, cel mai bun mod de a face acest lucru este să începeți cu un cablu panglică cu șaisprezece pini și legați-l de cablul pentru ST Link.

Pasul 2: Ștergeți firmware-ul existent

Ștergeți firmware-ul existent
Ștergeți firmware-ul existent
Ștergeți firmware-ul existent
Ștergeți firmware-ul existent

Dacă modulul dvs. CFA10052 este încărcat cu firmware-ul CFA735 sau CFA835 furnizat, va trebui mai întâi să ștergeți firmware-ul care iese înainte de a instala un firmware nou. Memoria flash este protejată la citire și scriere și trebuie eliminată înainte de a putea fi încărcat firmware-ul personalizat.

Există două metode pentru eliminarea firmware-ului instalat:

  1. Deconectați cablul USB (sau sursa de alimentare) de la modulul CFA10052.
  2. Conectați CFA10052 la ST-LINK folosind cablul de programare (a se vedea mai sus) și ST-LINK la computerul gazdă.
  3. Țineți apăsat tastele sus și jos de pe CFA10052 în timp ce conectați cablul USB la CFA10052 (sau sursa de alimentare). CFA10052 ar trebui să afișeze acum ecranul Crystalfontz Bootloader.
  4. Rulați utilitarul STM32 ST-LINK. În meniul „Țintă”, deschideți fereastra „Opțiune octeți”. În caseta „Protecție citire”, selectați „Nivel 0”. Faceți clic pe Aplicați. Firmware-ul Crystalfontz a fost acum eliminat și orice firmware personalizat poate fi acum programat.

Metodă alternativă (dacă nu puteți intra în Crystalfontz Bootloader ținând apăsate tastele):

  1. Deconectați cablul USB (sau sursa de alimentare) de la modulul CFA10052.
  2. Conectați punctul de test BOOT0 (un mic tampon pe partea din spate a modulului CFA10052, lângă conectorul H1) la 3,3V sau 5V.
  3. Conectați CFA10052 la ST-LINK folosind cablul de programare (a se vedea mai sus) și ST-LINK la computerul gazdă.
  4. Porniți CFA10052 (sau conectați-l la alimentare USB). Afișajul ar trebui să fie gol.
  5. Rulați utilitarul STM32 ST-LINK. În meniul „Țintă”, deschideți fereastra „Opțiune octeți”. În caseta „Protecție citire”, selectați „Nivel 0”. Faceți clic pe Aplicați. Firmware-ul Crystalfontz a fost acum eliminat și orice firmware personalizat poate fi acum programat.
  6. Conectarea pinului BOOT0 la 3,3V / 5V nu mai este necesară.

Pasul 3: Compilați și încărcați firmware-ul pe CFA10052

Compilați și încărcați firmware-ul pe CFA10052
Compilați și încărcați firmware-ul pe CFA10052

Odată ce firmware-ul furnizat de Crystalfontz a fost eliminat, sunteți gata să compilați și să încărcați propriul firmware. În scopul acestui tutorial, am furnizat câteva firmware alternative care oferă controlul tastaturii asupra luminii de fundal și a contrastului afișajului.

Pentru a compila firmware-ul:

  1. Deschideți STM32CubeIDE
  2. În meniul Fișier, alegeți Import, apoi „Importați proiectele existente în spațiul de lucru”.
  3. În caseta director rădăcină, selectați directorul acestui exemplu de firmware.
  4. Faceți clic pe butonul Finalizare.
  5. În Project Explorer, selectați proiectul cfa10052_example, apoi deschideți fișierul Src și „main.c”.
  6. În meniul Proiect, selectați „Construiți proiectul”.

Pentru a programa și rula firmware-ul pe CFA10052:

  1. Deconectați cablul USB (sau sursa de alimentare) de la modulul CFA10052.
  2. Conectați CFA10052 la ST-LINK folosind cablul de programare (a se vedea mai sus) și ST-LINK la computerul gazdă.
  3. Conectați cablul USB (sau sursa de alimentare) la CFA10052.
  4. Asigurați-vă că proiectul de firmware a fost construit (consultați pașii de mai sus) și „Binaries” apare sub „cfa10052_example” în Project Explorer.
  5. Dacă „Binaries” nu este vizibil, faceți clic dreapta pe proiectul „cfa10052_example” și selectați Reîmprospătare.
  6. Selectați meniul Executare, apoi „Configurări de depanare”.
  7. În caseta de selectare a tipurilor țintă de depanare din stânga, faceți clic dreapta pe „STM32 Cortex-M Application” și selectați „Configurare nouă”.
  8. Va fi afișată o fereastră de configurare. Setările implicite sunt OK. Faceți clic pe Aplicare, apoi pe butonul Închidere.
  9. În meniul Run, selectați „Depanare ca”, apoi „STM32 Cortex Application”. STM32CubeIDE ar trebui să se conecteze acum la ST-LINK și să încarce și să ruleze firmware-ul pe CFA10052.

Pașii de mai sus sunt necesari numai la încărcarea proiectului pentru prima dată în STM32CubeIDE. După ce s-au făcut modificări ale codului sursă al firmware-ului, sunt necesare doar reconstruirea proiectului (comanda rapidă Ctrl-B) și programarea CFA10052 (comanda rapidă a tastei F11).

Firmware-ul poate fi, de asemenea, încărcat prin oricare dintre metodele normale de încărcare STM32 (depanarea este disponibilă numai utilizând interfața SWD și un ST-LINK). De exemplu, dacă se utilizează conexiunea serială, se poate utiliza USART1 (RX = H1-Pin1 și TX = H1-Pin2). Pentru informații mai detaliate despre bootloader-ul STM32 și interfețe, consultați PDF-ul aici.

Pasul 4: Licențe

Codul sursă furnizat de Crystalfontz este furnizat folosind The Unlicense, o licență fără condiții, care dedică lucrări domeniului public. Lucrările fără licență, modificările și lucrările mai mari pot fi distribuite în termeni diferiți și fără cod sursă. Pentru detalii, consultați fișierul UNLICENCE sau unlicense.org.

STM32CubeIDE a creat codul sursă și bibliotecile STMicroelectronics sunt Copyright (c) 2019 STMicroelectronics. Toate drepturile rezervate. Componenta software este licențiată de ST sub licența BSD 3-Clause, „Licența”; Nu puteți utiliza aceste fișiere decât în conformitate cu licența. Puteți obține o copie a licenței la opensource.org/licenses/BSD-3-Clause.

Recomandat: