« SE4Binome2025-6 » : différence entre les versions

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 96 : Ligne 96 :
=== Vue 3D ===
=== Vue 3D ===
[[Fichier:Carte mere 3D.png|left|500px|alt=Carte mere 3D|vignette|Carte mere 3D]]
[[Fichier:Carte mere 3D.png|left|500px|alt=Carte mere 3D|vignette|Carte mere 3D]]
[[Fichier:Carte mere 3D backside.png|right|500px|alt=Carte mere 3D backside|vignette|Carte mere 3D backside]]
<p style="clear: both;" />
<p style="clear: both;" />


Ligne 103 : Ligne 104 :
==== Spécifications ====
==== Spécifications ====
La carte NUCLEO-F410RB est "séparée" en deux parties :  
La carte NUCLEO-F410RB est "séparée" en deux parties :  
- la partie haute de la carte : c'est le programmateur spécifique à STM32 nommé ST-LINK qui permet de programmer :
- la partie haute de la carte : c'est le programmateur spécifique à STM32 nommé ST-LINK qui permet de programmer :
- la partie basse de la carte : qui est elle dédiée à l'utilisateur.
- la partie basse de la carte : qui est elle dédiée à l'utilisateur.


==== STM32CubeIDE ====
==== STM32CubeIDE ====
Pour commencer à comprendre, on utilise dans un premier temps l'IDE STM32CubeIDE dont l'on se passera ensuite afin d'être proche du matériel et de ne pas passer par plein de librairies.
Pour commencer à comprendre, on utilise dans un premier temps l'IDE STM32CubeIDE dont l'on se passera ensuite afin d'être proche du matériel et de ne pas passer par plein de librairies.
Dans notre fichier nucleo.ioc, on a toutes les spécifications de notre carte dont le pinout.
Dans notre fichier nucleo.ioc, on a toutes les spécifications de notre carte dont le pinout.
Premier programme test : on fait clignoter la led LD2. On voit sur le fichier nucleo.ioc que LD2 est sur le pin PA5 du microcontrôleur.
Premier programme test : on fait clignoter la led LD2. On voit sur le fichier nucleo.ioc que LD2 est sur le pin PA5 du microcontrôleur.
En allant dans l'arborescence à gauche, on va dans Core -> Src -> main.c.
En allant dans l'arborescence à gauche, on va dans Core -> Src -> main.c.
On ouvre le main et dans la boucle while, on va faire clignoter notre led D2 grâce à la librairie HAL (Hardware Abstraction Layer) dont l'on se passera par la suite (c'est juste pour les premiers tests).<syntaxhighlight lang="c">
On ouvre le main et dans la boucle while, on va faire clignoter notre led D2 grâce à la librairie HAL (Hardware Abstraction Layer) dont l'on se passera par la suite (c'est juste pour les premiers tests).<syntaxhighlight lang="c">
  while (1)
  while (1)
Ligne 124 : Ligne 119 :
   }
   }
</syntaxhighlight>
</syntaxhighlight>
<p style="clear: both;" />
[[Fichier:Nucleo clignote.mp4|center|500px|vignette|nucleo_clignote]]
[[Fichier:Nucleo clignote.mp4|center|500px|vignette|nucleo_clignote]]
<p style="clear: both;" />
<p style="clear: both;" />

Version du 11 octobre 2025 à 10:41

Cahier des charges

L'objectif pour notre groupe est de réaliser une carte mère.

Lien GIT

Lien du git : https://gitea.plil.fr/ahouduss/SE4-Pico-B6

Pico-Shield

La première étape est de réaliser un shield au cas où notre carte mère s'avérerait non fonctionnelle, afin de ne pas bloquer l'avancée des groupes des cartes filles.

Composants

Afin de réaliser notre bouclier qui combiné à un arduino uno fera guise de carte mère, nous utilisons les composants suivants :

- Puce ATMega328-A en tant que microprocesseur

- 5 connecteurs 2*4 pour les cartes filles (clavier, écran, réseau, son) et un connecteur 2*4 pour connecter la carte mémoire.

- Des convertisseurs de niveaux logiques 5V vers 3,3V pour l'utilisation de la carte mémoire (même si il aurait été préférable de mettre la partie conversion directement sur la carte mémoire).

Schématique et vue 3D

Pico-shield_schematique
Pico-shield_schematique
CarteShield 3D
CarteShield 3D

Carte mémoire

En extension de notre shield ou de notre future carte mère, on ajoute la gestion de la mémoire avec la carte SD sur une carte mémoire distincte.

Memoire_schematic
Memoire_schematic
Memoire 3D
Memoire 3D

Brasage

On procède au brasage des cartes shield et mémoire.

cartes shield et memoire brasées
cartes shield et memoire brasées
cartes shield et memoire brasées 2
cartes shield et memoire brasées 2

Tests

Test leds

On teste les leds et on constate que notre carte shield est fonctionelle.

carte shield test leds
carte shield test leds

Test carte SD

On teste ensuite un programme arduino simple au préalable pour voir si la carte SD est détectée. La carte n'étant pas détectée, on regarde alors :

1- que la connexion série est bien établie pour voir si le problème ne vient pas de l'IDE Arduino -> ce n'est pas le cas.

2- si la carte SD est défaillante en testant le programme avec une autre carte SD. On teste aussi sur un lecteur de carte SD pour voir si elle est détectée sur le pc ce qui est le cas -> le pb ne vient pas de là non plus.

3- on s'intéresse maintenant à l'aspect matériel, on vérifie les soudures -> toujours pas de souci particulier.

4- schématique et routage de la carte : on s'aperçoit alors que l'on a inversé le sens du 74LVC125 de l'unité U1A pour la conversion de niveau logique du MOSI en appuyant par erreur sur le raccourci clavier x qui inverse en "miroir" le sens du composant. Remarque : on aurait aussi vraiment du mettre le convertisseur de niveau logique sur la carte mémoire pour voir le problème plus vite. Conséquence : le routage n'est pas correct, on rajoute donc des fils pour faire les bonnes connexions et on court-circuite au cutter les mauvaises.

[INSERER PHOTO]

Carte mère

La deuxième carte à réaliser est la carte mère avec une spécificité cependant, à savoir une puce STM32F410R8T6 en tant que microprocesseur.

Microprocesseur

On utilise la puce STM32F410R8T6.

Signification du nom de la puce

Signification (cf p 134 de la short datasheet) :

- Arm based 32-bit microcontroller

- F = General-purpose

- R = 64 pins

- 8 = 64 Kbytes of Flash memory

- T = package LQFP

- 6 = Industrial temperature range, - 40 to 85 °C

Datasheets

Datasheet de la puce STM32F410R8T6 :

STM32_datasheet
STM32_datasheet

On peut également retrouver des pages supplémentaires afin de bien dimensionner notre quartz et les capacités aux alentours. Document AN2867- Guidelines for oscillator design on STM8AF/AL/S and STM32 MCUs/MPUs à retrouver sur le lien suivant : https://www.st.com/en/microcontrollers-microprocessors/stm32f410/documentation.html

Schématique

Remarque : pour voir les différentes pages de la schématique, cliquer sur le fichier.

Mere schematique
Mere schematique

Vue 3D

Carte mere 3D
Carte mere 3D
Carte mere 3D backside
Carte mere 3D backside

NUCLEO-F410RB

En attendant de recevoir notre carte mère et afin de prendre en main la programmation quelque peu spécifique des arm, on s'entraîne sur la carte NUCLEO-F410RB qui possède le même microcontrôleur STM32F410R8T6 que celui de notre carte mère.

Spécifications

La carte NUCLEO-F410RB est "séparée" en deux parties : - la partie haute de la carte : c'est le programmateur spécifique à STM32 nommé ST-LINK qui permet de programmer : - la partie basse de la carte : qui est elle dédiée à l'utilisateur.

STM32CubeIDE

Pour commencer à comprendre, on utilise dans un premier temps l'IDE STM32CubeIDE dont l'on se passera ensuite afin d'être proche du matériel et de ne pas passer par plein de librairies. Dans notre fichier nucleo.ioc, on a toutes les spécifications de notre carte dont le pinout. Premier programme test : on fait clignoter la led LD2. On voit sur le fichier nucleo.ioc que LD2 est sur le pin PA5 du microcontrôleur. En allant dans l'arborescence à gauche, on va dans Core -> Src -> main.c.

On ouvre le main et dans la boucle while, on va faire clignoter notre led D2 grâce à la librairie HAL (Hardware Abstraction Layer) dont l'on se passera par la suite (c'est juste pour les premiers tests).

 while (1)
  {
	  HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); //change d'état
	  HAL_Delay(500); //attend 500ms
  }

FPGA

Potentielle puce FPGA à ajouter sur notre carte mère ?

VHDL : XC6SLX4-2TQG144C / : XC7A15T-1FTG256C