Un kit autour du EF6809P

C'est la catégorie reine de l'ordinophile, 8 bits et pas un de plus!
Single board ou bus S-100 acceptés.

Modérateurs : Papy.G, fneck, Carl

Avatar du membre
Papy.G
Modérateur
Messages : 1637
Enregistré le : 10 juin 2014 13:40
Localisation : Nantes/La Roche sur Yon

Re: Un kit autour du EF6809P

Message par Papy.G » 24 juil. 2015 00:51

Il me semblait avoir compris que le port série intégré dans le 8052 était capable de ça (recevoir une horloge externe), j'ai donc supposé qu'un composant série dédié pourrait le faire. :oops:
J'ai un peu de mal avec les appellations techniques précises (UART, DMA...) désolé de m'embrouiller, j'apprends encore.

Je ne parlais pas d'écriture dans l'EEprom, j'ai une petite idée des tempos à mettre en œuvre, si l'on ne veut pas "poller" (c'est comme ça que l'on dit?) comme un furieux le temps que s'achève l'écriture. Je demandais si la lecture était assez rapide pour exécuter du code directement depuis l'EEProm, car mes premières tentatives d'exécution de code écrits sur une EEprom ont été des échecs (sur un 8052 à ~12MHz, ceci dit), et j'aimerais avoir une info, savoir un précédent, ou si la cause en est ailleurs.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

Daniel
Messages : 9611
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Un kit autour du EF6809P

Message par Daniel » 24 juil. 2015 07:56

Dans le contrôleur de carte SD pour Thomson (6809 à 1 MHz), j'utilise pour tous les tests une Atmel AT28C64B. Je n'ai jamais eu aucun problème pour exécuter le code. A 12 MHz, évidemment, ce n'est peut-être pas la même chose.
http://dcmoto.free.fr/bricolage/cs91-280/index.html
Daniel
L'obstacle augmente mon ardeur.

Avatar du membre
irios
Messages : 3074
Enregistré le : 04 nov. 2007 19:47
Localisation : Rochefort du Gard (30)
Contact :

Re: Un kit autour du EF6809P

Message par irios » 24 juil. 2015 11:20

siliconal a écrit :Pour le PS/2, je ne crois pas que ce soit possible ou au moins que ce soit plus facile avec un UART vu que la communication PS/2 est certes série mais asynchrone ...
Je ne pense pas que le PS/2 fonctionne en asynchrone, en effet c'est un protocole série synchrone bidirectionnel donc il pourra être facilement interfaçable avec n'importe quel USART (Universal Synchronous Asynchronous Receiver Transmitter) et non avec des UART (Universal Asynchronous Receiver Transmitter).
Pour y voir plus claire sur le fonctionnement du PS/2, regardes là c'est bien expliqué : http://jpbachy.free.fr/Projets2005/PIC/ ... lavier.htm
Bonne bidouille !! :mrgreen:
http://irioslabs.over-blog.com/

La connaissance ne vaut que si elle est partagée par tout le monde.
I2C

siliconal
Messages : 88
Enregistré le : 24 oct. 2014 20:59

Re: Un kit autour du EF6809P

Message par siliconal » 25 juil. 2015 22:01

Papy.G a écrit :Il me semblait avoir compris que le port série intégré dans le 8052 était capable de ça (recevoir une horloge externe), j'ai donc supposé qu'un composant série dédié pourrait le faire. :oops:
J'ai un peu de mal avec les appellations techniques précises (UART, DMA...) désolé de m'embrouiller, j'apprends encore.
Sur le 8052, le port de communication est un UART (RX et TX) donc série asynchrone, donc le microcontroleur utilise sa propre horloge Série et le périphérique utilise aussi sa propre horloge et la synchronisation se fait par la vitesse des deux interfaces série qui doit être égale.
Papy.G a écrit :Je ne parlais pas d'écriture dans l'EEprom, j'ai une petite idée des tempos à mettre en œuvre, si l'on ne veut pas "poller" (c'est comme ça que l'on dit?) comme un furieux le temps que s'achève l'écriture.
J'avais mis un exemple de code avec temporisation permettant de ne pas poller les pins de l'EEPROM pour savoir si l'écriture en interne est achevée. J'ai essayé avec une temporisation de 8ms et ça marche sans problème, mais pour l'EEPROM 29C256 que j'ai utilisé, il y a une contrainte à respecter: Il ne faut pas dépasser 150us entre l'envoi d'un octet et l'envoi de l'octet suivant pour l’écriture, sinon une fois cette 150us entre 2 octets successifs, le reste des 64 octets sera rempli par des $FF puis sera écris en interne.
Papy.G a écrit :Je demandais si la lecture était assez rapide pour exécuter du code directement depuis l'EEProm, car mes premières tentatives d'exécution de code écrits sur une EEprom ont été des échecs (sur un 8052 à ~12MHz, ceci dit), et j'aimerais avoir une info, savoir un précédent, ou si la cause en est ailleurs.
Pour la lecture de l'EEPROM, celle que j'ai utilisé a un temps d'accès en lecture de 70ns, celle utilisée par Daniel a un temps d'accès en lecture de 150ns, ce qui est très inférieur au temps de cycle de bus du 6809 avec un quartz de 4Mhs qui est de 1us et aussi au cycle de bus du 8052 avec un quartz de 12Mhz qui aussi de 1us (puisque divisé en interne par 12). Donc théoriquement il n'y aura pas de problème de lecture sur les EEPROM usuelles sauf cas exceptionnels.

siliconal
Messages : 88
Enregistré le : 24 oct. 2014 20:59

Re: Un kit autour du EF6809P

Message par siliconal » 25 juil. 2015 22:05

irios a écrit :Je ne pense pas que le PS/2 fonctionne en asynchrone, en effet c'est un protocole série synchrone bidirectionnel donc il pourra être facilement interfaçable avec n'importe quel USART (Universal Synchronous Asynchronous Receiver Transmitter) et non avec des UART (Universal Asynchronous Receiver Transmitter).
Je ne sais comment il peut fonctionner avec un USART? peut être grâce à la propriété Synchronous du USART.

Dans tous les cas, je n'ai jamais essayé cette interface, mais je crois que je vais l'étudier et l'essayer. J'en ai un de disponible.

Avatar du membre
Papy.G
Modérateur
Messages : 1637
Enregistré le : 10 juin 2014 13:40
Localisation : Nantes/La Roche sur Yon

Re: Un kit autour du EF6809P

Message par Papy.G » 30 juil. 2015 02:24

Daniel> Ce n'est pas si grave, pour ma part, elle ne faisait que 2kO et j'aurais recours à de la flash à l'avenir, pour ces raisons de timing, mais aussi pour le volume, et pouvoir écrire dans une zone en exécutant le code depuis une autre.

Siliconal> Oui, mes réflexions sur l'utilisation d'une carte SD sur le 8052 ont fini par me faire croire qu'il supportait les liaisons synchrones, mais effectivement, ce n'est pas prévu nativement.
Pour la fréquence horloge, elle n'est pas divisée en interne, mais le processeur a besoin d'au moins douze battements pour exécuter une instruction. J'ai eu des chronogrammes de séquencement je ne sais plus où, sous les yeux, et il me semble bien que les fetch ne se font pas à seulement 1µS (déjà, des instructions de 2 octets prennent 1 cycle processeur, sans même avoir les chronogrammes pour preuve).
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

siliconal
Messages : 88
Enregistré le : 24 oct. 2014 20:59

Re: Un kit autour du EF6809P

Message par siliconal » 03 août 2015 12:43

Papy.G a écrit : Siliconal> Oui, mes réflexions sur l'utilisation d'une carte SD sur le 8052 ont fini par me faire croire qu'il supportait les liaisons synchrones, mais effectivement, ce n'est pas prévu nativement.
Pour la fréquence horloge, elle n'est pas divisée en interne, mais le processeur a besoin d'au moins douze battements pour exécuter une instruction. J'ai eu des chronogrammes de séquencement je ne sais plus où, sous les yeux, et il me semble bien que les fetch ne se font pas à seulement 1µS (déjà, des instructions de 2 octets prennent 1 cycle processeur, sans même avoir les chronogrammes pour preuve).
C'est vrai mais l'horloge 12 Mhz est divisée de telle façon que chaque tâche soit effectuée pendant une partie du cycle complet et aussi partagée pour permettre le multiplexage des données et adresses.

J'ai un peu revu la datasheet du 8052.

Il parait que le temps d'attente de lecture dépend de l'utilisation de la mémoire: Programme ou donnée.

Pour l'EEPROM utilisée comme programme, le temps d'attente avant lecture est de 125 ns (/PSEN to Valid Instr. In)

Pour l'EEPROM utilisée comme données, le temps d'attente avant lecture est de 252 ns (/RD to Valid Data In)

Donc, selon le cas, le temps d'accès en lecture de ton EEPROM doit être inférieur au temps d'attente correspondant du 8052.

Donc pour l'EEPROM AT29C256 par exemple, le temps d'accès en lecture de 70ns ce qui est inférieur aux deux cas.

Et pour l'EEPROM 28C64, le temps d'accès en lecture de 150ns, ce qui est peut fonctionner comme mémoire donnée mais pas comme mémoire programme. Mais il y a d'autres paramètres qu'il faut tenir en compte, est ce que tu veut valider l'EEPROM par /CE ou par /OE (car le temps d'accès peut parfois être divisé par 2°.

Avatar du membre
Papy.G
Modérateur
Messages : 1637
Enregistré le : 10 juin 2014 13:40
Localisation : Nantes/La Roche sur Yon

Re: Un kit autour du EF6809P

Message par Papy.G » 04 août 2015 02:11

Ah, oui, c'est vrai, le timing est différent entre lecture Données et Code.
Dans mon cas, c'était un AT28C16-15PC, donc 150ns, c'est mort, mais c'est sans importance, je continue mon projet avec des Flash plus rapides (45ns). J'aurais aimé faire uniquement avec de la SRAM, mais il faut, en cas de problème, tout recharger avec un panneau à boutons, j'en ferais peut-être un un jour pour le fun.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

siliconal
Messages : 88
Enregistré le : 24 oct. 2014 20:59

Re: Un kit autour du EF6809P

Message par siliconal » 06 août 2015 23:56

Avec 45ns comme temps d'accès je crois que tu n'aura pas de problème de disponibilité de données à lire à temps.

Pour l'utilisation de la RAM, je n'ai pas bien compris ce que tu veux dire par tout recharger? tu parles du programme?

Pour mon cas J'utilise le clavier hexadécimal et une routine du moniteur initial sur EPROM pour charger le programme compilé du PC via RS232 et après son chargement je l’exécute en utilisant le clavier hexadécimal en une autre routine du moniteur initial sur EPROM.

Le programme que je télécharge est mon nouveau moniteur sur lequel j'ai programmé toutes les routines nécessaires et qui incluent aussi la gestion du clavier PS/2 pour plus d'autonomie et de facilité de développement sur le kit même.

Avatar du membre
Papy.G
Modérateur
Messages : 1637
Enregistré le : 10 juin 2014 13:40
Localisation : Nantes/La Roche sur Yon

Re: Un kit autour du EF6809P

Message par Papy.G » 07 août 2015 00:06

En fait, il va falloir que je trouve un mécanisme pour changer de blocs, mais si je bossais sans rom, que avec de la RAM, ça me simplifierait le câblage, et l'utilisation aussi (pas de timings, programmation possible dans tout l'espace d'adressage à tout moment), sauf qu'en cas de perte d'alimentation de la SRam, il faudrait recharger au moins un bootloader ou un petit moniteur à l'aide d'un panneau de programmation matériel, ou encore un lecteur de cartes.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

siliconal
Messages : 88
Enregistré le : 24 oct. 2014 20:59

Re: Un kit autour du EF6809P

Message par siliconal » 07 août 2015 00:14

Je suis entrain de finaliser mon kit du point de vue circuit imprimé, connecteurs, boitier et sérigraphie pour une offre de production en petite quantité pour des cartes universelles pour machines à laver industrielles.

Au début je me suis orienté vers le logiciel EAGLE qui m'a paru être une bonne solution pour le tracé des circuits imprimés mais après avoir vu les énormes possibilités de ISIS et ARES qui permettent de faire les schémas, les simulations (avec code programme des microprocesseurs / microcontrôleurs) et le tracè des circuits imprimés plus facilement, j'ai décidé de l'essayer avec mon kit.

Malheureusement je n'ai pas trouvé de modèle (si c'est bien le bon terme) du 6809 ou plutôt sa bibliothèque.

Est ce quelqu'un peut m'aider dans ce sens.

siliconal
Messages : 88
Enregistré le : 24 oct. 2014 20:59

Re: Un kit autour du EF6809P

Message par siliconal » 07 août 2015 00:33

J'ai commencé à câbler un 8031 avec le 74373 et des EEPROM sur lesquelles je n'ai pas encore commencer à mettre le code.

Prochainement je pourrais avoir tous les problèmes sur lesquels tu es tombé et je pourrais comprendre mieux ce qui tu dis.

Mois mon idée pour le 8051 et compagnie, c'est de mettre un SRAM commune entre le kit 6809 actuel (ou autre déjà fonctionnel sans problème et programmable facilement) et le nouveau montage du 8031 (qui peut être remplacé par 8052 avec EA câblée pour utilisée la mémoire code externe).

Cette SRAM sera peuplée par du code à partir du 6809 et sera maintenue en alimentation avec les 2 kits mais le basculement entre bus sera réalisé par des ampli bus 3 états (74244 et 74245) en utilisant les signaux de gestion des bus du 6809 (par programmation) et 8031 (par coupure d'alimentation ou autre mécanisme permettant de mettre sans bus en 3ème état).

C'est encore en état de réflexion et je ne sais pas si ça peut fonctionner sans problème.

Cette solution peut éviter d'utiliser des EPROM à programmer à chaque changement d'un simple bit ou d'une EEPROM très difficile à gérer en programmation in situ surtout avec les microcontrôleurs 80xx.

Après cette étape d'essai et de programmation le code finalisé pourra être mis sur une EPROM. et il sera de préférence un mini moniteur ou un bootloader.

Avatar du membre
Papy.G
Modérateur
Messages : 1637
Enregistré le : 10 juin 2014 13:40
Localisation : Nantes/La Roche sur Yon

Re: Un kit autour du EF6809P

Message par Papy.G » 07 août 2015 01:30

Attention, le 8031 est "harvard", tu penses confondre espace code et données?
Aussi, les IO ne sont pas trois états, il faudra un moyen de les découpler du bus.
A la finale, dans ma machine, j'aimerais avoir des io accessibles en espace données, avec masquage désactivable pour avoir accès à tout l'espace de données, et une possibilité de présenter le bloc que l'on veut (dans la flash ou la sram) sur le bus données ou code (pour pouvoir exécuter depuis la ram et écrire dans la flash).
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

Avatar du membre
F1FCO
Messages : 215
Enregistré le : 26 juin 2015 23:22
Localisation : NIMES

Re: Un kit autour du EF6809P

Message par F1FCO » 07 août 2015 15:13

bonjour à tous,
moi qui ne "parle" que le BASIC, je suis toujours impressionné par ce type de réalisation ou en partant d'un composant de base (comme le 6809), on arrive à lui parler, à le faire communiquer... à réaliser un "ordinateur" complet
mes expériences dans ces domaines consistent à me procurer des circuit imprimés, les composants, et souder... (sous la binoculaire s'il le faut)
programmer de EPROMS, des PICs... je sais faire et j'ai ce qu'il faut (programmateur ELNEC, PICKIT 3...) mais comprendre le binaire que je charge dedans ???
Je suis entrain de finaliser mon kit du point de vue circuit imprimé, connecteurs, boitier et sérigraphie pour une offre de production en petite quantité pour des cartes universelles pour machines à laver industrielles.
Siliconal, juste une petite question à ce sujet : pour le contrôle de machines à laver, n'aurais tu pas eu intérêt à prendre un microcontrôleur moderne et tout ce qui allait avec ?
ce qui n'enlève rien à ton développement "rétro" avec le 6809
je pense que tu connais aussi le site de Grant Searle : http://zx80.netai.net/grant/index.html
j'ai réalisé deux montages (avec le 6502 et avec le 6809) sur circuit de test, méthode spaghetti

bonne continuation, je reste attentif
amicalement, Pierre

siliconal
Messages : 88
Enregistré le : 24 oct. 2014 20:59

Re: Un kit autour du EF6809P

Message par siliconal » 10 août 2015 14:13

Papy.G a écrit :Attention, le 8031 est "harvard", tu penses confondre espace code et données?
La SRAM prévue va servir pour le 8031 comme mémoire de code ROM et pour le 6809 comme mémoire de donnée sur laquelle et il va écrire le code à executer par le 8031.
Papy.G a écrit :Aussi, les IO ne sont pas trois états, il faudra un moyen de les découpler du bus.
Pour découlper les ports du 8031, je pense à mettre des amplis bus 3 états commandés par le 6809 qui donnera la main au 8031 aussitôt qu'il aura fini de remplir la SRAM par le code du 8031.

Papy.G a écrit :A la finale, dans ma machine, j'aimerais avoir des io accessibles en espace données, avec masquage désactivable pour avoir accès à tout l'espace de données, et une possibilité de présenter le bloc que l'on veut (dans la flash ou la sram) sur le bus données ou code (pour pouvoir exécuter depuis la ram et écrire dans la flash).
Si j'ai bien compris ton idée, tu n'as besoin d'aucun mécanisme pour ça puisque l'espace d'adressage du code peut occuper 64Ko (commandé par /PSEN) et l'espace d'adressage des données peut aussi occuper 64Ko (commandé par /RD et /WR) + 256o de RAM interne, donc en total tu as 128Ko d'espace adressables directement par le 8052. Il faut bien sur mettre /EA à 0 pour utiliser la mémoire code externe.

Répondre