3Fermer5
ZerosquareLe 25/08/2018 à 00:17
Pas encore eu le temps de regarder en détails, mais quelques commentaires à chaud :

X-death (./1) :
-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
top

X-death (./1) :
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.
Attention à prévoir un moyen simple de pouvoir tester son code en étant connecté au PC, sans devoir débrancher/rebrancher le câble USB à chaque fois, sinon ça va être vite galère pour les développeurs. (On en a fait l'expérience à l'AC avec Vince avec les cartouches flashables pour Lynx, sauf que c'était pire, il fallait sortir la cartouche de la console à chaque fois.)

X-death (./1) :
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
Aucun souci (au contraire) pour mon code, pour Orion_ il faudra lui demander mais je pense qu'il sera d'accord aussi.

X-death (./1) :
Point négatif : Il s'alimente en 1.8V ce qu'il fait qu'il faut rajouter un régulateur.
Si tu veux un CPLD qui n'est pas en fin de vie (donc susceptible de plus être dispo bientôt), ça risque d'être de toute façon obligatoire. Ceci dit ce n'est pas un gros problème, un régulateur en boîtier SOT-23 + deux condensateurs céramiques, ça ne prend pas énormément de place et ça ne coûte pas très cher. Par exemple il y a le MCP1700T-1802E/TT, qui est plus petit que celui que tu as choisi, un peu moins cher, et qui n'utilise que des condensateurs de 1 µF. Il est limité à 200 mA, mais je doute que le CPLD consomme autant (et si c'était le cas, la pile de la Wonderswan ne tiendrait pas longtemps grin)

X-death (./1) :
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.
Effectivement FTDI est top question fiabilité, mais nettement plus cher que les concurrents.
C'est dommage, il y a une version low-cost avec moins de broches qui conviendrait (FT234XD-R), mais elle n'existe qu'en QFN, donc difficilement soudable à la main à l'air chaud, et impossible au fer (il faut un vrai four de refusion pour souder proprement ce genre de boîtier, et une machine à rayons X pour contrôler ensuite).
Si tu acceptes un débit maximum de 64 Ko/s, il y a aussi le FT260S qui a l'air intéressant et pas trop cher, par contre je ne l'ai jamais testé.

Le CH*** est pas cher, mais outre le fait que le quartz est externe, c'est un machin chinois dont le support peut être abandonné du jour au lendemain, et qui pose davantage de problèmes de drivers/fiabilité. C'est pas cher mais perso je m'en méfierais. Dans cette gamme de prix, je te conseillerais plutôt le MCP2200. Malgré ce que je pense de Microchip, je pense que ce sera de meilleure qualité. (Attention à compter le prix du quartz si tu compares à FTDI).

Autre possibilité : une interface parallèle 4 ou 8 bits au lieu de l'UART (certains FTDI gèrent ça, pour les autres marques je sais pas). C'est plus rapide et ça consommera probablement moins de LE dans ton CPLD.

Important : prévois un mécanisme de contrôle de flux matériel (RTS/CTS si c'est une UART, ou l'équivalent si c'est une autre interface), parce que le PC va envoyer plus vite que ce que sera capable de traiter la Wonderswan. (On peut aussi le faire en logiciel, mais c'est chiant et ça diminue les perfs.)