Sommario:

Hackerare un CFA735/CFA835: 4 passaggi
Hackerare un CFA735/CFA835: 4 passaggi

Video: Hackerare un CFA735/CFA835: 4 passaggi

Video: Hackerare un CFA735/CFA835: 4 passaggi
Video: Crystalfontz Intelligent Display Modules Overview 2024, Luglio
Anonim
Hackerare un CFA735/CFA835
Hackerare un CFA735/CFA835

Hai un progetto che richiede un display, una tastiera e un po' di memoria, ma il firmware precaricato sul modulo Crystalfontz CFA735 o CFA835 non è proprio quello che stai cercando? Sei fortunato: puoi hackerare questi moduli per caricare il firmware personalizzato.

CFA735 e CFA835 sono moduli LCD intelligenti versatili. Sia il Crystalfontz CFA735 che il CFA835 sono basati sul modulo hardware CFA10052, quindi durante questo tutorial il CFA735 e/o CFA835 verrà chiamato CFA10052. Il CFA10052 può essere riprogrammato per eseguire il proprio firmware personalizzato.

  • Microcontrollore STMicroelectronics STM32F401
  • CPU ARM Cortex™-M4 a 32 bit a 84 MHz
  • 256K Flash, 64K RAM
  • LCD retroilluminato da 244 x 68 pixel
  • Controller LCD grafico Sitronix ST7529 32 scala di grigi
  • L'alimentazione di commutazione buck-boost consente un'ampia gamma di tensioni di alimentazione
  • Controller di luminosità LED a commutazione separati per tastiera e retroilluminazione LCD
  • Tastiera retroilluminata a 6 tasti
  • 4x LED bicolore (rosso/verde)
  • Interfaccia USB2
  • Slot per schede microSD
  • 5 pin IO per uso generico (GPIO)
  • Interfacce multiple seriali/SPI/I2C/CAN (a seconda dell'uso del GPIO).

Questo tutorial ti mostrerà come sostituire il firmware fornito su un CFA10052 con un nuovo firmware che:

  1. Visualizzazione sul display LCD a griglia alternata, con retroilluminazione corrente, contrasto LCD e informazioni sullo stato della tastiera;
  2. Controlla la retroilluminazione e il contrasto LCD utilizzando la tastiera.
  3. Modificare in sequenza il colore dei quattro LED da rosso a verde.
  4. Abilita la porta seriale USART sui pin 1 e 2 di Header-1 (115200 baud) e fa eco a tutti i dati ricevuti.
  5. Abilita la porta seriale virtuale USB e invia all'host tutti i dati ricevuti.
  6. Include, ma non dimostra, l'accesso ai file di lettura/scrittura uSD.

Naturalmente, puoi scrivere il tuo firmware e caricarlo seguendo questi passaggi.

NOTA IMPORTANTE:

Il modulo hardware Crystalfontz CFA10052 viene fornito programmato con un bootloader e il firmware CFA735/CFA835. Il bootloader e il firmware CFA735/CFA835 non sono open-source e non possono essere copiati dal CFA10052 dall'utente, né possono essere programmati sul CFA10052 dall'utente. Se vuoi tornare al firmware CFA735/CFA835, dovrai rispedirlo a Crystalfontz per farlo riprogrammare.

Forniture

  • Modulo Crystalfontz CFA10052 (hardware v1.1 o successivo) (CFA735/CFA835)
  • PC (Windows/Linux/OSX) con STM32CubeIDE e STM32 ST-LINK Utility installati
  • Interfaccia di programmazione STMicroelectronics ST-LINK (V2 o V3)
  • Cavo di programmazione CFA10052 (dettagli sotto)
  • Firmware personalizzato (o usa il nostro qui)
  • Se stai utilizzando Windows 7/8/8.1/10 (o versioni server equivalenti) e desideri testare la porta seriale virtuale USB, dovrai scaricare i driver da qui. La porta seriale USB funzionerà senza richiedere driver aggiuntivi su Windows 10+, Linux, OS-X.

Passaggio 1: raccogliere/creare materiali di consumo

Raccogli/crea materiali di consumo
Raccogli/crea materiali di consumo

Si consiglia di utilizzare STM32CubeIDE per caricare e utilizzare questo progetto firmware di esempio. STM32CubeIDE è un IDE gratuito basato su Eclipse che è stato modificato da STMicroelectronics per includere strumenti specifici per STM32. L'IDE può essere scaricato dalla pagina web STM32CubeIDE.

Per mantenere il corretto funzionamento dello strumento di configurazione del dispositivo STM, è necessario modificare solo il codice sorgente creato dallo strumento di configurazione del dispositivo tra i blocchi di commento "USER CODE BEGIN xxx" e "USER CODE END xxx" corrispondenti.

Successivamente, decidi se contattarci per un cavo di programmazione CFA10052 o per crearne uno tuo. Non esamineremo in dettaglio la realizzazione del cavo in questo tutorial, ma se vuoi creare il tuo cavo di programmazione CFA10052, puoi trovare le connessioni nella pagina GitHub, il modo migliore per farlo è iniziare con un cavo a nastro a sedici pin e unirlo al cavo per ST Link.

Passaggio 2: cancella il firmware esistente

Cancella il firmware esistente
Cancella il firmware esistente
Cancella il firmware esistente
Cancella il firmware esistente

Se il tuo modulo CFA10052 è caricato con il firmware CFA735 o CFA835 in dotazione, dovrai prima cancellare il firmware esistente prima di installare il nuovo firmware. La memoria flash è protetta da lettura e scrittura e deve essere rimossa prima di poter caricare il firmware personalizzato.

Esistono due metodi per rimuovere il firmware installato:

  1. Scollegare il cavo USB (o l'alimentatore) dal modulo CFA10052.
  2. Collegare il CFA10052 all'ST-LINK utilizzando il cavo di programmazione (vedi sopra) e l'ST-LINK al PC host.
  3. Tieni premuti i tasti su e giù sul CFA10052 mentre colleghi il cavo USB al CFA10052 (o all'alimentatore). Il CFA10052 dovrebbe ora mostrare la schermata Crystalfontz Bootloader.
  4. Eseguire l'utility STM32 ST-LINK. Nel menu "Target", aprire la finestra "Opzione Byte". Nella casella "Protezione lettura", seleziona "Livello 0". Fare clic su Applica. Il firmware Crystalfontz è stato rimosso e ora è possibile programmare qualsiasi firmware personalizzato.

Metodo alternativo (se non è possibile accedere al Bootloader Crystalfontz tenendo premuti i tasti):

  1. Scollegare il cavo USB (o l'alimentatore) dal modulo CFA10052.
  2. Collegare il test-point BOOT0 (un piccolo pad sul retro del modulo CFA10052, vicino al connettore H1) a 3,3V o 5V.
  3. Collegare il CFA10052 all'ST-LINK utilizzando il cavo di programmazione (vedi sopra) e l'ST-LINK al PC host.
  4. Accendere il CFA10052 (o collegarlo all'alimentazione USB). Il display dovrebbe essere vuoto.
  5. Eseguire l'utility STM32 ST-LINK. Nel menu "Target", aprire la finestra "Option Bytes". Nella casella "Read Out Protection", selezionare "Level 0". Fare clic su Applica. Il firmware Crystalfontz è stato rimosso e ora è possibile programmare qualsiasi firmware personalizzato.
  6. Il collegamento del pin BOOT0 a 3,3 V/5 V non è più necessario.

Passaggio 3: compilare e caricare il firmware sul CFA10052

Compila e carica il tuo firmware sul CFA10052
Compila e carica il tuo firmware sul CFA10052

Una volta rimosso il firmware fornito da Crystalfontz, sei pronto per compilare e caricare il tuo firmware. Ai fini di questo tutorial, abbiamo fornito un firmware alternativo che fornisce il controllo della tastiera della luminosità della retroilluminazione e del contrasto del display.

Per compilare il firmware:

  1. Apri STM32CubeIDE
  2. Nel menu File, scegli Importa, quindi "Importa progetti esistenti nello spazio di lavoro".
  3. Nella casella della directory principale, selezionare la directory di questo firmware di esempio.
  4. Fare clic sul pulsante Fine.
  5. In Project Explorer, seleziona il progetto cfa10052_example, quindi apri il file Src e "main.c".
  6. Nel menu Progetto, seleziona "Crea progetto".

Per programmare ed eseguire il firmware sul CFA10052:

  1. Scollegare il cavo USB (o l'alimentatore) dal modulo CFA10052.
  2. Collegare il CFA10052 all'ST-LINK utilizzando il cavo di programmazione (vedi sopra) e l'ST-LINK al PC host.
  3. Collegare il cavo USB (o l'alimentatore) al CFA10052.
  4. Assicurati che il progetto del firmware sia stato creato (vedi i passaggi sopra) e che "Binaries" appaia sotto "cfa10052_example" in Project Explorer.
  5. Se "Binaries" non è visibile, fai clic con il pulsante destro del mouse sul progetto "cfa10052_example" e seleziona Aggiorna.
  6. Seleziona il menu Esegui, quindi "Configurazioni di debug".
  7. Nella casella di selezione dei tipi di destinazione di debug a sinistra, fare clic con il pulsante destro del mouse su "Applicazione STM32 Cortex-M" e selezionare "Nuova configurazione".
  8. Verrà mostrata una finestra di configurazione. Le impostazioni predefinite sono OK. Fare clic sul pulsante Applica, quindi sul pulsante Chiudi.
  9. Nel menu Esegui, seleziona "Debug As", quindi "Applicazione STM32 Cortex". STM32CubeIDE dovrebbe ora connettersi a ST-LINK e caricare ed eseguire il firmware sul CFA10052.

I passaggi precedenti sono necessari solo quando si carica il progetto per la prima volta in STM32CubeIDE. Dopo aver apportato modifiche al codice sorgente del firmware, è necessario solo ricostruire il progetto (scorciatoia Ctrl-B) e programmare il CFA10052 (scorciatoia da tasto F11).

Il firmware può essere caricato anche tramite uno dei normali metodi del bootloader STM32 (il debug è disponibile solo utilizzando l'interfaccia SWD e un ST-LINK). Ad esempio, se si utilizza la connessione seriale, è possibile utilizzare USART1 (RX=H1-Pin1 e TX=H1-Pin2). Per informazioni più dettagliate sul bootloader e sulle interfacce STM32, vedere il PDF qui.

Passaggio 4: licenze

Il codice sorgente fornito da Crystalfontz viene fornito utilizzando The Unlicense, una licenza senza condizioni di sorta che dedica le opere al pubblico dominio. Le opere senza licenza, le modifiche e le opere più grandi possono essere distribuite con termini diversi e senza codice sorgente. Consulta il file UNLICENCE o unlicense.org per i dettagli.

Il codice sorgente creato da STM32CubeIDE e le librerie STMicroelectronics sono Copyright (c) 2019 STMicroelectronics. Tutti i diritti riservati. Il componente software è concesso in licenza da ST con licenza BSD 3-Clause, la "Licenza"; Non puoi utilizzare questi file se non in conformità con la Licenza. Puoi ottenere una copia della Licenza su opensource.org/licenses/BSD-3-Clause.

Consigliato: