« SE4Binome2023-6 » : différence entre les versions
Ligne 75 : | Ligne 75 : | ||
<p style="clear: both;" /> | <p style="clear: both;" /> | ||
== Programmation de la carte mère == | |||
Le but de cette partie est de réaliser un micro système de fichier. Pour cela, je dois implémenter les fonctions d'accès à la mémoire de la carte SD ainsi que les primitives qui permettront de manipuler les fichiers. | |||
=== Ecriture et lecture sur la carte SD === | === Ecriture et lecture sur la carte SD === | ||
Ligne 83 : | Ligne 88 : | ||
<p style="clear: both;" /> | <p style="clear: both;" /> | ||
Je ne suis pas parvenu à réduire la taille des blocs avec la carte SD, donc je vais continuer avec des blocks de 512 octets au lieu de 256. | |||
Fonctions d'accès à la mémoire: | |||
J'ai réalisé deux fonctions principales qui seront utilisées par les primitives du système de fichier : writeBlock et readBlock | |||
La fonction LS (list) | |||
La fonction TYPE (append) | |||
La fonction CAT (read) | |||
La fonction MV (rename) | |||
La fonction CP (copy) | |||
La fonction RM (remove) | |||
== lien gitlab du projet == | == lien gitlab du projet == | ||
https://gitlab.univ-lille.fr/dylan.ling.etu/projet_pico_ordi_b6.git | https://gitlab.univ-lille.fr/dylan.ling.etu/projet_pico_ordi_b6.git |
Version du 21 décembre 2023 à 07:26
Ordonnanceur / système d'exploitation
Pour débuter, je vais faire en sorte de faire clignoter deux LEDs, chacune correspondant à un processus différent, le but étant que l’ordonnanceur alterne entre les deux.
J'ai réussi à faire fonctionner l'ordonnanceur avec les deux tâches de clignotement de LED qui s'alternent entre elles.
Carte FPGA / VHDL
Type de carte choisie
J'ai choisi de réaliser la carte mère du pico ordinateur sur laquelle on va venir brancher les cartes filles. Voici les choix que j'ai fait pour la conception de cette carte:
- Alimentation 5V provenant de l'USB (j'utilise un connecteur mini USB B).
- Programmation de la carte avec dfu-programmer grâce à un FTDI (FT232RL) mais connecteur AVR ISP inclus aussi.
- Régulateur de tension pour la puce mémoire et une adaptation des niveaux logiques pour cette dernière.
- ATmega328p traversant.
- Possibilité de brancher 5 cartes filles grâce à 5 connecteurs HE10.
Réalisation du bouclier de test
Parmi les activités disponibles, j'ai réalisé les choses suivantes :
Réalisation de la carte mère
Schematic de la carte mère
Tout d'abord, il a fallu réaliser le schématic de la carte sur KiCAD. Je me suis inspiré du Shield de test et ai inclus les nouveaux composants tels que le FTDI, le connecteur mini USB B ...
J'ai ajouté des condensateurs de découplages pour chaque composant important afind d'éliminer les parasites produits par les pistes. Lors de la réalisation du PCB, il faudra faire en sorte qu'ils soient physiquement proches pour être efficaces
PCB final réalisé
J'ai réalisé ce PCB en prenant en compte les contraintes liées aux composants.
Soudage de la carte
Quelques semaines après avoir envoyé le .zip contenant les fichiers gerber de KiCAD, j'ai reçu mon PCB imprimé
Par la suite, j'ai commencé à souder les composants Cependant, j'ai rencontré plusieurs problèmes: - les pistes D+ et D- du FTDI sont inversées - Les connecteurs HE10 couvrent légèrement certains composants et la LED pour certains - La carte n'est pas reconnue en périphérique USB si on fait un lsusb. J'ai dû refaire une autre carte mère avec un FTDI qui fonctionne car je ne suis pas parvenu à inverser D+ et D- sur la carte originale. Après avoir mis un bootloader sur l'ATMEGA328P, je suis parvenu à téléverser des programmes à travers le FTDI en utilisant l'utilitaire avrdude. Le programme fait clignoter la LED à la bonne vitesse, cela signifie donc que le cristal 8MHz a été soudé correctement et que la carte fonctionne sans programmeur. Par la suite, je vais souder la carte SD et les connecteurs HE10 manquants.
Carte finale soudée
J'ai terminé de soudé la carte complète :
Programmation de la carte mère
Le but de cette partie est de réaliser un micro système de fichier. Pour cela, je dois implémenter les fonctions d'accès à la mémoire de la carte SD ainsi que les primitives qui permettront de manipuler les fichiers.
Ecriture et lecture sur la carte SD
Maintenant que la carte est terminée, il reste la partie accès mémoire pour ensuite écrire les fichiers du Pico ordinateur. J'ai rencontré des problèmes lors de l'écriture et lecture de la carte SD mais après avoir soudé à nouveau l'adaptateur de niveau et vérifié les tensions et les masses, je suis parvenu à écrire "0xac", "0xbc" et "0xcc" sur un bloc de la carte SD.
Je ne suis pas parvenu à réduire la taille des blocs avec la carte SD, donc je vais continuer avec des blocks de 512 octets au lieu de 256. Fonctions d'accès à la mémoire: J'ai réalisé deux fonctions principales qui seront utilisées par les primitives du système de fichier : writeBlock et readBlock La fonction LS (list) La fonction TYPE (append) La fonction CAT (read) La fonction MV (rename) La fonction CP (copy) La fonction RM (remove)
lien gitlab du projet
https://gitlab.univ-lille.fr/dylan.ling.etu/projet_pico_ordi_b6.git