Fermer2
X-deathLe 24/08/2018 à 21:34
Bonsoir,

J'aimerai prendre un peu de temps pour écrire un topic participatif sur une cartouche de test Wonderswan chew .
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 trigic
Chacun est invité à réagir surtout si vous consattez de meilleurs choix possibles.

Avant toute chose une présentation du projet arme

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.cheeky


2) Conception Hardware

L'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 tongue

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 Software

Sauf 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 beret : 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 composants

CPLD : 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. chinois
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ématique

A partir de ces réflexions j'ai commencé à mettre au point un schéma "brouillon".

Lien du schéma : tromb Fichier joint : Schématique.pdf

6) Encombrement

J'ai également vérifié l’encombrement sur un patron de PCB non routé.
Voici un aperçu

https://imgur.com/a/X9NV2i7

Avant d'aller plus loin , je voulais partagé publiquement mes réflexions ( des fois que ça puisse servir à d'autres tongue ) et avoir votre avis sur mes choix.

Merci d'avoir lu toilettes