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

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Ligne 13 : Ligne 13 :
= Organisation du travail =
= 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
Vous aurez, comme d'habitude, la lourde tâche de tester ce module de travaux pratiques.
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.
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 =
= Tâches à réaliser =

Version du 5 juillet 2023 à 11:01

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

Pour tous les binômes :


Les tâches à réaliser sont de plusieurs types :

  • fabrication de cartes, que ce soit des cartes mères ou des cartes filles ;
  • programmation de cartes FPGA en VHDL pour réaliser des cartes filles très spécifiques ;
  • programmation du système d'exploitation.

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 ATMega16u2 pour une connexion série USB ;
  • 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.

Cartes FPGA

Les pistes pour les cartes filles FPGA/VHDL :

  • carte VGA ;
  • carte mémoire de masse autour d'une carte mémoire SD accédée en mode direct ;
  • carte co_processeur pour Ethernet (e.g. calcul de checksum, transceiver manchester).

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 ;
  • affichage de chaînes de caractères ;
  • ordonnancement
  • interpréteur micro-python

Détails (brouillon)

 La structure de la plateforme de projet :
* Processeur du pico :
  1) ATMega328p (utilisation possible d'Arduino nano ou mini)
  2) ATMega{16,32}u{2,4} pour avoir directement une connexion USB
  3) ATXMega (kit de dév disponibles) pour avoir plusieurs UART, faire du DMA, non testé
  4) ARM cortex-M0 (ce serait probablement le mieux mais ça me paraît joueur)
* Clavier :
  1) Port série
  2) Clavier maison avec matrice de touches
  3) Clavier USB avec un AT90USB647 LUFA/Host
* Ecran :
  1) Port série
  2) Ecran LCD
  *) FPGA VGA (à faire dans tous les cas)
* BIOS en mémoire Flash du processeur
* Mémoire de masse
  1) EEPROM du SoC
  2) Flash SPI
  3) Clef USB avec un AT90USB647 LUFA/Host
  4) FPGA mémoire M.2 :D
* Communication extérieure
  1) Port série
  2) Connexion USB "vendeur spécifique"
  3) Puce Ethernet 10Mb/s ENC28J60
  4) Connexion USB LUFA/RNDIS
5) Ethernet natif sur des ARM
 Des architectures possibles :
 * Compacte :
    - un ATMega*u*,
    - son port série (TX) pour la communication vers FPGA/VGA,
    - son port série (RX) pour le clavier (terminal série),
    - son port SPI pour la mémoire de masse,
    - son module USB pour la connexion "vendeur spécifique".
 * Distribuée bus série partagé :
    - un ATMega328p,
    - un port série partagé (TX pour sélectionner un gestionnaire) :
      = 'V' pour vidéo, envoi vers le gestionnaire vidéo FPGA/VGA,
      = 'S' communication avec le gestionnaire série (un ATMega*u* LUFA/CDC),
      = 'C' communication avec le gestionnaire clavier (un AT90USB647 LUFA/Host/Clavier),
      = 'M' communication avec le gestionnaire mémoire de masse (un ATMega* avec une flash SPI),
      = 'R' communication avec le gestionnaire réseau (un ATMega*u* LUFA/RNDIS).
 * Distribuée bus SPI :
    - un ATMega328p,
    - son port série pour le gestionnaire vidéo FPGA/VGA,
    - son bus SPI :
       = communication avec le gestionnaire série (un ATMega*u* LUFA/CDC),
       = communication avec le gestionnaire clavier (un AT90USB647 LUFA/Host/Clavier),
       = communication avec le gestionnaire mémoire de masse (un ATMega* avec une flash SPI),
       = communication avec le gestionnaire réseau (un ATMega*u* LUFA/RNDIS).
 * Distribuée avec plusieurs UART :
    - un ATXMega,
    - port série (TX) vers le gestionnaire vidéo FPGA/VGA,
    - port série (RX) pour les entrées clavier série,
    - port série avec le gestionnaire clavier (un AT90USB647 LUFA/Host/Clavier),
    - port série avec le gestionnaire mémoire de masse (un ATMega* avec une flash SPI),
    - port série avec le gestionnaire réseau (un ATMega*u* LUFA/RNDIS).