Forum Électro-Bidouilleur

Merci de vous connecter ou de vous inscrire.

Connexion avec identifiant, mot de passe et durée de la session
Recherche avancée  

Nouvelles:

Bienvenue au Forum de discussion Électro-Bidouilleur! Inscrivez-vous pour participer aux discussions!: 
http://forum.bidouilleur.ca/index.php?action=register Les demandes d'inscription sont révisées quotidiennement.

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.

Sujets - marcf70

Pages: [1]
1
Vos projets et Montages d'Électronique / Carte CPU
« le: mai 30, 2021, 08:57:59 pm »
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...


2
Bonjour,

Merci de m’accueillir sur le forum. J’ai 50 ans et je vie en France près de Paris. Ingénieur généraliste de formation, j’ai reçu une formation de base en électronique lors de mon cursus, avant de m’orienter vers le développement logiciel.

J’ai recommencé à faire de l’électronique il y a une dizaine d’années, avec une orientation particulière pour les systèmes à micro-processeurs 8 et 16 bits.

J’ai commencé par une carte 6809 en wrapping, avant de concevoir un PCB via Kicad. J’ai depuis réalisé une carte 68008 avec laquelle je réalise divers expérimentations (mise en œuvre de bus I2C et SPI, mise en œuvre d’un PSG AY-3-8912, …).

Je travaille actuellement sur une carte 6502 incluant un Contrôleur d’interruptions et une sélection de banques mémoire (réalisées en VHDL avec un CPLD), ainsi qu’un chargement de firmware au boot via un micro-contrôleur.

En plus d’être un hobby, l’électronique est pour moi une superbe opportunité d’apprendre et c’est pourquoi j’apprécie tout particulièrement les présentations vidéos de la chaîne Électro-Bidouilleur.

Marc

Pages: [1]