Projet FISA AE de CAO
Find a file
2023-06-13 15:32:49 +02:00
driver Added base CubeMx Generated Files, Created keilproject 2023-06-13 15:32:49 +02:00
keilproject Added base CubeMx Generated Files, Created keilproject 2023-06-13 15:32:49 +02:00
project Added base CubeMx Generated Files, Created keilproject 2023-06-13 15:32:49 +02:00
stm32cubemx Added basic project with STM32CubeMX, explainations on the SPI and other pins 2023-04-05 16:34:48 +02:00
.gitignore Added base CubeMx Generated Files, Created keilproject 2023-06-13 15:32:49 +02:00
README.md Added base CubeMx Generated Files, Created keilproject 2023-06-13 15:32:49 +02:00

Atlas LED

Projet Fisa AE

Projet FISA AE mélangeant nos connaissances en électronique, programmation et un peu de mécanique. Tout est réalisé à l'aide de logiciels de CAO pour l'électronique ou la modélisation. Pour la programmation tout cela est réalisé avec STM32 CubeMX ainsi que Keil microvision sur le microcontrôleur STM32 F030F4P6TR.

Role des pins

Numéro de PIN Fonction Rôle
PA0 GPIO_Output Quand un appui est effectué sur le bouton, allume les LEDs
PA1 ADC_IN Récupère le niveau de la batterie, uniquement quand PA2 est enable
PA2 GPIO_Output Permet de récupérer le niveau de batterie, active l'ADC de manière externe
PA4 Non utilisé x
PA6 GPIO_Output Enable 5V -> Toujours à 0(logique inverse) pour activer l'USB-C
PA7 MOSI SPI permettant le contrôle des LEDS, voir la doc
PA10 Non utilisé x

Quand ADC -> PA2 à 1 (enable la batterie). PA6 à 0 tout le temps si transistor (enable le cable usb c)

Configuration du SPI

Pour respecter le timing des LEDs il est primordial de régler correctement la clock pour que les données envoyées soient de la bonne taille, et à la bonne fréquence. Voici les contraintes :

  • 0.4 microseconde minimum pour l'envoi d'une donnée
  • Pour un bit à 1 : 0.8 à 1, 0.4 à 0
  • Pour un bit à 0 : 0.4 à 1, 0.8 à 1
  • Le reset se fait à partir de 50 microsecondes
  • Il faudra prévoir les données à envoyer dans un tableau pour éviter ce reset.

Voici la configuration choisie sur STM32CubeMX :

DataSize Prescaler Clock (HCLK) Baud Rate First Bit
6 8 48 MHz 5 MBits/s MSB

Le but sera donc d'avoir 6 bits, pour différentes données, nous aurons :

  • pour 1 -> 0b111100
  • pour 0 -> 0b110000

Car chaque bit fera donc 0.2 microsecondes, et comme le datasize minimum est 6, nous multiplions par deux le nombre de données envoyées, cela ne sera pas un problème au niveau mémoire car dans la fonction de transmit du SPI nous pourrons doubler directement chaque donnée.