Dans le précédent article, nous avons fait connaissance avec le signal /WAIT et son utilité lorsqu'il est associé à une action découlant de l'inspection du signal /M1. Nous avons rapidement développé un croquis Arduino nous permettant de lier ces deux signaux et avons eu l'impression que ceci fonctionnait à merveille puisque l'exécution des instructions par le Z80 semblait effectivement ralentie. Faisons face ensemble à la triste réalité, aux limitations d'une carte comme l'Arduino UNO et surtout, à la façon de régler le problème...
À la fin du précédent article se trouvait une capture d'écran d'un oscilloscope présentant deux signaux : le signal /M1 généré par le Z80 et le signal /WAIT produit par nos soins. Ce qu'on peut y voir n'est absolument pas le résultat que nous visions. En effet, notre objectif était de passer /WAIT à l'état bas dès lors que le signal /M1 passait à la masse, puis après une courte pause faire revenir /WAIT à la tension d'alimentation pour laisser le Z80 poursuivre son exécution.
Un oscilloscope, même d'entrée de gamme, est un avantage certain pour identifier les problèmes. On peut voir ici clairement que notre signal /WAIT (en bleu, en bas) ne descend pas à la masse assez rapidement en réaction au front descendant du signal /M1 du Z80 (en jaune, en haut). Le Z80, lui, n'a absolument aucun problème à ressortir de son état d'attente dès que /WAIT passe à l'état haut. Conséquence : plus d'une instruction est exécutée avant que le Z80 ne passe en...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première