Aide matériel 8052 et ttl pour Minitel

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3054
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Aide matériel 8052 et ttl pour Minitel

Message par Papy.G »

Mon projet n'avançant pas, comme je cumule galère sur galère, et que la programmation avec mon breadboard et mes fils ne donne rien, il va falloir que je mette en place le matériel pour aller plus loin, mais j'ai besoin des lumières expertes en 8052, et sur d'autres aspects de l'électronique numérique.

Je souhaite faire une carte d'extension, sur la base du bus proposé dans les Minitels M1b Alcatel, où j'aimerais avoir de quoi booter, 128Ko de Sram moitié en code, moitié en Ram, et rerouter les périphériques (le 8052 fait la distinction Rom/Ram, mais n'a pas de broche pour distinguer les accès périphériques), éventuellement rajouter la possibilité de mettre un ACIA supplémentaire, et un PIA, voire d'autres choses.
L'idée, c'est d'avoir un dispositif de banking, mais je voudrais pouvoir choisir indépendamment quand les périphériques masquent la Ram (uniquement à leurs adresses respectives, ou sur une zone restreinte), quel bloc de 64k est vu en Rom, et quel bloc de 64k est vu en Ram, tout ceci pour pouvoir charger des programmes à exécuter ensuite.
Pour ne pas utiliser trop de broches non câblées sur le bus d'extension, j'aurais aimé utiliser un 373, dont la mémorisation serait activée par /WR et /RD simultanément, mais je ne sais pas s'il est possible quand on est en mode Rom externe de forcer ces deux broches du port 3 en même temps que le port 0 ou 2, et si l'activation /WR et /RD n'a pas de risque de survenir par inadvertance (à la mise sous tension ou autre).
Aussi, je ne sais pas si l'état à la mise sous tension d'un 373 est déterminé, ou si l'on peut le forcer.
Dans le cas où j'utilise uniquement de la Sram, sauvegardée par pile, faut-il absolument un diode schottky (une diode rapide, si j'ai bien compris), ou une diode normale, voire Zener ferait l'affaire? Peut-être avec un petit condo Chimique?

Si c'est pas possible, je récupèrerais les lignes normalement dédiées au clavier, que j'aurais aimé réserver à la carte SD, ce sera peut-être plus simple.

Aussi, j'ai contacté le Professeur Abdeladij Oumnad, qui m'a gentiment proposé de pouvoir corriger et enrichir son petit livret sur le Microcontrôleur 8051/8052, c'est une grande responsabilité, et je suis à l'écoute de vos suggestions concernant ce document qui verra alors une mise à jour.

Merci de votre aide.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Notator
Messages : 1300
Inscription : 09 août 2015 20:13

Re: Aide matériel 8052 et ttl pour Minitel

Message par Notator »

Désolé de le dire, mais tes interventions sont farcies de termes techniques utilisés dans un sens plus qu'approximatif, et c'est un peu pénible à lire, il faut décoder...

'Banking' (???), je suppose qu'il est question d'adressage mémoire par page ; à mon avis, ça ne se justifie pas, et ça complique inutilement les choses. Je pense que 32Ko seraient plus raisonnable.
Ensuite, les lignes de commandes /WR et /RD sont positionnées par le processeur, lequel ne lit (Read=RD) ni n'écrit (Write=WR) dans un emplacement mémoire simultanément, mais tour à tour, selon les instructions qu'il effectue. Donc il ne faut surtout pas les valider en même temps, ni en permanence.

Pour le 74373, c'est un tampon (latch) ; c'est une bonne idée de vouloir tamponner les lignes du bus d'extension, mais le 373 étant monodirectionnel, il ne faut pas oublier de câbler les lignes de données (D0 à D7) en bidirectionnel, car les échanges se font dans les deux sens (processeur vers mémoire, ou mémoire vers processeur). Et l'état de ses lignes de sorties dépend (et reflète) l'état de ses lignes d'entrées.
A la mise sous tension du système, normalement il n'y a rien du tout sur ses sorties, il doit être en état haute impédance, de par la conception du circuit.

Je t'invite vivement à te procurer un (ou plusieurs) livre(s) sur la mise en œuvre matérielle des microprocesseurs.
Celui-ci, très clair, est autour du Z80, mais le principe reste le même pour un autre processeur :
http://www.priceminister.com/offer/buy/ ... uesne.html
Plus centré sur la famille 8051 :
http://livre.fnac.com/a219692/M-Oshmann ... assembleur
Ou celui-ci:
http://www.eyrolles.com/Sciences/Livre/ ... 2225851322

Tous ces livres d'occasion évidemment ; ils n'existent plus en neuf.
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
Avatar de l’utilisateur
Totor le Butor
Messages : 2237
Inscription : 07 sept. 2011 16:14
Localisation : Paris - Mezels

Re: Aide matériel 8052 et ttl pour Minitel

Message par Totor le Butor »

Pendant les premières microsecondes de la mise tension tous les circuits sont dans n'importe quel état et il peut se passer n'importe quoi, le reset est là pour ça, attendre que la tension soit OK pour déclencher les premières instructions du proco qui vont initialiser tous les ports.
Pour plus de sécurité tu peux mettre des pull up ou down pour mieux établir certain niveaux.
Attention pour le 373 l'Output Enable déclenche le mode haute impédance à l'état 1 donc tant que la tension n'est pas franchement établie il va se passer un court moment où les sorties seront actives même en mettant un pull up sur la patte /OE.

Pareil que Notator, pour tamponner et contrôler le bus il vaut mieux un 245 qui est bidirectionnel et a un état haute impédance.

Je n'ai pas compris ton dispositif de banking.
A mon avis il vaut mieux partir sur une extension simple ram ou PIA puis décliner. L'utilisation des /WR et /RD spécifiques au 8052 me semble être la porte à des moyens de contrôles intéressant mais il y a un gros boulot de codage à fournir en parallèle.

Pour le backup de la SRAM il faut utiliser impérativement de la schottky à cause de sa très faible tension de déchet ou alors une diode classique mais alors tu devras avoir une pile ou batterie de sauvegarde d'au moins 4v.
Attention, les tensions de déchet des diodes sont données pour une intensité minimal de quelques milliampères, une SRAM au repos consomme des µA et la tension de déchet peut-être plus importante pour une aussi faible intensité.
Tout dépend du type de mémoire statique que tu veux sauvegarder, il faut regarder la tension minimum de rétention des données dans le datasheet.
Born to bricole
[Rch] Vieux composants électroniques et circuits intégrés toute époque et vieilles cartes .
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3054
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Aide matériel 8052 et ttl pour Minitel

Message par Papy.G »

Je suis désolé pour les termes techniques, j'ai horreur de dire ou d'entendre des mots utilisés à mauvais escient, malheureusement, il me faut parfois faire le choix entre un terme approchant au mieux, ou une longue phrase explicative qui allongerait mes interventions déjà trop souvent trop longues. :oops:
Merci de me corriger, que je ne reproduise pas ces erreurs. :)

L'idée étant de basculer des blocs du volume maximum de la mémoire, je pensais que "bloc" était plus approprié que "page", en outre, dans les documentations que j'ai lues concernant la manipulation du MBC sur GameBoy, il était bien question de bank-switching, j'ai maladroitement raccourci en "Banking". :roll:
Comme il s'agit précisément d'un microcontrôleur, et pas d'un simple processeur, les lignes /WR et /RD sont aussi des lignes d'un des ports d'entrée-sortie, et l'on peut, dans le cadre de cette utilisation, les mettre tous deux à l'état haut comme bas simultanément, si la machine est bien câblée, aucun composant mémoire n'est sensé réagir alors.

L'idée du 373 est d'avoir une sorte de registre à écriture seule, ses lignes de sortie allant vers une logique de sélection, je ne pense pas avoir besoin de bidirectionnel. :?:
Pour l'état haute impédance, il faudrait alors s'assurer que le microcontrôleur n'a pas fini son reset avant que tout soit OK.

Pour les bouquins, j'ai déjà pas fini de tout lire ce que j'ai à la maison, et j'en ai précisément sur le sujet, mais comme là, je visais une manip à la con et pas documentée, j'en ai profité pour poser d'autres questions dans la foulée, dont j'aurais peut-ête trouvé moi-même les réponses dans six mois. :mrgreen:

Pour en revenir à mon problème de pagination, le fonctionnement des interruptions du 8052, et surtout la localisation des vecteurs fait que je souhaitais pouvoir basculer Rom/Ram dès les premières adresses de l'espace de code, pour pouvoir les éditer, et qu'en le faisant par blocs de 64ko, je pensais simplifier la logique de sélection.
Si ce n'avait été pour les vecteurs, j'aurais écouté mon bon sens en optant pour un mélange de Rom, Ram et périphériques dans le même espace d'adressage, au moins dans un premier temps.

Quoi qu'il en soit, activé par une ligne dédiée ou par le bricolage /WR et /RD, un 373 nécessiterait une initialisation nécessitant l'exécution d'un code qui ne peut être lu qu'après son initialisation, c'est donc impossible. Il me faut donc opter pour des vecteurs d'interruption renvoyant ailleurs, ça va me coûter en efficacité et en flexibilité à moins que je ne sacrifie un peu de la mémoire interne du microcontrôleur (sauts indexés, enfin, saut avec adressage indirect).

Ok, donc pour la diode de sauvegarde Ram, pour éviter les prises de tête, je prendrais de la schottky, merci pour l'explication.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Notator
Messages : 1300
Inscription : 09 août 2015 20:13

Re: Aide matériel 8052 et ttl pour Minitel

Message par Notator »

Papy.G a écrit : Comme il s'agit précisément d'un microcontrôleur, et pas d'un simple processeur, les lignes /WR et /RD sont aussi des lignes d'un des ports d'entrée-sortie, et l'on peut, dans le cadre de cette utilisation, les mettre tous deux à l'état haut comme bas simultanément, si la machine est bien câblée, aucun composant mémoire n'est sensé réagir alors.
S'il est question d'utiliser des mémoires ROM/RAM extérieures au microcontrôleur (µC), il est absolument nécessaire de laisser /WR et /RD libres pour leur fonction de lecture/écriture, et pas de s'en servir comme de quelconques lignes d'entrées/sorties
L'idée du 373 est d'avoir une sorte de registre à écriture seule, ses lignes de sortie allant vers une logique de sélection, je ne pense pas avoir besoin de bidirectionnel. :?:
Si c'est pour faire de la sélection d'adresse, un 74138 serait plus judicieux.
Pour l'état haute impédance, il faudrait alors s'assurer que le microcontrôleur n'a pas fini son reset avant que tout soit OK.
Ou mettre des résistances de pull-up ou pull-down (selon ce qui est souhaité), comme préconisé par Totor le Butor.
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3054
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Aide matériel 8052 et ttl pour Minitel

Message par Papy.G »

Oui, c'est prévu d'avoir un 74138 ou dans ce genre derrière, pour la sélection de chip.

Finalement, la possibilité trois état n'a pas d'intérêt pour ce que je veux en faire, le 273 semble être plutôt ce qu'il faut, de plus, il a une broche de Reset. Pour savoir dans quel état il est, peut-être mémoriserais-je ailleurs en Ram, son état. Au pire, et si un composant tout intégré n'existe pas exprès pour ça, je peux mettre un 244 pour relire les bits en sortie du 273.

J'ai réfléchi encore, et peut-être vaut-il mieux que je mette La rom accessible par blocs de 64kO, et la Ram en 32kO fixe, plus les périphériques en overlay Ram dans l'espace 0-FF (ou plus, si besoin), et le reste des 32kO adresses Ram paginés.

Peut-être je ne m'exprime pas convenablement, mais il faut pouvoir modifier la Rom en la présentant comme de la Ram au microcontrôleur, mais aussi pouvoir exécuter du code depuis de la Ram
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Répondre