relais de commutation de l’alim de puissance
Eric : Je ne me souviens plus exactement où tu as prévu le relai de commutation de l’alim de puissance des drivers, mais il me semble que tu as parlé d’un transistor, qui est je suppose contrôlé par l’ATmega. Est-ce qu’on ne peut pas envisager de faire plus simple, en mettant ce relai sur la carte de puissance et en le commandant tout simplement par le 5V de la logique qui arrive sur cette carte ? De ce fait, on est assuré que la séquence d’alim sera correcte quel que soit le contexte de mise en oeuvre de la carte, on se retire cette spécificité de la carte mère, et on économise une I/O.
Gilles : Très Très bonne idée, puisque de toute façon je dois refaire la carte Driver. Celà économise également une connexion (donc connecteur KK 5 pts ou lieu de 6pts), un transitor et permet de connecter l’alimentation directement sur les drivers (donc économie connecteur Molex). Par contre, celà impose 2 relais et une carte driver un peu plus grande. Mais le jeu en vaut la chandelle.
— > OK pour moi, modifs prises en compte dans la V1.1 de la carte numérique.
timer de match externe
Eric : Pour essayer de réduire le besoin en ressources timers et alléger le code à écrire, est-il possible d’implémenter le timer 90s (durée du match) en hardware ?> L’idée est :
d’avoir un monostable qu’on déclenche au moment du début du match (donc par le programme) et qui monte (ou descend) un signal au bout des 90s
de relier ce signal sur une des INT externes, et d’arrêter la logique de match via l’interrupt handler associé.
Gilles : J’ai mieux : je ne sais pas si j’en ai parlé la dernière fois, mais j’ai un Timer Milliseconde qui sers justement de base de temps pour ce genre de chose.
Ce Timer génère une interruption (basse priorité) toutes les millisecondes, et dans cette interruption, plusieurs compteurs (Timer général, Série, Horloge, ...) peuvent être décrémentés (ou incrémentés) jusqu’à une valeur (constante ou passée en paramètre). Lorsque cette valeur est atteinte, le Timer met à jour un Flag (Semaphore) ou lance un S/P prédéfini.
Donc, pas de composants supplémentaires ni d’IT !! Je vous expliquerais plus en détail Jeudi.
OS pour micro-contrôleurs
Eric : Pour info, j’ai fait quelques recherches hier soir sur les OS realtime qu’on peut mettre sur l’ATmega, afin de récupérer des fonctionnalités telles que le multi-threading, les timers,... et donc d’éviter de se faire des noeuds à la tête avec ces pbs de timers convoités par plusieurs process. J’en ai repéré 3 principalement :
AvrX
dtRTK
FreeRTOS
Ce dernier me semble le plus intéressant car supporté par une communauté sous SourceForge. Et il semble être vivant, car la dernière version date d’octobre 2005.
Gilles : Je ne sais pas si ça va nous apporter une réponse intéressante, notamment concernant la génération des divers pulses pour les moteurs et les servos. A creuser...
Je vais investiguer également, mais le problème de ce genre d’OS est de prendre beaucoup de place mémoire (Flash & RAM) et on n’en a déjà pas beaucoup ... c’est pour celà que j’avais dévellopé pour mon ancienne boite le concept de "Timer mS" au départ ... et ça marche pas mal.