Table des matières:

Hacker un CFA735/CFA835 : 4 étapes
Hacker un CFA735/CFA835 : 4 étapes

Vidéo: Hacker un CFA735/CFA835 : 4 étapes

Vidéo: Hacker un CFA735/CFA835 : 4 étapes
Vidéo: Crystalfontz Intelligent Display Modules Overview 2024, Novembre
Anonim
Pirater un CFA735/CFA835
Pirater un CFA735/CFA835

Vous avez un projet qui nécessite un écran, un clavier et de la mémoire, mais le firmware préchargé sur le module Crystalfontz CFA735 ou CFA835 n'est pas tout à fait ce que vous recherchez ? Vous avez de la chance - vous pouvez pirater ces modules pour charger un firmware personnalisé.

Les CFA735 et CFA835 sont des modules LCD intelligents polyvalents. Les Crystalfontz CFA735 et CFA835 sont tous deux basés sur le module matériel CFA10052. Ainsi, au cours de ce didacticiel, les CFA735 et/ou CFA835 seront appelés CFA10052. Le CFA10052 peut être reprogrammé pour exécuter votre propre firmware personnalisé.

  • Microcontrôleur STMicroelectronics STM32F401
  • Processeur ARM Cortex™-M4 32 bits à 84 MHz
  • 256K Flash, 64K RAM
  • LCD rétroéclairé 244 x 68 pixels
  • Contrôleur LCD graphique Sitronix ST7529 32 niveaux de gris
  • L'alimentation à découpage Buck-Boost permet une large plage de tension d'alimentation
  • Contrôleurs de luminosité LED à commutation séparée pour le rétroéclairage du clavier et de l'écran LCD
  • Clavier rétroéclairé à 6 boutons
  • 4x LED bicolores (rouge/vert)
  • Interface USB2
  • fente pour carte microSD
  • 5 broches IO à usage général (GPIO)
  • Plusieurs interfaces série/SPI/I2C/CAN (selon l'utilisation du GPIO).

Ce tutoriel vous montrera comment remplacer le firmware livré sur un CFA10052 par un nouveau firmware qui:

  1. Afficher sur l'écran LCD une grille alternée, avec les rétroéclairages actuels, le contraste de l'écran LCD et les informations sur l'état du clavier;
  2. Contrôlez les rétroéclairages et le contraste de l'écran LCD à l'aide du clavier.
  3. Changez la couleur des quatre LED du rouge au vert en séquence.
  4. Activez le port série USART sur les broches 1 et 2 de l'en-tête-1 (115 200 bauds) et faites écho à toutes les données reçues.
  5. Activez le port série virtuel USB et renvoyez toutes les données reçues à l'hôte.
  6. Inclut, mais ne démontre pas, l'accès aux fichiers en lecture/écriture uSD.

Bien sûr, vous pouvez écrire votre propre firmware et le charger en suivant ces étapes.

NOTE IMPORTANTE:

Le module matériel Crystalfontz CFA10052 est livré programmé avec un chargeur de démarrage et le micrologiciel CFA735/CFA835. Le bootloader et le firmware du CFA735/CFA835 ne sont pas open source et ne peuvent pas être copiés du CFA10052 par l'utilisateur, ni programmés sur le CFA10052 par l'utilisateur. Si vous souhaitez revenir au firmware CFA735/CFA835, vous devrez le renvoyer à Crystalfontz pour le faire reprogrammer.

Fournitures

  • Module Crystalfontz CFA10052 (matériel v1.1 ou ultérieur) (CFA735/ CFA835)
  • PC (Windows/Linux/OSX) avec STM32CubeIDE et STM32 ST-LINK Utility installés
  • Interface de programmation STMicroelectronics ST-LINK (V2 ou V3)
  • Câble de programmation CFA10052 (détails ci-dessous)
  • Firmware personnalisé (ou utilisez le nôtre ici)
  • Si vous utilisez Windows 7/8/8.1/10 (ou des versions de serveur équivalentes) et que vous souhaitez tester le port série virtuel USB, vous devrez télécharger les pilotes à partir d'ici. Le port série USB fonctionnera sans nécessiter de pilotes supplémentaires sous Windows 10+, Linux, OS-X.

Étape 1: Collecter/créer des fournitures

Collecter/créer des fournitures
Collecter/créer des fournitures

Nous vous recommandons d'utiliser le STM32CubeIDE pour charger et utiliser cet exemple de projet de firmware. STM32CubeIDE est un IDE gratuit basé sur Eclipse qui a été modifié par STMicroelectronics pour inclure des outils spécifiques à STM32. L'IDE peut être téléchargé sur la page Web STM32CubeIDE.

Pour maintenir le bon fonctionnement de l'outil de configuration d'appareil STM, vous devez uniquement éditer le code source créé par l'outil de configuration d'appareil entre les blocs de commentaires « USER CODE BEGIN xxx » et « USER CODE END xxx » correspondants.

Ensuite, décidez si vous souhaitez nous contacter pour un câble de programmation CFA10052 ou pour créer le vôtre. Nous n'allons pas détailler la fabrication du câble dans ce tutoriel, mais si vous souhaitez créer votre propre câble de programmation CFA10052, vous pouvez trouver les connexions sur la page GitHub, la meilleure façon de le faire est de commencer par un câble plat à seize broches et raccordez-le au câble du ST Link.

Étape 2: Effacer le micrologiciel existant

Effacer le micrologiciel existant
Effacer le micrologiciel existant
Effacer le micrologiciel existant
Effacer le micrologiciel existant

Si votre module CFA10052 est chargé avec le firmware CFA735 ou CFA835 fourni, vous devrez d'abord effacer le firmware existant avant d'installer un nouveau firmware. La mémoire flash est protégée en lecture et en écriture et doit être supprimée avant de pouvoir charger le micrologiciel personnalisé.

Il existe deux méthodes pour supprimer le micrologiciel installé:

  1. Débranchez le câble USB (ou l'alimentation) du module CFA10052.
  2. Connectez le CFA10052 au ST-LINK à l'aide du câble de programmation (voir ci-dessus) et le ST-LINK au PC hôte.
  3. Maintenez les touches haut et bas du CFA10052 enfoncées tout en branchant le câble USB sur le CFA10052 (ou l'alimentation). Le CFA10052 devrait maintenant afficher l'écran Crystalfontz Bootloader.
  4. Exécutez l'utilitaire STM32 ST-LINK. Dans le menu "Cible", ouvrez la fenêtre "Option Octets". Dans la case « Protection contre la lecture », sélectionnez « Niveau 0 ». Cliquez sur Appliquer. Le micrologiciel Crystalfontz a maintenant été supprimé et tout micrologiciel personnalisé peut désormais être programmé.

Méthode alternative (si vous ne pouvez pas accéder au Crystalfontz Bootloader en maintenant les touches enfoncées):

  1. Débranchez le câble USB (ou l'alimentation) du module CFA10052.
  2. Connectez le point de test BOOT0 (un petit plot à l'arrière du module CFA10052, près du connecteur H1) à 3,3V ou 5V.
  3. Connectez le CFA10052 au ST-LINK à l'aide du câble de programmation (voir ci-dessus) et le ST-LINK au PC hôte.
  4. Allumez le CFA10052 (ou connectez-le à l'alimentation USB). L'affichage doit être vide.
  5. Exécutez l'utilitaire STM32 ST-LINK. Dans le menu "Cible", ouvrez la fenêtre "Option Bytes". Dans la case "Read Out Protection", sélectionnez "Level 0". Cliquez sur Appliquer. Le micrologiciel Crystalfontz a maintenant été supprimé et tout micrologiciel personnalisé peut désormais être programmé.
  6. La connexion de la broche BOOT0 à 3.3V/5V n'est plus nécessaire.

Étape 3: compilez et chargez votre micrologiciel sur le CFA10052

Compilez et chargez votre firmware sur le CFA10052
Compilez et chargez votre firmware sur le CFA10052

Une fois le firmware fourni par Crystalfontz supprimé, vous êtes prêt à compiler et charger votre propre firmware. Pour les besoins de ce didacticiel, nous avons fourni un micrologiciel alternatif qui permet de contrôler au clavier la luminosité du rétroéclairage et le contraste de l'écran.

Pour compiler le firmware:

  1. Ouvrez le STM32CubeIDE
  2. Dans le menu Fichier, choisissez Importer, puis "Importer les projets existants dans l'espace de travail".
  3. Dans la zone du répertoire racine, sélectionnez le répertoire de cet exemple de micrologiciel.
  4. Cliquez sur le bouton Terminer.
  5. Dans l'explorateur de projet, sélectionnez le projet cfa10052_example, puis ouvrez le fichier Src et "main.c".
  6. Dans le menu Projet, sélectionnez « Créer un projet ».

Pour programmer et exécuter le firmware sur le CFA10052:

  1. Débranchez le câble USB (ou l'alimentation) du module CFA10052.
  2. Connectez le CFA10052 au ST-LINK à l'aide du câble de programmation (voir ci-dessus) et le ST-LINK au PC hôte.
  3. Connectez le câble USB (ou l'alimentation) au CFA10052.
  4. Assurez-vous que le projet de firmware a été construit (voir les étapes ci-dessus) et que "Binaries" apparaît sous "cfa10052_example" dans l'explorateur de projet.
  5. Si "Binaries" n'est pas visible, cliquez avec le bouton droit sur le projet "cfa10052_example" et sélectionnez Actualiser.
  6. Sélectionnez le menu Exécuter, puis "Configurations de débogage".
  7. Dans la zone de sélection des types de cibles de débogage sur la gauche, cliquez avec le bouton droit sur "Application STM32 Cortex-M" et sélectionnez "Nouvelle configuration".
  8. Une fenêtre de configuration s'affiche. Les paramètres par défaut sont OK. Cliquez sur le bouton Appliquer puis sur le bouton Fermer.
  9. Dans le menu Exécuter, sélectionnez "Debug As", puis "STM32 Cortex Application". STM32CubeIDE devrait maintenant se connecter au ST-LINK, télécharger et exécuter le firmware sur le CFA10052.

Les étapes ci-dessus ne sont requises que lors du premier chargement du projet dans STM32CubeIDE. Une fois les modifications apportées au code source du firmware, seules la reconstruction du projet (raccourci Ctrl-B) et la programmation du CFA10052 (raccourci touche F11) sont nécessaires.

Le micrologiciel peut également être chargé via l'une des méthodes normales du chargeur de démarrage STM32 (le débogage n'est disponible qu'à l'aide de l'interface SWD et d'un ST-LINK). Par exemple, si vous utilisez une connexion série, USART1 peut être utilisé (RX=H1-Pin1 et TX=H1-Pin2). Pour plus d'informations sur le chargeur de démarrage et les interfaces STM32, consultez le PDF ici.

Étape 4: Licences

Le code source fourni par Crystalfontz est fourni en utilisant The Unlicense, une licence sans aucune condition qui consacre les œuvres au domaine public. Les œuvres sans licence, les modifications et les œuvres plus importantes peuvent être distribuées sous différentes conditions et sans code source. Voir le fichier UNLICENCE ou unlicense.org pour plus de détails.

Le code source créé par STM32CubeIDE et les bibliothèques STMicroelectronics sont protégés par copyright (c) 2019 STMicroelectronics. Tous les droits sont réservés. Le composant logiciel est concédé sous licence par ST sous licence BSD 3-Clause, la « Licence »; Vous ne pouvez utiliser ces fichiers qu'en conformité avec la Licence. Vous pouvez obtenir une copie de la licence sur opensource.org/licenses/BSD-3-Clause.

Conseillé: