A mon tour de jouer avec le port LEP...
J'y ai branché ce que j'avais sous la main, à savoir une carte
V-USBDev. Cette carte est équipée pour utiliser V-USB, une stack USB logicielle pour microcontrôleurs AVR.
L'idée est de coder/décoder les bits reçus via USB au format LEP (dans un premier temps, après on verra pour le mode rapide), afin de pouvoir facilement transférer des fichiers entre PC (ou autre tant qu'il y a un port USB) et MO.
Pour l'instant la génération du signal MO5 fonctionne. Il reste à faire le décodage dans l'autre sens. Le logiciel sur PC permet d'envoyer un bloc au choix d'un fichier K7, le reste étant pour le moment fait avec un script bash.
Il reste à faire la détection du signal motor pour pouvoir chaîner plusieurs fichiers en laissant le MO5 décider quand il veut charger le fichier suivant, avant de compléter le logiciel et de le rendre plus agréable à utiliser (barre de progression, rembobinage, tout ça).
Le firmware
Le logiciel PC (tout OS équipé de libusb)
Notes techniques :
* La stack V-USB étant entièrement loicielle, elle est assez rigoureuse sur les timings. Donc, les données pour le MO5 sont générées sous interruptions à l'aide du timer 1. La méthode utilisée peut surement servir pour d'autres projets ici...
* Les requêtes USB Control Transfer avec V-USB sont limitées à 254 bytes. ça tombe bien, c'est justement la taille maximale des données dans un bloc cassette MO5! Les infos supplémentaires (type de bloc et taille) sont transmises dans le header USB (qui a justement des champs "type" et "taille". Le signal de synchro en début de bloc et le checksum sont générés à la volée. Dans ce mode, on ne peut donc transfére rque des blocs "valides". Mais je vais réfléchir à un mode plus générique...
* La piste son des cassettes n'est pas gérée. Je pense me diriger vers une solution du genre "lire un MP3 sur PC et le synchroniser avec le signal MOTOR".lire un MP3 sur PC et le synchroniser avec le signal MOTOR