Bonsoir,
J'aimerai prendre un peu de temps pour écrire un topic participatif sur une cartouche de test Wonderswan
.
Ce topic présente publiquement quelques recherches que j'ai faites pour concevoir une cartouche sur cette console et tenter de lever la malédiction sur l'ancien projet
Chacun est invité à réagir surtout si vous consattez de meilleurs choix possibles.
Avant toute chose une présentation du projet
1) Fonctionnalitées de la cartouche -Pouvoir tester du code facilement sur la console sans programmateur externe
-Communication avec un PC par le port USB
-
Éventuellement permettre un moyen de sauvegarde par EEPROM-Doit pouvoir être soudable à la main avec une station à air chaud ou un four à refusion
-Entièrement Open Source
-Ne cannibalise aucun composant d'une cartouche officielle
-Prix de vente <= 30 € pour que ça reste attractif/utile
Ce projet n'a pas pour but de faire une cartouche flash compatible avec un maximum de jeux.
Pour cela il existe déjà la Flash Mata et il y aura la futur cartouche Wodermadeleine de Godzil.
Toutefois cette cartouche devrait être compatible avec quelques jeux officiels ( ceux dont la partie hardware est la plus basique.
C'est donc une réactualisation de l'ancien projet avec une partie hardware moderne.
2) Conception HardwareL'encombrement relativement reduit d'une cartouche Wonderswan ne facilite pas la tâche.
Deplus pour rester dans un cout faible , il va falloir se contenter du minimum
le composant principal et indispensable : le CPLD qui aura pour rôle :
-remplacer le composant Bandai des cartouches.
-avoir une fonction qui permet de faire une conversion bidirectionnelle entre les lignes de data de la console et un composant Série <> USB.
-Gestion du Bankswitch Loader / Homebrew
-*Gestion de l'EEPROM*
Une mémoire Flash qui contient le Loader + de le reste de l'espace dispo pour stocker le/les homebrews
Un composant qui fait la conversion série <> USB
Une transmission série peut être réalisé faiclement point de vue code , nécessite peu d' IO et de nombreux composant existe pour faire une transmission série <> USB y compris à faible cout ( j'y reviendrai après ).
Après mesure il est possible d'utiliser certains connecteurs micro USB dont l'encombrement reste dans la taille standart d'une cartouche.
Éventuellement si la place le permet une EEPROM pour sauvegarder des données.
Pour le basculement Loader/Jeu je pensai utiliser la pin de détection de l'USB.
Si le câble USB est brancher et qu'on démarre la console , on arrive sur le Loader , sinon on démarre le jeu.
3) Conception SoftwareSauf erreur le principal problème est qu'il n’y a pas de compilateur de langage haut niveau qui permette de générer un code directement compatible avec le processeur et les spécificités de la Wonderswan.
Il faut donc écrire du code en ASM, et c'est clairement ce que je considère comme la partie la plus complexe du projet.
Je ne suis pas programmeur donc je ferai le strict nécessaire
: pas de partition , système de gestion de fichier juste des interruptions qui iront commander le port Série.
Néanmoins pas mal de choses avait déjà été écrites à l'époque par Orion ou Zerosquare dans le précédent projet et j'aimerai dans la mesure du possible ( et avec leurs accords ) le ré utiliser au maximum
Je reviendrai plus sur la partie Software quand j'aurai quelque chose qui marche.
4) Choix des composantsCPLD : Le CPLD ne doit pas être trop encombrant , avoir assez d'éléments logique pour pouvoir charger le code de Godzil + mon propre code tout en restant à un prix raisonnable.
Après pas mal de recherche j'ai trouvé un Altera Max V qui présentent ces avantages :
5M160ZE64
Gros point positif il existe en format EQFP64 afin de conserver un faible encombrement.
Il ne coute que 3€ pièce , avec un nombre d' IO suffisant et assez d’éléments logique.
Point négatif : Il s'alimente en 1.8V ce qu'il fait qu'il faut rajouter un régulateur.
Mémoire Flash : Autant rester sur du classique : une flash en TSOP48, on trouve des versions 8Mo relativement abordable et pour le coup ça permettra d'avoir beaucoup place pour l'utilisateur avec le même encombrement.
C'est très standard donc beaucoup de ref peuvent convenir, j'ai perso l'habitude d'utiliser celles de Spansion ou de Microchip.
Idem pour l'éventuelle EEPROM : je reste sur du standart en SOIC8
Convertisseur Serial <> USB
J'ai noté deux références intéressantes :
FTDI FT232RL : Fiable , bon support et ne nécessite pas d'oscillateur externe.
par contre il est relativement cher ( plus cher que le CPLD )
CH340 est une alternative chinoises qu'on retrouve dans beaucoup d'Arduino
Il dispose de moins de fonctions , mais à un prix très largement inférieur.
Les deux encombrement sont relativement proches ( SOP16 vs SSOP28) mais le CH240G nécessite lui un oscillateur externe.
Pour les composants passif ( Condo , Résistances ) j'aimerai resté en 0805 et ne pas descendre en dessous.
5) SchématiqueA partir de ces réflexions j'ai commencé à mettre au point un schéma "brouillon".
Lien du schéma :
Fichier joint : Schématique.pdf6) Encombrement J'ai également vérifié l’encombrement sur un patron de PCB non routé.
Voici un aperçu
https://imgur.com/a/X9NV2i7Avant d'aller plus loin , je voulais partagé publiquement mes réflexions ( des fois que ça puisse servir à d'autres
) et avoir votre avis sur mes choix.
Merci d'avoir lu