« SE4Binome2023-4 » : différence entre les versions
Ligne 55 : | Ligne 55 : | ||
[[Fichier:7seg.mp4|vignette|7-segments|néant]] | [[Fichier:7seg.mp4|vignette|7-segments|néant]] | ||
Nous avons complété l'ordonnanceur avec ses différentes tâches. Cependant, pour que les deux tâches utilisant le bus SPI fonctionnent en simultané, il faudrait ajouter une tache supplémentaire | Nous avons complété l'ordonnanceur avec ses différentes tâches. Cependant, pour que les deux tâches utilisant le bus SPI fonctionnent en simultané, il faudrait ajouter une tache supplémentaire contrôlant ce bus SPI. | ||
== Carte FPGA == | == Carte FPGA == | ||
Version du 7 décembre 2023 à 11:43
GIT
Adresse du GIT : https://archives.plil.fr/tnave/PICO_Thomas_NAVE_Thibault_DUYCK.git
Ordonnanceur
Pour la réalisation de notre pico-ordinateur, nous devons réaliser un ordonnanceur qui permettra de gérer nos différents processus.
Réalisation du shield
La première étape consiste à réaliser le shield et le connecteur pour la matrice de LED qui nous permettra d'effectuer tous les tests liés au programme de l'ordonnanceur.
Nous avons testé les LED de notre ordonnanceur avec un code basique pour vérifier si les soudures étaient bonnes et si on arrivait à utiliser les Chip Select de la carte :
#include <avr/io.h>
void init_led(){
DDRD=0x92;
DDRC=0x09;
}
int main(){
init_led();
while(1)
{
PORTD=0x92;
PORTC=0x09;
}
return 0;
}
Programmation
Nous pouvons donc commencer à travailler sur l’ordonnanceur :
- Première étape : Création d'un ordonnanceur avec test sur 2 LED (avec delay_ms) : OK
- Deuxième étape : Modification du code afin d'avoir un état "ACTIF" ou "SLEEP" sur une tâche : OK
- Troisième étape : Ajout de la lecture et de l'écriture sur le port USB : OK
- Quatrième étape : Gestion de la matrice de LED avec la lecture sur port USB : OK ( voir vidéo )
- Cinquième étape : Gestion du 7-segments avec la lecture sur port USB : OK ( voir vidéo )
Nous avons complété l'ordonnanceur avec ses différentes tâches. Cependant, pour que les deux tâches utilisant le bus SPI fonctionnent en simultané, il faudrait ajouter une tache supplémentaire contrôlant ce bus SPI.
Carte FPGA
.......
Carte électronique numérique
Carte choisie : Carte Réseau RNDIS
Commentaire :
ReX : Mettez vos réalisations pour le matériel de l'ordonnancement dans la section appropriée.
Partie 1 : Réalisation de la carte
Il faut donc effectuer la conception de la carte :
On commence par le schematic ci-joint
Après avoir terminé le schematic, on peut passer au routage de la carte
Une fois la carte recue, il faut passer à la soudure :
Carte Vide | Carte Soudée |
---|
Nous avons constaté par la suite que le Chip Select du SPI devait se trouver sur le PB0 ainsi nous avons ajouter un fil d'étain entre PB0 et PB4 pour régler ce problème
Partie 2 : Programmation
Maintenant que la carte est utilisable, il nous faut passer à la programmation de celle-ci
#include <avr/io.h>
#include <util/delay.h>
void init_led()
{
DDRD=0x01;
}
int main(){
CLKSEL0 = 0b00010101; // sélection de l'horloge externe
CLKSEL1 = 0b00001111; // minimum de 8Mhz
CLKPR = 0b10000000; // modification du diviseur d'horloge (CLKPCE=1)
CLKPR = 0; // 0 pour pas de diviseur (diviseur de 1)
init_led();
while(1)
{
PORTD=0x01;
_delay_ms(500);
PORTD=0x00;
_delay_ms(500);
}
return 0;
}