« Pico SE4 2023/2024 » : différence entre les versions

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Ligne 61 : Ligne 61 :
* une carte fille SPI avec un ATMega16u2 pour une connexion réseau (EP bulk ou RNDIS) ;
* une carte fille SPI avec un ATMega16u2 pour une connexion réseau (EP bulk ou RNDIS) ;
* une carte fille SPI avec un ATMega328p et un ENC28J60 pour une connexion Ethernet.
* une carte fille SPI avec un ATMega328p et un ENC28J60 pour une connexion Ethernet.
=== Précisions sur la carte mère ===


== Programmation système ==
== Programmation système ==

Version du 3 août 2023 à 11:23

Objectif

Pour l'année académique 2023/2024 nous vous demandons de construire un pico-ordinateur comprenant les éléments suivants :

  • un processeur de type microcontrôleur ;
  • un clavier ;
  • un dispositif d'affichage ;
  • un système d'exploitation stocké dans la mémoire flash du microcontrôleur ;
  • une mémoire de masse allant au delà de la mémoire flash sus-citée ;
  • un dispositif de communication avec l'extérieur.

Pour faire en sorte que tous les éléments puissent communiquer entre eux nous vous demandons d'utiliser le bus SPI.

Organisation du travail

Vous aurez, comme d'habitude, la lourde tâche de tester ce module de travaux pratiques.

Ce sera d'autant moins facile que nous vous demandons de vous coordonner pour réaliser le pico-ordinateur : un seul exemplaire fonctionnel est attendu.

Vous allez donc devoir vous organiser pour que chaque binôme réalise une partie de l'ensemble. Cela dit des tâches identiques sont à réaliser par tous les binômes, ces tâches vos permettront de vous exercer mais aussi de tester vos réalisations spécifiques.

Tâches à réaliser

Chaque binôme réalise :

  • un ordonnanceur, vous écrirez en particulier une tâche de lecture sur port série et deux tâches d'envoi d'information sur bus SPI. Le partage du bus SPI doit être supervisé par l'ordonnanceur ;
  • au choix, une carte fille FPGA programmée par VHDL et communicant via le bus SPI, le binôme réalise aussi la tâche d'ordonnancement utilisant la carte ;
  • au choix, une carte mère ou une carte fille, le binôme réalise aussi la tâche d'ordonnancement correspondante.

Cartes filles FPGA

Les cartes filles FPGA doivent être programmées en VHDL. Tous les binômes doivent implanter en VHDL :

  • un contrôleur de bus série SPI ;
  • un décodeur des commandes reçues par SPI (commandes sur un octet avec éventuellement des paramètres à suivre) ;
  • un contrôleur d'écran VGA affichant le contenu graphique de la RAM de la carte FPGA.

A minima il faut une commande pour insérer un pixel d'une couleur donnée dans la RAM d'affichage.

Vous pouvez aussi ajouter des fonctionnalités supplémentaires à votre carte FPGA :

  • mémoire de masse par accès direct à une carte mémoire SD ;
  • carte réseau Ethernet en utilisant un module PHY Ethernet.

Pour les fonctionnalités supplémentaires vous devez prévoir des commandes supplémentaire au niveau du décodeur.

Cartes électroniques

Les connexions entre cartes mères et cartes filles doivent être réalisées via des connecteurs HE-10 à 8 connecteurs :

  • 2 broches pour l'alimentation ;
  • 3 broches pour les signaux SPI (MISO, MOSI, SCK) ;
  • 1 broche pour le CS (Chip Select) ;
  • 1 broche pour une éventuelle ligne d'interruption ;
  • 1 broche pour une eventuelle réinitialisation de la carte (Reset).

Cartes mères :

  • une carte CPU ATMega328p avec une flash SPI NAND.

Cartes filles :

  • une carte fille SPI avec un ATMega328p et une matrice de touches (clavier) ;
  • une carte fille SPI avec un AT90USB647 pour connexion à un clavier USB ou une clef USB ;
  • une carte fille SPI avec un ATMega328p et un écran LCD 2 lignes HD44780 ;
  • une carte fille SPI avec un ATMega16u2 pour une connexion série USB ;
  • une carte fille SPI avec un ATMega328p et un DAC R-2R comme carte son ;
  • une carte fille SPI avec un ATMega16u2 pour une connexion réseau (EP bulk ou RNDIS) ;
  • une carte fille SPI avec un ATMega328p et un ENC28J60 pour une connexion Ethernet.

Précisions sur la carte mère

Programmation système

Le système d'exploitation du pico-ordinateur doit avoir les fonctionnalités d'un DOS (Disk Operating System), à savoir :

  • lecture des commandes tapées par l'utilisateur ;
  • téléchargement d'exécutables ou de sources via le dispositif de communication extérieur  ;
  • sauvegarde et chargement d'exécutables ou de sources via la mémoire de masse ;
  • permettre l'affichage de chaînes de caractères ;
  • comprend un interpréteur micro-python pour faire tourner les sources ;
  • les différentes fonctionnalités sont réalisées sous forme de tâches gérées par un ordonnanceur.

La programmation c'est aussi l'écriture des sous-systèmes ou des pilotes liés à chaque cartes :

  • pour la carte mère, il faut écrire un sous-système de gestion de fichiers ;
  • pour la carte fille comportant une matrice de touches, il faut écrire le pilote identifiant les touches actionnées et gérant l'envoi de ces touches à la carte mère ;
  • pour la carte fille gérant un clavier USB, il faut utiliser un projet LUFA pour scanner régulièrement le clavier USB et envoyer d'éventuels événements à la carte mère ;
  • pour la carte fille gérant un écran LCD, il faut écrire le pilote capable de gérer l'écran et la partie récupérant les données de la carte mère ;
  • pour la carte fille gérant une clé USB, il faut utiliser un projet LUFA pour l'accès à la clé et écrire un sous-système de gestion de fichiers ;
  • la carte fille gérant une connexion série ne nécessite qu'un modeste pilote de communication avec la carte mère ;
  • pour la carte fille permettant une connexion avec le monde extérieur via de simples points d'accès USB de volume (EP Bulk), il faut écrire le pilote pour communication avec la carte mère mais aussi le programme sur le PC permettant la réception ou l'envoi de fichiers ;
  • pour la carte fille son, il faut écrire la partie permettant de récupérer les échantillons, les copier en mémoire, et les jouer à la vitesse d'échantillonnage préalablement transmise ;
  • pour la carte fille permettant une connexion Ethernet au dessus d'USB (RNDIS), il faut écrire une micro-pile réseau capable de récupérer et d'envoyer des fichiers au travers de paquets Ethernet mais aussi le programme sur le PC cible capable de comprendre ces paquets Ethernet ;
  • pour la carte fille incluant une puce Ethernet, il faut implanter la micro-pile réseau et le programme évoquée ci-dessus mais aussi le pilote capable de gérer la puce Ethernet.

Détails (brouillon)

  • Toutes les cartes doivent permettre un accès au port série de leur microcontrôleur pour un déverminage via un FTDI et ajouter des points de tests (bus SPI, alimentation, etc.).
  • Pour tester la partie mémoire de masse, des commandes doivent être prévue pour écrire directement dans un fichier de la mémoire de masse et pour afficher le contenu d'un fichier.
  • Tâche de gestion SPI spécifique, communication avec la tâche par pointeurs, file d'attente pour les demandes de communication, implanter un appel système.
  • Plutôt partir sur n groupes de 4 binômes, chaque binôme réalise une carte fille et en commun une carte mère pour obtenir au final un pico-ordinateur.