Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Cet espace concerne les composants électroniques, les techniques de réalisation, le soudage, la mesure et ses divers instruments, les programmateurs ou encore votre laboratoire. Recueille également les éventuelles ventes, achat, dons ou recherches.

Modérateurs : Papy.G, fneck, Carl

gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Message par gotcha »

J'ai commandé des Z80 à 6Mhz dans l'idée de me faire une SBC simple en partant de zéro.

Je me pose la question de quoi prendre comme CI pour faire la glue, par exemple le décodage mémoire.

Je viens de me rendre compte que les Z80 que je vais recevoir sont de versions CMOS (Z84C0006). J'ai lu que TTL et CMOS ne sont pas totalement compatibles et qu'il faut faire des adaptations. Alors, est-ce que la série 74LSxx est donc à éviter et qu'il faut partir sur la série 74Hxx ou 40xx ?

EDIT: dans le document que je suis en train de lire, l'horloge du Z80 est faite avec une bascule D de type TTL (74LS74), et l'auteur fait une adaptation TTL->CMOS du signal avec un transistor avant de le donner en entrée du Z80 (clock).
Dernière modification par gotcha le 05 sept. 2022 17:18, modifié 5 fois.
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Fred_72
Messages : 1131
Inscription : 22 mai 2019 13:10
Localisation : Sarthe

Re: Z80 CMOS compatible TTL ???

Message par Fred_72 »

Tu peux utiliser des 74LSxx ou mieux des 74HCTxx sans problème. Le CPU est compatible TTL.

Dans les familles TTL, toutes les variantes HCMOS (pour High speed CMOS) sont compatibles TTL si les "lettres centrales" se terminent par un T.
Par exemple les 74HCxx ne sont pas tout à fait compatibles TTL alors que les 74HCTxx le sont. Pareil pour 74AC et 74ACT, ...

La série CMOS 40xxx n'est pas du tout compatible TTL et en plus ces CI sont très lents (max 2MHz).
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Message par gotcha »

Tu es sûr que la version CMOS du Z80 est compatible TTL ?

Par exemple, pour la version Sharp LH0080, ils disent explicitement que les entrées/sorties sont entièrement compatible TTL.
Mais pour la version de Zilog (Z84C0006 dans mon cas), je n'arrive pas à trouver l'info dans les datasheet.
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Avatar de l’utilisateur
Leraptor06
Messages : 672
Inscription : 15 févr. 2022 10:34
Localisation : Mandelieu

Re: Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Message par Leraptor06 »

Bonsoir,
L'elektor 68 de février 84 parle de la compatibilité des circuits CMOS/ttl
Il est facilement téléchargeable et c'est page 57.
Dernière modification par Leraptor06 le 04 sept. 2022 23:21, modifié 1 fois.
Jp
sporniket
Messages : 242
Inscription : 22 mars 2022 20:23
Localisation : Pas trop loin au sud de Paris

Re: Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Message par sporniket »

J'imagine que pour savoir si tu as besoin de puces 74' compatible CMOS/TTL, il faut déterminer si les autres puces sont un mix de TTL et de CMOS ou bien seulement CMOS.

Concernant les niveaux haut/bas :
  • sortie CMOS vers entrée TTL, les niveaux CMOS sont inclus dans les niveaux TTL ==> ça passe
  • sortie TTL vers CMOS, il y a une zone du niveau haut TTL qui est en dehors de la zone niveaux haut CMOS ==> ça passe pas toujours
Question courant, il me semble que les sorties CMOS sont plus faiblardes que ce que peuvent consommer les entrées TTL. Ça peut poser problème, en particulier en cas de partage de la même sortie CMOS vers plusieurs entrées TTL (fan-out).

Au final, l'étude des fiches techniques des puces s'impose...
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Message par hlide »

J'ai mis un ZILOG Z84C020 à la place d'un SHARP LH80 et je n'ai pas constaté de problème.
Fred_72
Messages : 1131
Inscription : 22 mai 2019 13:10
Localisation : Sarthe

Re: Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Message par Fred_72 »

gotcha a écrit : 04 sept. 2022 22:05 Tu es sûr que la version CMOS du Z80 est compatible TTL ?
Oui. C'est ce que j'utilise dans mes systèmes et tout fonctionne correctement. (hlide le confirme également).
Tous les composants CMOS issus des versions NMOS (Oui nos vénérables CPU sont déjà en MOS pas en bipolaire) sont compatibles avec leurs ancêtres (et heureusement d'ailleurs).
Donc 65C02, 6309, Z84C00,... sont compatibles TTL et peuvent remplacer directement les versions NMOS.
Après il peut y avoir quelques exceptions selon les fabricants. par exemple le 65C02 existe en plusieurs versions avec des broches différentes. Mais c'est un problème de brochage, pas de niveaux.
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Message par gotcha »

Leraptor06 a écrit : 04 sept. 2022 22:46 L'elektor 68 de février 84 parle de la compatibilité des circuits CMOS/ttl
Merci, c'est un article très intéressant. Je l'ajoute ici:
TTL vs CMOS (Elector 68 - 1984).pdf
(575.07 Kio) Téléchargé 59 fois

Au final, la série 74HCTxx semble être la série idéale compatible avec tout.
Le résumé est ceci:

TTL vs CMOS.png
TTL vs CMOS.png (112.85 Kio) Consulté 3065 fois
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Message par gotcha »

J'ai finalement trouvé des infos dans le datasheet du Z80 qui montrent que la version CMOS est en effet compatible TTL.

Les versions NMOS et CMOS ont quand même quelques petites différences, même si on reste dans les plages de tension TTL pour les entrées/sorties.

En particulier, le Z80 CMOS spécifie une entrée haute à 2.2v minimum, contre 2.0v minimum normalement en TTL.
Ça veut dire qu'on a une plus faible marge au bruit, par exemple dans le cas où le circuit TTL qui fournit le signal serait dans le bas de la fenêtre de tension de sortie TTL, c'est à dire 2.4v.

Z80 NMOS - 2.png
Z80 NMOS - 2.png (50.66 Kio) Consulté 3025 fois
Z80 CMOS - 2.png
Z80 CMOS - 2.png (66.24 Kio) Consulté 3025 fois
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Message par hlide »

Par contre, toi l' "Amstrad CPC addict", je te déconseille de mettre un Z80 CMOS sur tes Amstrad. Pas besoin de t'expliquer pourquoi. :)
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Message par gotcha »

Le NMOS et le CMOS n'auraient pas les mêmes bugs ? :D
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Message par hlide »

C'est bien connu que les codeurs fanatiques d'Amstrad codent avec la moindre instruction non officielle pour grignoter un octet (même pas un NOP !) :

ED 71 - OUT (C),0. Sur un NMOS on a $00 sur le bus de donnée. Sur un CMOS on a $FF. :(

Quand j'ai posé la question si cette instruction était utilisée - en fait... oui.
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Message par gotcha »

Je viens de faire un petit essai en fournissant à un Z80 une horloge crée avec des portes TTL (astable à base d'inverseurs).
Tout marche très bien dans mon cas.
EDIT 1: En fait, ça ne marche qu'1 fois sur 5. J'ai un niveau haut de l'horloge à 3.8v

Par contre, j'ai lu à plusieurs endroits que toutes les entrées/sorties du Z80 (NMOS et CMOS) sont compatibles TTL... sauf l'horloge :o

C'est d'ailleurs cohérent avec le premier exemple que je regardais et qui m'avait amené à poser la question ici.
Dans cet exemple, l'horloge était adaptée à l'aide d'un transistor.

Quelqu'un peut confirmer la spécificité de l'horloge sur Z80 ?

EDIT 2: en fait, j'ai la réponse à ma question dans les bouts de datasheet que j'ai mis plus haut.
Sur NMOS et CMOS, l'horloge du Z80 doit avoir comme tension:
  • moins de 0.45v au niveau bas
  • plus de 4.4v au niveau haut
Donc l’horloge n'est pas une entrée compatible TTL et doit être un signal 'fort' oscillant entre 0 et 5v.
Brancher la sortie d'une porte TTL à l'entrée CLK du Z80 ne semble pas être une solution fiable.
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Message par hlide »

Apparemment sur ma machine, je récupère l'horloge en sortie d'un 74S04. Le problème que tu soulèves, on l'aura aussi bien pour un NMOS qu'un CMOS puisque l'on a les mêmes valeurs dans les tableaux que tu as postés.
gotcha
Messages : 2759
Inscription : 30 mars 2017 11:39
Localisation : Isère
Contact :

Re: Compatibilité entre Z80 CMOS et serie TTL 74LSxx ?

Message par gotcha »

En cas de génération d'horloge avec des TTL, j'ai lu des choses qui suggèrent qu'il faut mettre une résistance de pull-up .

Par exemple:
PS: and don't forget to have strong pullup on CLK input of your Z80, if feeding clock off TTL (74xx or 74LSxx or 74ALSxx or 74Fxx, but not 74AC/HC/ACT/HCT) output. Unlike other Z80 inputs, CLK is not TTL-compliant.
@hlide As-tu une résistance entre CLK et VCC ?


Sur l'article d'Elektor que j'avais attaché plus haut, ils mettent en effet une résistance de pull-up entre la sortie TTL et l'entrée CMOS. Ce que je comprends, c'est que cela permet de 'deconnecter' la TTL quand celle-ci est au niveau haut.

TTL vers CMOS.png
TTL vers CMOS.png (110.92 Kio) Consulté 2848 fois
Amstrad CPC et Goupil power :mrgreen:
Bénévole à l'association pour un conservatoire de l’informatique et de la télématique (https://www.aconit.org)
Répondre