« SE3Groupe2025-4 » : différence entre les versions

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Ligne 78 : Ligne 78 :
=== Switches et sockets ===
=== Switches et sockets ===


Les switches mécaniques utilisés sont des modèles de la marque **KAILH**, disponibles au laboratoire. Nous avons également récupéré des sockets hot‑swap adaptées. Seules les sockets sont soudées sur le PCB, ce qui permet de changer les switches sans dessouder.
Les switches mécaniques utilisés sont des modèles de la marque ''KAILH'', disponibles au laboratoire. Nous avons également récupéré des sockets hot‑swap adaptées. Seules les sockets sont soudées sur le PCB, ce qui permet de changer les switches sans dessouder.


<br style="clear:both;" />
<br style="clear:both;" />
Ligne 88 : Ligne 88 :
<h4>Chargeur Li-ion MAX1811</h4>
<h4>Chargeur Li-ion MAX1811</h4>


Le composant **U1 (MAX1811)** est un chargeur linéaire dédié aux batteries Li‑ion, alimenté directement par le 5 V USB. Ses broches de configuration permettent de choisir la tension de fin de charge et le courant de charge :
Le composant ''U1 (MAX1811)'' est un chargeur linéaire dédié aux batteries Li‑ion, alimenté directement par le 5 V USB. Ses broches de configuration permettent de choisir la tension de fin de charge et le courant de charge :


- **SELV** (pin 1) : sélectionne la tension de charge (4,1 V ou 4,2 V). Une résistance de tirage (R11 = 10 kΩ) fixe le niveau haut → tension de charge = 4,2 V.
- ''SELV'' (pin 1) : sélectionne la tension de charge (4,1 V ou 4,2 V). Une résistance de tirage (R11 = 10 kΩ) fixe le niveau haut → tension de charge = 4,2 V.
- **SELI** (pin 2) : choisit le courant de charge (100 mA ou 500 mA). La broche est pilotée par le MCU (PB0) pour moduler le courant en fonction de la source USB.
- ''SELI'' (pin 2) : choisit le courant de charge (100 mA ou 500 mA). La broche est pilotée par le MCU (PB0) pour moduler le courant en fonction de la source USB.
- **EN** (pin 7) : maintenue à VUSB (5 V) via la résistance R4 (150 Ω) pour activer le chargeur en permanence.
- ''EN'' (pin 7) : maintenue à VUSB (5 V) via la résistance R4 (150 Ω) pour activer le chargeur en permanence.
- **/CHG** (pin 8) : sortie à drain ouvert qui passe à l’état bas lorsque la batterie est en cours de charge. Une LED rouge D31 (anode sur VUSB, cathode sur /CHG) permet un affichage visuel de la charge.
- ''/CHG'' (pin 8) : sortie à drain ouvert qui passe à l’état bas lorsque la batterie est en cours de charge. Une LED rouge D31 (anode sur VUSB, cathode sur /CHG) permet un affichage visuel de la charge.


Le condensateur C4 (4,7 µF) filtre l’entrée VUSB ; C5 (2,2 µF) et C6 (4,7 µF) sont placés sur la sortie BATT pour stabiliser la tension batterie.
Le condensateur C4 (4,7 µF) filtre l’entrée VUSB ; C5 (2,2 µF) et C6 (4,7 µF) sont placés sur la sortie BATT pour stabiliser la tension batterie.
Ligne 99 : Ligne 99 :
<h4>Convertisseur Boost MCP1640</h4>
<h4>Convertisseur Boost MCP1640</h4>


Le régulateur élévateur **U3 (MCP1640)** élève la tension de la batterie (typiquement 3,7 V, mais pouvant descendre jusqu’à 0,8 V en décharge profonde) à une sortie régulée de 5 V. La broche **EN** est connectée directement à la batterie (via J3) afin de démarrer le convertisseur dès qu’une batterie est présente.
Le régulateur élévateur ''U3 (MCP1640)'' élève la tension de la batterie (typiquement 3,7 V, mais pouvant descendre jusqu’à 0,8 V en décharge profonde) à une sortie régulée de 5 V. La broche **EN** est connectée directement à la batterie (via J3) afin de démarrer le convertisseur dès qu’une batterie est présente.


La tension de sortie est fixée par un pont diviseur externe connecté sur la broche **V_FB** (pin 4) :
La tension de sortie est fixée par un pont diviseur externe connecté sur la broche ''V_FB'' (pin 4) :


- R5 = 976 kΩ, R6 = 309 kΩ
- R5 = 976 kΩ, R6 = 309 kΩ
Ligne 111 : Ligne 111 :
La valeur est bien proche de 5 V.
La valeur est bien proche de 5 V.


**Choix de l’inductance L1 (4,7 µH)**  
''Choix de l’inductance L1 (4,7 µH)''  


La consommation estimée du système (MCU + 16 LEDs RGB à faible courant + drivers) est d’environ 300 mA sous 5 V. En tenant compte d’un rendement η ≈ 85 % (valeur typique pour ce convertisseur à charge moyenne), le courant moyen tiré de la batterie (3,7 V) est :
La consommation estimée du système (MCU + 16 LEDs RGB à faible courant + drivers) est d’environ 300 mA sous 5 V. En tenant compte d’un rendement η ≈ 85 % (valeur typique pour ce convertisseur à charge moyenne), le courant moyen tiré de la batterie (3,7 V) est :
Ligne 131 : Ligne 131 :
L’inductance choisie (référence XGL4020-471MEC ou équivalent) présente un courant de saturation supérieur à 1,5 A, ce qui garantit une marge confortable.
L’inductance choisie (référence XGL4020-471MEC ou équivalent) présente un courant de saturation supérieur à 1,5 A, ce qui garantit une marge confortable.


**Filtrage d’entrée et de sortie**  
''Filtrage d’entrée et de sortie''  


- Condensateur d’entrée C7 = 10 µF (faible ESR) pour minimiser l’impédance côté batterie.   
- Condensateur d’entrée C7 = 10 µF (faible ESR) pour minimiser l’impédance côté batterie.   
Ligne 137 : Ligne 137 :


La sortie VCC (5 V) alimente l’ensemble du système : MCU (via ses broches VCC, AVCC, UVCC), les drivers TLC5947, et l’anode commune des LEDs RGB.
La sortie VCC (5 V) alimente l’ensemble du système : MCU (via ses broches VCC, AVCC, UVCC), les drivers TLC5947, et l’anode commune des LEDs RGB.
<br style="clear:both;" />
=== Microcontrôleur ATMega32U4 ===
Le cœur du système est un **ATMega32U4** (référence U2) cadencé à 16 MHz par un quartz externe (Y1). Ce microcontrôleur intègre un contrôleur USB matériel, ce qui permet de l’utiliser en périphérique HID sans composant additionnel.
<h4>Horloge et découplage</h4>
Un quartz ''Y1'' (référence Crystal_GND24) au boîtier 3225 (3,2 × 2,5 mm) génère la fréquence de base de 16 MHz. Les capacités de charge ''C1'' et ''C2'' (22 pF chacune) sont connectées respectivement aux broches XTAL1 et XTAL2, l’autre borne étant reliée à la masse. Ces valeurs sont conformes à la préconisation de la datasheet pour un quartz à 16 MHz.
La formule approchée de la capacité de charge vue par le quartz est :
<math>C_L = \frac{C_1 \cdot C_2}{C_1 + C_2} + C_{parasite}</math>
Avec C1 = C2 = 22 pF et une capacité parasite de l’ordre de 5 pF, on obtient C_L ≈ 16 pF, ce qui correspond aux spécifications des quartz courants.
L’alimentation du MCU est filtrée par plusieurs condensateurs de découplage placés au plus près des broches d’alimentation :
- ''C3'' = 1 µF entre UCAP (pin 6) et GND – nécessaire à la stabilité du régulateur interne USB.
- ''C10, C11, C12'' = 0,1 µF chacun – découplage classique pour les broches VCC (pin 14), AVCC (pin 24) et UVCC (pin 2).
- Les plans de masse sont interconnectés via les broches GND (pins 5, 15, 23, 35, 43, voir datasheet...).
<h4>Gestion de l’USB</h4>
Le port USB de type A (J1) est directement relié au MCU :
- ''VBUS'' (pin 1 du connecteur) est envoyé sur la broche VBUS (pin 7) de l’ATmega32U4 pour détecter la présence du câble.
- ''D+'' (pin 3 du connecteur) et ''D-'' (pin 2) sont connectés respectivement aux broches D+ (pin 4) et D- (pin 3), eventuellement on découvre que c'est une erreur et que nous devrons mettre des résistances 22 Ω.
- Le shield du connecteur (pin 5) est relié à la masse.
La programmation du bootloader DFU se fait par USB ; une fois le code chargé, le clavier est reconnu comme périphérique HID.
<h4>Connecteur ISP</h4>
Un connecteur ''AVR-ISP-6'' (J4) au pas 2,54 mm permet la programmation par un programmateur externe (par exemple AVR ISP mkII). Le brochage est standard :
- Pin 1 : MISO (PB3)
- Pin 2 : VCC (5 V)
- Pin 3 : SCK (PB1)
- Pin 4 : MOSI (PB2)
- Pin 5 : RESET (actif à l’état bas)
- Pin 6 : GND
Des résistances de pull‑up de 10 kΩ (R7 et R8) sont placées respectivement sur les lignes HWB et RESET pour éviter les flottements.
<h4>Boutons RST et HWB</h4>
Deux boutons poussoirs (SW1 et SW2) sont disponibles :
- ''SW2'' connecté sur la broche RESET (pin 13) : un appui provoque une réinitialisation matérielle du microcontrôleur.
- ''SW1'' connecté sur la broche HWB (pin 33) : pendant le démarrage, maintenir ce bouton force le bootloader à attendre une programmation USB (mode DFU). En fonctionnement normal, cette broche peut être réutilisée comme entrée/sortie (PE2).


<br style="clear:both;" />
<br style="clear:both;" />

Version du 9 juin 2026 à 19:42

Programmation des systèmes embarqués

Carte électronique

Carte réalisée en utilisant le logiciel KiCAD : Fichier:2025-PSE-04-systeme.zip.

Schéma électronique de la carte :

Mon schéma électronique

Résultat du routage :

Mon routage
Ma carte

Photo de la carte soudée :


Vidéo très courte et en basse résolution de la carte en fonctionnement :

Média:2025-PSE-04-PROG-video.mp4

Programmation

Bilan

Séance du 03/03

Soudure presque terminée, il nous manque le condensateur de découplage ainsi qu'une résistance 10k à souder.

Eventuellement la vidéo brève du fonctionnement complet du programmateur : Média:2025-PSE-BB-PROG-final.mp4.


Séance du 23/03

Rectification du problème KiCad 10, remise du projet KiCad à la 9ᵉ version. Création de la liste finale des pièces à commander (cf. Composants à acheter).

Premier système embarqué

Archive GIT;

Mon archive GIT pour le projet KiCAD et pour les programmes : [1].

Archive privée. Binôme comme administrateur. Boé et Redon comme administrateur. - FAIT

Ajouter un .gitignore pour KiCAD et langage C. - FAIT

Structure avec matériel (y compris production - gerber, bill of materials) / logiciel / documentation (e.g. documentation technique).

Description du système embarqué

Nous prévoyons de faire un clavier, séparé en deux parties. Nous sommes en collaboration avec le groupe 16[2]. Le clavier sera capable de :

  • récupérer les touches pressées par l'autre partie du clavier.
  • Communiquer avec l'ordinateur pour envoyer les informations

Les communications seront réalisées en UART

Il s'agit d'un clavier ergonomique RGB au format matrice 5 × 6 (30 touches). La carte embarque un ATMega32U4 (quartz 16 MHz), une gestion complète de l’alimentation sur batterie Li‑ion (chargeur MAX1811 + boost MCP1640 vers 5 V), un rétroéclairage RGB individuel pour 16 touches (deux drivers PWM TLC5947 en cascade), et une prise jack 3,5 mm permettant la communication UART avec une seconde moitié de clavier (clavier ergonomique séparé).

La saisie est assurée par liaison USB en mode clavier HID (LUFA). La programmation se faisait à priori en ISP, mais eventuellement par USB (bootloader DFU).

Vue de la carte clavier finalisée


Matériel (Hardware)

Switches et sockets

Les switches mécaniques utilisés sont des modèles de la marque **KAILH**, disponibles au laboratoire. Nous avons également récupéré des **sockets hot‑swap** adaptées à ces switches. L’intérêt de ces modules est de pouvoir insérer ou retirer les boutons à volonté, sans qu’ils soient soudés directement au PCB (seules les sockets sont soudées). Cela facilite la réutilisation des boutons d’un projet à l’autre et améliore la réparabilité du clavier.


Matériel (Hardware)

Switches et sockets

Les switches mécaniques utilisés sont des modèles de la marque KAILH, disponibles au laboratoire. Nous avons également récupéré des sockets hot‑swap adaptées. Seules les sockets sont soudées sur le PCB, ce qui permet de changer les switches sans dessouder.


Alimentation

La carte peut être alimentée soit par le port USB (5 V), soit par une batterie Li‑ion (3,7 V nominal) connectée sur le connecteur J3. Un circuit de gestion de batterie et un convertisseur élévateur (boost) génèrent une tension stable de 5 V pour toute la logique (MCU, LEDs, drivers).

Chargeur Li-ion MAX1811

Le composant U1 (MAX1811) est un chargeur linéaire dédié aux batteries Li‑ion, alimenté directement par le 5 V USB. Ses broches de configuration permettent de choisir la tension de fin de charge et le courant de charge :

- SELV (pin 1) : sélectionne la tension de charge (4,1 V ou 4,2 V). Une résistance de tirage (R11 = 10 kΩ) fixe le niveau haut → tension de charge = 4,2 V. - SELI (pin 2) : choisit le courant de charge (100 mA ou 500 mA). La broche est pilotée par le MCU (PB0) pour moduler le courant en fonction de la source USB. - EN (pin 7) : maintenue à VUSB (5 V) via la résistance R4 (150 Ω) pour activer le chargeur en permanence. - /CHG (pin 8) : sortie à drain ouvert qui passe à l’état bas lorsque la batterie est en cours de charge. Une LED rouge D31 (anode sur VUSB, cathode sur /CHG) permet un affichage visuel de la charge.

Le condensateur C4 (4,7 µF) filtre l’entrée VUSB ; C5 (2,2 µF) et C6 (4,7 µF) sont placés sur la sortie BATT pour stabiliser la tension batterie.

Convertisseur Boost MCP1640

Le régulateur élévateur U3 (MCP1640) élève la tension de la batterie (typiquement 3,7 V, mais pouvant descendre jusqu’à 0,8 V en décharge profonde) à une sortie régulée de 5 V. La broche **EN** est connectée directement à la batterie (via J3) afin de démarrer le convertisseur dès qu’une batterie est présente.

La tension de sortie est fixée par un pont diviseur externe connecté sur la broche V_FB (pin 4) :

- R5 = 976 kΩ, R6 = 309 kΩ

La tension de référence interne est V_FB = 1,21 V. La tension de sortie se calcule par :

La valeur est bien proche de 5 V.

Choix de l’inductance L1 (4,7 µH)

La consommation estimée du système (MCU + 16 LEDs RGB à faible courant + drivers) est d’environ 300 mA sous 5 V. En tenant compte d’un rendement η ≈ 85 % (valeur typique pour ce convertisseur à charge moyenne), le courant moyen tiré de la batterie (3,7 V) est :

L’ondulation du courant dans l’inductance est donnée par :

avec un rapport cyclique typique , une fréquence de découpage (d’après la datasheet du MCP1640), et L = 4,7 µH.

Le courant de crête dans l’inductance vaut donc :

L’inductance choisie (référence XGL4020-471MEC ou équivalent) présente un courant de saturation supérieur à 1,5 A, ce qui garantit une marge confortable.

Filtrage d’entrée et de sortie

- Condensateur d’entrée C7 = 10 µF (faible ESR) pour minimiser l’impédance côté batterie. - Condensateurs de sortie C8 = 4,7 µF et C9 = 4,7 µF (en parallèle) pour réduire l’ondulation résiduelle et répondre aux appels de courant du MCU et des LEDs.

La sortie VCC (5 V) alimente l’ensemble du système : MCU (via ses broches VCC, AVCC, UVCC), les drivers TLC5947, et l’anode commune des LEDs RGB.


Microcontrôleur ATMega32U4

Le cœur du système est un **ATMega32U4** (référence U2) cadencé à 16 MHz par un quartz externe (Y1). Ce microcontrôleur intègre un contrôleur USB matériel, ce qui permet de l’utiliser en périphérique HID sans composant additionnel.

Horloge et découplage

Un quartz Y1 (référence Crystal_GND24) au boîtier 3225 (3,2 × 2,5 mm) génère la fréquence de base de 16 MHz. Les capacités de charge C1 et C2 (22 pF chacune) sont connectées respectivement aux broches XTAL1 et XTAL2, l’autre borne étant reliée à la masse. Ces valeurs sont conformes à la préconisation de la datasheet pour un quartz à 16 MHz.

La formule approchée de la capacité de charge vue par le quartz est :

Avec C1 = C2 = 22 pF et une capacité parasite de l’ordre de 5 pF, on obtient C_L ≈ 16 pF, ce qui correspond aux spécifications des quartz courants.

L’alimentation du MCU est filtrée par plusieurs condensateurs de découplage placés au plus près des broches d’alimentation :

- C3 = 1 µF entre UCAP (pin 6) et GND – nécessaire à la stabilité du régulateur interne USB. - C10, C11, C12 = 0,1 µF chacun – découplage classique pour les broches VCC (pin 14), AVCC (pin 24) et UVCC (pin 2). - Les plans de masse sont interconnectés via les broches GND (pins 5, 15, 23, 35, 43, voir datasheet...).

Gestion de l’USB

Le port USB de type A (J1) est directement relié au MCU : - VBUS (pin 1 du connecteur) est envoyé sur la broche VBUS (pin 7) de l’ATmega32U4 pour détecter la présence du câble. - D+ (pin 3 du connecteur) et D- (pin 2) sont connectés respectivement aux broches D+ (pin 4) et D- (pin 3), eventuellement on découvre que c'est une erreur et que nous devrons mettre des résistances 22 Ω. - Le shield du connecteur (pin 5) est relié à la masse.

La programmation du bootloader DFU se fait par USB ; une fois le code chargé, le clavier est reconnu comme périphérique HID.

Connecteur ISP

Un connecteur AVR-ISP-6 (J4) au pas 2,54 mm permet la programmation par un programmateur externe (par exemple AVR ISP mkII). Le brochage est standard : - Pin 1 : MISO (PB3) - Pin 2 : VCC (5 V) - Pin 3 : SCK (PB1) - Pin 4 : MOSI (PB2) - Pin 5 : RESET (actif à l’état bas) - Pin 6 : GND

Des résistances de pull‑up de 10 kΩ (R7 et R8) sont placées respectivement sur les lignes HWB et RESET pour éviter les flottements.

Boutons RST et HWB

Deux boutons poussoirs (SW1 et SW2) sont disponibles : - SW2 connecté sur la broche RESET (pin 13) : un appui provoque une réinitialisation matérielle du microcontrôleur. - SW1 connecté sur la broche HWB (pin 33) : pendant le démarrage, maintenir ce bouton force le bootloader à attendre une programmation USB (mode DFU). En fonctionnement normal, cette broche peut être réutilisée comme entrée/sortie (PE2).


Composants à acheter

| lien farnell Chargeur_Batterie

| lien (farnell) Connecteur jack femelle 3.5mm

| lien farnell DC-DC_step-up mcp1640bt

| LED_RGB led 150141

| lien led driver tlc5947

Voir avec M.Redon ?

Aliexpress ( 14.95 euro pour 50 pièces)

2x Amazon (6.38euro pour 20 pièces)

Carte électronique

Carte réalisée en utilisant le logiciel KiCAD : Fichier:2025-PSE-04-systeme.zip.

Schéma électronique de la carte :

Mon schéma électronique

Résultat du routage :

Photo de la carte soudée :

Ma carte

Vidéo très courte et en basse résolution de la carte en fonctionnement :

Média:2025-PSE-BB-systeme-video.mp4

Travail effectué

10/03/2026:

Recherche de composants. Les composants trouvés sont :

- 74HC4067 : Démultiplexeur

- WL-SFTW SMT Full-color TOP LED : Led RGB

- Gestion des leds : TLC5947

Réflexion routage :

Vérification de possibilité du routage sur 2 couches uniquement. Une couche pour les leds, une couche pour les boutons.

17/03/2026:

Lecture des différentes datasheets

24/03/2026:

31/03/2026:

7/04/2026:

5/05/2026:

12/05/2026:

18/05/2026:

Récupération des composants et début de la soudure

20/05/2026:

Soudure des composants

26/05/2026:

fin de la soudure et test final du code

02/06/2026:

Séance bonus offerte par Mr. Boé, qui nous avait dit de faire un dernier flash en ISP. Ce dernier ne marchait pas donc nous avons désoudé le microprocesseur. Le nouveau microprocesseur étant finalement soudé, on a confirmé nos suspicions: L'ancien microprocesseur ne marchait vraiment pas. On peut désormais flasher le fichier hex dans la carte. il n'y a plus de composants qui se chauffent, on peut finalement attaquer la partie code.

Bilan

J'indique où j'en suis arrivé à la fin des séances.

Eventuellement la vidéo brève du fonctionnement complet du programmateur : Média:2025-PSE-BB-systeme-final.mp4.