Et coucou!
Hier, j'ai reçu les ferrites qu'il me manquait pour raccorder les lignes d'activation (OE/CE) à la circuiterie de ma carte.
Aujourd'hui, j'ai reçu les buffers qu'il me manquait pour la face inférieure. Ca y est, j'ai tout!
Je suis donc montré dans mon antre et j'ai soudé tout ça sur ma carte proto. J'ai enfin pu, du coup, raccorder les rangées de broches qu'il manquait pour en faire une véritable EPROM

.

- Tout y est!
Jusqu'ici, j'avais travaillé totalement dans le vide au niveau du code. Je n'ai pas encore touché au code PC, qu'il faut reprendre complètement. Par contre, j'avais réécrit ce week-end et hier soir une amorce de quelque chose pour le microcontrôleur:
- Le code PIO pour une machine à états qui gère la lecture et l'écritude de données sur 16 broches du microcontrôleur via les buffers externes d'entrées/sorties
- La configuration de la chaîne de DMA (j'utilise 3 canaux, mais j'ai un souci avec le 3ème), qui gère la communication avec le PIO et l'accès mémoire
J'ai tout fait dans le vide, et je viens de faire les premiers tests.
Pour faire simple, j'ai rempli un tableau de words de 0x0000 à 0xffff, et je considère que c'est le contenu de la ROM. Je l'ai stocké dans la mémoire flash embarquée sur ma carte.
A la mise sous tension, je fais un transfer DMA du contenu de la mémoire en question vers la RAM, et j'attends les demandes d'accès à l'EPROM émulée. Le transfert se fait en environ 1ms pour 128ko. Ca turbine! L'idée étant de pouvoir charger une ROM avant que la NeoGeo ait eu le temps de démarrer elle-même!
Dans un premier temps, je fais des tests avec ce que j'ai de plus adapté pour ça: un lecteur d'EPROM!

- Premières lectures
Alors là, on voir qu'on n'est pas encore au point sur le contenu au départ, puis que ça roule par la suite. J'ai enlevé le câble USB, alors la carte est alimentée par le lecteeur d'EPROM juste avant la lecture. C'est un bon test du temps démarrage

.
Ce qui est super bizarre, c'est que j'ai systématiquement un décalage de 3 words au départ. Je ne parviens pas à trouver pourquoi, mais il se fait tard, alors on verra un autre jour!
Je lis 65536 mots, et le DMA enregistre 65539 accès. Il faut que j'arrive à trouver d'où viennent ces 3 accès mystères, qui injectent un décalage dans mon FIFO.
Dans tous les cas, je pense que je vais devoir gérer les cas où les lignes /OE et /CE sont laissées basses et où seules les lignes d'adresses changent. Ca va compliquer un poil les choses, mais ça éviterait ce genre de problèmes.
Bref, évidemment, il reste du boulot, mais pour un truc lancé après avoir bossé dans le vide, ce n'est pas si mal pour un premier démarrage.
Niveau électronique, en tout cas, ça semble bien tenir la route!