Jump to content
X-death

[PCB+SOFT] Lecteur de cartouche USB (MD-Dumper)

Recommended Posts

on a pas mal gagné pour le write mais je suis bien emmerdé avec le read...

faut que je trouve comment controler/verifier le status de l'envoi coté STM car lui il va trop vite (ou plutot l'ordi est trop lent/se désynchronise et perd des paquets...)

 

en gros pour résumer, l'usb c'est calé à 1ms au mini (envoi ou reception)

le STM, lui aucun souci toutes les 1ms il check/fait son boulot

mais l'ordi, lui, il peut avoir d'autres trucs à faire et mettre 2ms ou bcp plus a reagir...

 

si tout marchait "bien", on devrait avoir :

~24sec (au mini) pour 2Mo en lecture je suis nul en math ca devrait faire ~32s

 

 

le write lui ne pose aucun souci, l'ordi envoi les données entre 1ms et Xms, le STM met moins de 1ms (~500us) pour programmer les XX bytes... et attend d'en recevoir d'autres

 

LOL, bon j'ai réussi a caler aussi les envoi coté STM

J'ai fait environ 50 dumps consécutifs de différentes cartouches et tout est good !

 

Ce qui nous donne 

Rom 4Mo read : 64sec

Rom 2Mo read : 32sec

Rom 1Mo read : 16 sec

Rom 512ko read : 8sec

 

C'est super stable en plus !
(le stm est éteint, jeux changé etc à chaque fois)

 

post-5150-0-57163900-1496826687_thumb.png

Share this post


Link to post
Share on other sites

je viens de tester le code compilé sur mon vieux portable pc de merde
(c'est grace à lui que l'on a vu que les timings devaient etre bien "larges")

 

PC "vieux"

erase: 15sec 

 

read:

512k: 8sec

1Mo: 16sec

2Mo: 32sec

4Mo: 65sec

 

write:

512ko: 18sec

1Mo: 36 sec

2Mo: 72sec

4Mo: 144sec

 

---------------

 

Mac "récent"

erase: 15sec

 

read:

512ko: 8sec

1Mo: 16sec

2Mo: 32sec

4Mo: 64sec

 
write:

512ko: 9sec

1Mo: 18sec

2Mo: 38sec

4Mo: 75sec

Share this post


Link to post
Share on other sites

Merci ;)

 

Là je ne pourrais plus aller plus vite (sauf un tout petit peu en prog our etre egal au read)

car je suis au max du debit USB en HID, qui est de 64Ko/s

 

ce qui nous donne :

512ko(rom) / 64ko(debit/s) = 8sec

 

pour le read par exemple ;)

 

Par ailleurs j'ai rajouté la detection du Manufacturer et Device ID pour les eprom flash & cie

+ verification si le chip est compatible CFI

 

Ce qui permet de connaitre certaines infos, comme :

- Taille de l'eprom

- Type de puce (8bits, 16bits, 8 et 16 bits etc.)

- Algo utilisé pour les commandes write / erase etc

- VCC max et VCC min

- Timeout erase bloc

- Timeout erase complet

 

Le CFI n'est pas présent sur toutes les eproms, les 29LV et 29W l'ont par exemple.

post-5150-0-61792700-1496912809_thumb.png post-5150-0-15247400-1496912810_thumb.png

 

Pour le timeout chip erase, le not supported est plutot a comprendre dans le sens non renseigné...car dans le datasheet c'est bien indiqué.

 

Faudra faire une liste pour le manufacturer/device id... :P
(car les codes hexa ca va bien 5 minutes)

 

la en l'occurence, c'est une M29W320DB de chez ST

Share this post


Link to post
Share on other sites

oui mais edulcoré alors ^^

 

je pensais faire appel a un fichier externe (.txt) pour que l'exe ne fasse pas 10 tonnes et aussi que ce soit plus souple en cas de nouvelle puces (mais bon ca c'est limité vu ce que l'on utilise pour MD)

 

c'est peut etre (aussi) se faire bcp chier pour rien. 

J'ajoute en dur les XX chip que l'on utilise et basta...

Share this post


Link to post
Share on other sites

J'ai quasi fini de rajouter les 2/3 trucs que je voulais avant la release de cette nouvelle version v2.

 

- ajout du support des  :

29F800

29F1610 (chip qui ne fonctionnent pas sur les xeltek à 300€, lol :lol: )

29L3211

 

les MX29F1610 et 32L3211 ont des algos différents et sont plus lentes à écrire
(vitesse de lecture idem aux autres)

 

- 17sec pour 512ko sur une 32L3211

- 26sec pour 512ko sur une 29F1610 (les meme timings que ceux d'une 29L3211 ne fonctionnent pas, obligé de d'allonger...)

la 29F800 que j'ai testé (hyundai) a les meme vitesse que les 29LV (cad 9sec en ecriture pour 512ko etc.)

 

pour ces 2 eproms flash il est aussi obligatoire de mettre le WE à 3,3v ou 5v après la prog pour jouer sur le hard.

Car en laissant le WE relier à ASEL, le jeu va bien booter (message SEGA LICENSED etc) mais après ecran noir... peut etre un souci de timings WE/console. (honnêtement je n'ai pas cherché) 

 

Edit.

X-death a utilisé le pin /ASEL de la md pour relier le WE eprom et c'est lui qui "semble" poser souci.

En utilisant /LWS ca boot direct sans souci. Donc certainement un petit délais de propagation (pas tres grave, je pense qu'on doit etre peu a encore avoir des eproms en SOP)

Share this post


Link to post
Share on other sites

Oui /Asel ne doit pas être utiliser sur le pcb en mode lecture.

Il est l équivalent de /Ce mais sur la plage 4-8 Mo.

 

Par contre en fixant /We à l état haut coté pcb, tu ne devrais pas avoir d ecran noire.

 

P.s: les 29f1610 vous devez pas être bcp à en utiliser ;-)

Share this post


Link to post
Share on other sites

ouais, mais ca y'a pas d'autres solutions.

 

pour les pcb c'est surtout que mes enfants me demandent de changer de jeux tres régulièrement (sonic 1, 2, 3, batman, mickey world of illusion en ce moment, rien que sur MD)

 

Le Md dumper marche super bien en tout cas.

 

PS. j'ai aussi commencé à faire le pcb pour les jeux intégrés à la snes mais chuuut... ^^

Share this post


Link to post
Share on other sites

×
×
  • Create New...