Nouvelles:

Le Forum est maintenant chiffré (préambule https). Bien sûr, des liens externes insérés dans les sujets vont demeurer inchangés. Mais la composition des pages du Forum est désormais sécurisée. Si des problèmes d'affichage surviennent, veillez à vider votre cache pour ce site.

Menu principal

Carte CPU

Démarré par marcf70, Mai 30, 2021, 08:57:59 PM

« précédent - suivant »

marcf70

Petite carte à  base de 68008 incluant :


  • 512Kb de SRAM ;
  • 128Kb de FLASH ;
  • 1 DUART 68681 avec double connectique pour interface USB/UART ;
  • 1 TIMER PIT 68230;
  • 1 port d'extention.

La logique de contrôle est réalisée via un CPLD XC9572 et écrite en VHDL.

Un GAL22V10 permet d'augmenter le nombre de canaux d'IRQ du 68008 avec une gestion de priorité en entrée et un mécanisme de daisy chaining pour gérer l'IACK.

Le firmware de la carte est basé sur celui de la carte M68000 Educational Computer Board commercialisée par Motorola au début des années 80.

Les modifications suivantes ont été apportées :


  • Remplacement des deux ACIA par un DUART ;
  • Ajout d'une commande de transfert XMODEM ;
  • Ajout d'une commande de permettant de réecrire le contenu de la FLASH.

Concernant le transfert XMODEM, l'interface USB/UART utilisée par la certe ne gère pas correctement le handshake matériel, ce qui complique fortement le transfert de programmes sur la carte. Les trames du protocoles XMODEM d'origine sont suffisament petites pour qu'il n'y ai pas de pertes de données lors de ces transferts.

La commande de réecriture du contenu de la flash est assez amusante à  coder : lorsque la flash est en cours de programmation, il est impossible d'y accéder en lecture. Du coup, cette commande commence par se recopier en mémoire RAM et s'exécute à  partir de la RAM.

Pour l'environnement de développement, j'utilise ct-ng sous linux. Le gros du travail a été l'adaptation de la newlib (libc pour l'embarqué) aux points d'entrée de la carte pour les I/O.

Il a aussi été nécessaire de réecrire un wrapper pour permettre l'appel des TRAP du moniteur depuis un programme C.

A noter : suite à  une erreur de ma part lors de la commande du PCB, les faces internes et externes ont été interverties...


marcf70

Travaux en cours sur une base 65C02.

Ce projet inclus un MCU ATMega. Le rôle de l'ATMega est double :


  • Charger le firmware du 6502 au boot de la carte et sur commande;
  • Piloter la logique de contrôle et lire l'état des bus du CPU pour avoir un mode pas à  pas matériel.

Une EEPROM SPI est connectée à  l'ATMega et permet de stocker jusqu'à  32 versions de firmware du CPU.

Un adaptateur USB est connecté au port UART de l'ATMega et permet de piloter celui-ci via un moniteur.

En plus du mode pas à  pas, ce moniteur permet de :


  • Charger une nouvelle version de firmare pour le 6502;
  • Sélectionner la version de firmware active;
  • Dumper le contenu d'une portion de l'espace mémoire du 6502;
  • Modifier le contenu de cette mémoire.

Le circuit imprimé ou plutôt les circuits imprimés (approche rack de fond de panier et cartes filles) sont en cours de conception.

L'objectif est ici d'avoir une plate-forme de développement pour écrire un moniteur maison pour le 6502.