Voici quelques nouvelles de l'adaptation du NanoXS88.
Eh bien les amis, ce n'est pas de la tarte. Mais ça avance.
Je rappelle que mon objectif est d'avoir quelque chose qui tourne en temps réel en pilotage par PC. Or avec CDM-Rail, ce n'était malheureusement pas le cas pour le NanoXS88. C'est aussi d'arriver, en le combinant avec le GenLIS88, à faire une centrale qui tienne bien la route, et qui gère la rétrosignalisation.
J'ai mis la priorité sur les opérations courantes (vitesses locos, commandes aiguillages, .....), ainsi que sur la bonne gestion et interaction entre les contrôleurs manuels reliés à Xpressnet . Déjà à ce niveau, le NanoXS88 ne reconnait pas le LH100 de Lenz, ce qui pour moi, est rédhibitoire.
Mais même la centrale Lenz ne digère pas qu'on branche une MultiMaus à la volée (et se met en OFF, ce qui sur un réseau de club est exclu).
J'ai donc soigné particulièrement la gestion du bus Xpressnet, et la génération dur signal DCC (durée des impulsions, et tension stabilisée provenant d'un adaptateur PC).
J'ai passé le quartz à 20 Mhz et pris le PIC 20Mhz, de façon à avoir 5 fois plus de "bande passante". Même en optimisant le code, ce que Paco fait manifestement mieux que moi, je pense qu'il n'est pas possible d'avoir un fonctionnement correct en temps réel en restant sur 4Mhz.
Pour le moment, ça ne se présente pas mal.
Mais la mauvaise nouvelle, c'est que je vais sabrer, au moins dans la première version, un tas de fonctions qui ne sont pas nécessaires au bon fonctionnement "temps réel":
- la programmation des CVs,
- Railcom
- le S88 au niveau du NanoXS88: puisqu'on a celui du GenLiS88 qui marche très bien.
Les caractéristiques seront les suivantes:
- 14 locos en base de donnée, avec des adresses de 1 à 64,
- 64 aiguillages
- 64 signaux.
Pour le moment, je me bats avec la protection contre les courts-circuits: rien de compliqué en soi, sauf qu'il faut que ça digère la commutation des modules de boucles de retournement sans faire disjoncter la centrale. or à ce moment là, on a un court circuit franc entre les deux rails
Ce qui veut dire que la commande DCC qui passait à ce moment-là sur les rails est carrément détruite. Si on ne le gère pas correctement, on peut louper, par exemple, une commande d'aiguillage. En pilotage manuel, ce n'est pas grave, on recommence. Mais en pilotage automatique, ça doit être géré proprement.
Un exemple parmi tant d'autres des "farces" auxquelles on ne pense pas quand on s'attaque au problème au départ, et qu'on découvre au fil du développement, avec toute la joie que ça procure
JP