Z80 : la suite

DSC01732_small
A gauche le Z80 relié à 2 extensions I/O 16 bits MCP23017. A droite, le test de la communication I2C entre l’arduino et un MCP23017 lui-même relié à une interface bus tri-state le 74HC245. Pour tester le fonctionnement, 3 leds sont connectées.

Dans les articles précédents, nous avons connecté un microprocesseur Z80 avec un arduino émulant la mémoire.

Dans la perspective de passer à l’étape suivante, et d’intégrer une SRAM (mémoire statique) , j’ai repensé l’architecture du projet de micro-ordinateur Z80. Le rôle de l’arduino ne sera plus d’émuler la mémoire, mais d’écrire le programme dans la SRAM au démarrage. A partir de ce moment, le Z80 ira chercher ses données ou codes directement dans la SRAM, ce qui améliorera *significativement* les performances, et l’arduino pourra éventuellement servir de moniteur pour le débogage. Continue reading Z80 : la suite

Advertisements

Arduino uno minimal sur breadboard

DSC01716_bis

L’Arduino Uno et son environnement de développement facilitent grandement le prototypage. Mais quand votre projet est au point, comment transférer le microcontrôleur et le faire fonctionner de manière “autonome” ? Nous répondons à cette question en installant un microcontrôleur atmega328p (le même que celui de l’Arduino Uno) sur une breadboard dans une configuration minimale.

Continue reading Arduino uno minimal sur breadboard

Mini-ordinateur Z80 minimal

DSC01713_bis

Ce genre de montage est un classique du genre pour tous ceux qui partent à la découverte du Z80. Notre microcontrôleur (un Atmega32A) fournit au Z80 un signal d’horloge et des codes NOP (not an operation) sur le bus de données. A chaque demande d’accès en lecture, le moniteur affichera l’adresse mémoire placée par le Z80 sur le bus d’adresse.

Vous trouverez le code de ce projet sur :  https://github.com/CodingPat/discovering_atmega32a/tree/master/Z80_01

 

Continue reading Mini-ordinateur Z80 minimal

Configurer à 8Mhz l’horloge de l’Atmega32A

Par défaut, l’horloge de l’Atmega32A est configurée à 1Mhz. Cela permet de limiter la consommation électrique, et une vitesse supérieure n’est pas toujours nécessaire. Ce sera pourtant le cas dans nos prochains projets qui consisteront à piloter un microprocesseur Z80.

Pour cela, nous allons modifier la programmation du fusible lfuse de l’Atmega32A.

Continue reading Configurer à 8Mhz l’horloge de l’Atmega32A

ATMEGA32A : générer un signal à une fréquence choisie via l’utilisation d’un timer

Dans cet article, nous allons parler de l’utilisation des timers intégrés à l’atmega32A.
Le timer nous permettra de générer un signal à une fréquence choisie (que je projette d’utiliser prochainement comme signal d’horloge).

Le code sur GitHub : https://github.com/CodingPat/discovering_atmega32a
Exemple : 06_timer

Continue reading ATMEGA32A : générer un signal à une fréquence choisie via l’utilisation d’un timer

Atmega32A – C toolbox : communication série UART

Minicom_serial_loopback

Notre toolbox pour Atmega32A contient à présent des routines fonctionnelles pour communiquer via le périphérique série UART. Sur la copie d’écran ci-dessus, un programme de démo “loopback” : tous les caractères tapés sont renvoyés à l’écran via le câble FTDI relié à l’Atmega32A (voir articles précédents). Du côté du terminal virtuel sur le PC, j’utilise à présent minicom.

Le dépôt : https://github.com/CodingPat/discovering_atmega32a

Continue reading Atmega32A – C toolbox : communication série UART