1
Vos projets et Montages d'Électronique / Carte CPU
« le: Mai 30, 2021, 08:57:59 pm »
Petite carte à base de 68008 incluant :
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 :
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...
- 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...