[OT] Un progetto per imparare a conoscere le logiche TTL/CMOS

a leggere testato pare che questi ic stiano scomparendo....
ma probabilmente lui li cerca pin compatibili o simili.
dai ragazzi, facciamo 10€ a testa e facciamo scopracciata di porte logiche, flip-flop, mux, demux, etc? :grin:

Come programma didattico consiglio Logisim http://ozark.hendrix.edu/~burch/logisim/ per addentrarsi per la prima volta nell'elettronica digitale e fare tabelle logiche etc...

Come componenti logici trovi ancora porte AND, NOR, etc.. sotto forma di integrati discreti ma lavorano a frequenze non elevatissime ed in genere le capacità parassite limitano la frequenza poichè i segnali devono entrare ed uscire dall'integrato.
NOTA: Magari chi è più esperto può spiegare meglio e più in dettaglio

Per raggiungere frequenze molto più elevate al giorno d'oggi si mette tutta la logica dentro ad un unico chip, ad esempio i CPLD permettono di creare logiche ad-hoc anche sofisticate che girano a frequenze elevate (es. 200 Mhz), con le FPGA si raggiungono frequenze (e costi) ancora maggiori.

A livello professionale (o hobbistico avanzato) non si fanno tabelle della verità a mano, si descrive l'hardware con linguaggi come VHDL o Verilog e tramite dei sintetizzatori vengono tradotti i sorgenti in equazioni logiche che sono poi mappate sull'hardware programmabile (es. CPLD, FPGA)

Nulla toglie al fatto che saper fare le tabelle a mano da una certa soddisfazione

Ciao

lesto:
a leggere testato pare che questi ic stiano scomparendo....
ma probabilmente lui li cerca pin compatibili o simili.
dai ragazzi, facciamo 10€ a testa e facciamo scopracciata di porte logiche, flip-flop, mux, demux, etc? :grin:

Allora distinguiamo: i componenti TTL dell'epoca era raggruppati fondamentalmente in due famiglie principali: TTL e TTL-LS, p.es 7400 e 74LS00; gli LS erano più veloci dei normali ed esistono ancora, anche se alcuni modelli sono difficili da reperire, ma io li ho comprati sia in package DIP che smd. Poi esistevano i CMOS (40xxx-45xxx) con livelli logici diversi (incompatibili con i TTL), alimentazione più flessibile (5-15V contro i 5V fissi dei TTL) e consumi inferiori. Le nuove famiglie sono fondamentalmente rappresentabili con le serie 74HC e 74HCT, i primi hanno caratteristiche di base CMOS, i secondi sono dei TTL puri, ma entrambi operano a livelli logici compatibili TTL e quindi con i 74LS. Possiamo dire che alla fine i livelli logici TTL sono sopravvissuti ai CMOS in quanto integrati nei microcontrollori: infatti possiamo tranquillamente interfacciare un micro con un 74YYYXXX ma non lo stesso con un CD. Poiché diversi modelli della serie CD avevano caratteristiche interessanti, sono stati replicati in TTL mantenendo la sigla originale a cui è stato aggiunto il prefisso, ecco che oggi esistono p.es. i 74HC4511 e i 74HCT4511 che sono i vecchi CD4511 "trascodificati" in logica TTL. Le serie 74HC/HCT sono tutte regolarmente in commercio, anche se non sono stati replicati tutti i modelli 74xxx, le serie 74LS si trovano abbastanza facilmente (ma NON tutti i modelli), le serie 74xxx non si trovano praticamente più.

Un'ultima info: i TTL e TTL-LS lavoravano a frequenze tra i 10 ed i 30MHz circa; i CMOS CD non superavano i 4MHz; alcuni 74HC/HCT odierni arrivano anche a 70-75MHz (ne ho ordinati alcuni proprio per un nuovo strumento che ho in mente di realizzare :wink:
Naturalmente quanto VI ho scritto è sintetico e passibile di correzioni, ma soprattutto di implementazioni: le famiglie TTL in realtà sono molte di più, quelle elencate sono quelle stra-usate.

@ Lesto i programmi di simulazione come Logic Works, ma anche roba molto più recente come NI Multisytem hanno librerie per la quasi totalità delle porte logiche ma anche degli IC TTL/CMOS più complessi: queste famiglie non hanno solo porte logiche base, ma anche cose molto molto più complesse, ad iniziare dagli shift-register, tanto per banalizzare.

@ Legacy: bel lavoro, ma l'hai fatto tu o viene da Internet? La scheda commerciale in basso a mia memoria dovrebbe essere un'interfaccia SCSI

i 74XX li ho usati a scuola... magari avessero tirato fuori un bell'arduino :grin:

Una delle problematiche più gravose delle logiche digitali è sempre stata quella del debounce, aggravata dal fatto che allora i pulsanti erano esclusivamente metallici ed i cosiddetti contatti striscianti provocavano dei veri e propri fuochi d'artificio, altro che rimbalzi!!! Negli strumenti professionali infatti si ricorreva spessissimo a catene di commutatori a slitta o rotativi per i cambi portata o altro.
Oggi è facile implementare integrati specifici, come quelli della Maxim (MAX6816-7-8 rispettivamente 1-2-8 switch) o l'esa-switch MC14490, oppure ricorrere direttamente al software, "tarabile" con grande facilità, un banale delay(100) ed ecco il sospirato ritardo di 100ms per ignorare i rimbalzi. Ma se non avete esperienza diretta con la problematica di allora basta che vi scarichiate uno qualsiasi dei data-sheet che vi ho citato e vedere come è realizzato ogni singolo switch, potrete solo sgranare gli occhi per l’impressione!!
Poiché però non c’erano gli IC debounce e nemmeno si lavorava col software allora ecco le invenzioni più disparate per risolvere il problema in modo accettabile, perché la perfezione si raggiungeva molto raramente e comunque con l’invecchiamento dei contatti del pulsante i dolori aumentavano e non poco…..
Una delle più usate si basava su un latch S-R che è una tipologia di flip-flop che cambia stato al primo impulso che arriva sul SET, ignorando tutti gli altri, e per cambiare nuovamente stato necessita di un nuovo impulso sul RESET, ma questo significata dover pilotare due pin diversi e quindi con un pulsante non era possibile, allora si ricorreva ad un deviatore a due posizioni a molla, per cui si esso era in posizione normalmente chiuso su due pin, collegato al RESET, e quando lo si premeva dava l’impulso al SET, rilasciandolo tornava in automatico sul RESET e così via. Era piuttosto affidabile come metodo ma lo switch era costoso e comunque non era un pulsante.
Una variante, forse la più efficace in assoluto, me ne parlava oggi Astro, consisteva nel collegare il pulsante al SET e contemporaneamente ad un multivibratore astabile, come il 74121 o un comune NE555, usati in funzione di temporizzatore; in pratica premendo il pulsante partiva contemporaneamente un conteggio di circa 100ms (o qualsiasi valore si desiderasse) al termine del quale questo secondo integrato dava l’impulso al RESET.
Ho dovuto lottarci anch’io per il Capacimetro e chiaramente non potevo ricorrere a trucchi; il mio pulsante, che almeno è un tastino e quindi molto meno “pericoloso” dei vecchi pulsanti meccanici, serve per cambiare le portate.
Io ho provato ad usare sul RESET un segnale a 5Hz derivante dalla base dei tempi, era piuttosto efficace ma se beccavo i fronti del segnale qualche incertezza si generava col salto di una-due portate.
Allora ho fatto ricorso ad un altro “classico”: due porte NOT di tipo Schmitt-Trigger con una pull-up di 100k ed un C da 1µF al tantalio verso massa, il tastino in parallelo al C; la formula è T=R(kohm)*C(µF)*0,9, quindi nel mio caso circa 90-100ms (il coefficiente 0,9 NON è universalmente usato…); devo dire che ho tribolato un po’ ma alla fine il risultato è molto soddisfacente, sono riuscito varie volte a premere il tasto anche 50 volte di seguito senza perdere un colpo. Le difficoltà le ho avute per il fatto che l’IC è sul PCB inferiore ed il tastino su quello superiore; ho dovuto mettere il gruppo R-C molto vicino al tastino e soprattutto ho dovuto usare un condensatore al tantalio; assolutamente da evitare ceramici e poliestere comuni. Purtroppo non riesco a spiegarvene la ragione, le mie conoscenze si fermano qui, ma sono sicuro che qualcuno sarà in grado di farlo.
Non cito le versioni di debounce con porte NAND o NOR perché davvero non mi hanno mai dato molte soddisfazioni. Spero di non avervi annoiato oltre misura.

contraves ne ho una decente scorta :smiley: sia di quelli a levetta che di quelli a ulsante, più piccoli, molto belli; sto proprio pensando di fare un progetto con questi aggeggini, ma da quanto dici non si trovano più e questo purtroppo è un problema, non posso pubblicare qualcosa di irrealizzabile da parte dei lettori. =(

Da RS ho trovato quelli a pulsante:

leo72:
Da RS ho trovato quelli a pulsante:
http://it.rs-online.com/web/p/interruttori-a-pulsante/0199380/

ma allora esistono ancora!!! sono proprio loro con i pulsantini + e -, benissimo, presto li vedrai all'opera XD
Grande Leo, mi hai risollevato il morale XD XD

leo72:
Vabbè... ecco i link XD

Famiglia logica TTL
http://www.itis-einstein.roma.it/TIC/Stuweb4/appunti/Famiglie%20logiche%20TTL.htm
http://www.ing.unisannio.it/elettronica/didattica/informatica_vo/esd/08_TTL.pdf
Redirect Notice

ih ih ih... ]:smiley:

ora capisco il sorriso bastardo mi sono messo ad aprire i link per crearmi un po' di materiale da studiare (ieri ho completato la versione definitiva del capacimetro), sei insuperabile :slight_smile:
Comunque alla fine mi hai fornito poca roba, l'unico link interssante è proprio l'ultimo ma sono tutte cose che so già :stuck_out_tongue_closed_eyes:

Cari amici, a coloro che avevano manifestato interesse all'argomento comunico che sul numero 170 di Elettronica In, che dovrebbe già essere in edicola, è uscita la prima puntata del mio progetto sul Capacimetro Digitale in logica TTL. Questa puntata tratta la cronistoria delle due famiglie digitali CMOS e TTL, con la teoria sui livelli logici dei segnali e le soluzioni per le problematiche di interfacciamento delle logiche miste; viene inoltre trattato il debounce realizzato esclusivamente in hardware; chi non ha epserienza sull'argomento avrà veramente tanto da leggere ed imparare. Infine vengono spiegate le modalità di funzionamento degli integrati usati nel progetto, riportando le immgini e le tavole della verità prese dai data-sheet. La prossima (ed ultima puntata) invece sarà riferita alla presentazione e realizzazione del progetto. Buona lettura :slight_smile:
Qui la pagina di presentazione del nuovo numero in edicola.

Grazie Uwe :wink:
Anche se poteva benissimo andare in megatopic.

Sto leggendo le prime pagine, tre cose:

1- hai dimenticato di inserire l'unita' di misura su tutti i valori della tabella TTL-colonna IOL, fortunatamente sono tutti mA e non creera' rpoblemi ai lettori

2- scrivi dell'incompatibilita' delle serie Cmos-ttl in modo assoluto, pero' scusa se alimento a 5V entrambe le famiglie, e le metto a lavorare con un terzo incomodo, chenneso' arduino ad esempio, uno 0,1V in uscita varra' 0 per entrambe ed un 4,9V sara' inteso 1 da entrambe.
E' vero che i valori Vi-o(H-L) sono diversi ma sono i limiti massimi-minimi, quindi credo sia pu' giusto dire che non e' garantita la compatibilita', non che non sia possibile in assoluto

3-complimenti, i tuoi sono sempre i migliori articoli presenti sulla rivista

Test, grazie, un feedback sincero fa sempre piacere, aiuta a crescere XD
Risposte:
Punto 1 - vero, una svista, e dire che quella tabella l'ho usata e riusata, intanto correggo quella in mio possesso. GRAZIE!
Punto 2 - qui devo darti torto, se leggi in modo approfondito la questione capisci che LOW non è sempre 0-0,1 e HIGH non è sempre uguale a VCC, le tolleranze indicate sono reali e dipendono anche dalla configurazione elettronica delle due famiglie CMOS e TTL. Un esempio su tutto, ma se vuoi approfondiamo, intanto dai un'occhiata alla Fig. 1 che illustra la problematica in forma grafica: prendi il valore minimo di VOH della famiglia TTL standard (in media è 2,4-2,7V) e prendi il valore minimo di VIH della famiglia CMOS standard (3,15V): quando il TTL è "caricato" in uscita genera tensioni di livello H che sono inferiori al minimo richiesto dal CMOS e quest'ultimo li identifica come segnali indeterminati. Vuoi fare una prova? crea il trittico SN7490->CD4511->display, naturalmente parlo dei componenti della famiglie originali, questi si trovano ancora, poi manda un segnale costante di 1Hz al 7490 e vedrai che in almeno 1/3 dei casi il contatore sballa il conteggio, cioè al ritmo di 1 secondo invece di avere: 1-2-3-4-5-..... avrai 1-1-2-2-2-3-...., quindi a volte legge a volte non legge. In questo caso la soluzione è semplice: una R da 1K come pull-up tra ogni linea di comunicazione TTL-CMOS e VCC: questo intervento eleva la soglia ad una tensione sempre riconosciuta dal CMOS e si risolve. Il caso opposto è ben spiegato nell'ultima colonna di pag.28: il CMOS emetterebbe un LOW a 0V circa, ma il passaggio di corrente in esso può far elevare tale tensione anche oltre gli 0,8V massimi previsti come VIL, e questo provoca il non riconoscimento del segnale; per evitare ciò si può interporre tra le due famiglie un buffer, che evita che scorra corrente nell'uscita della porta CMOS e si risolve. Le problematiche esistono eccome, ed io le ho sperimentate tutte :wink:
Punto 3 - :*

il mio post l'ho scritto mentre ero a pagina 3, credevo che avessi chiuso li' la questione e quindi criticavo l'"assolutezza" della frase che trovo a pagina 3 "non e' possibile far dialogare fra loro le due famiglie"
Ora ho girato pagina 4 e vedo che c'e' l'approfondimento che intendevo.
Ci sentiamo a fine articolo, se i pargoli me lo fanno fare :slight_smile:

sono 14 pagine di tutta teoria quelle :sweat_smile:, poiché nell'introduzione ho scritto che intendevo dare dei validi princìpi per entrare in questo fantastico (almeno per me) mondo, è chiaro che ho cercato di approfondire ogni aspetto, tutte le immagini che vedi e la tabella le ho disegnate personalmente; le due figure "collage" dei data-sheet mi sono costate una settimana di lavoro in quanto ho preso materiale da una trentina di pdf e purtroppo i pinout ogni casa li chiama a modo suo e lo stesso integrato ogni casa lo disegna come vuole, quindi ho preso il meglio di ogni pdf e poi l'ho trasformato in immagine e rielaborato graficamente, infatti alcune bellissime immagini avevano una qualità da far pena, quindi le ho usate come "impronta" per ricostruirle. Mi sono dovuto basare forzatamente sulla grafia e denominazione di Eagle, altrimenti sarebbe stato impossibile confrontare i data-sheet con gli schemi elettrici.
Sono sinceramente molto soddisfatto del lavoro che ne è uscito, soprattutto per i due approfondimenti sugli interfacciamenti tra CMOS e TTL e sul debounce hardware, anche lì tanto lavoro di ricerca e tanta sperimentazione, per principio non affermo mai nulla con certezza se non lo sperimento con le mie mani.
Però mi fa piacere che ci siano occhi critici a leggere perché la perfezione non esiste, e me ne hai già dato una dimostrazione, e ogni problema scovato aiuta a migliorarsi; invece quando le obiezioni sono come dire "contestabili" si avviano approfondimenti utili per chiunque legge.
Nella puntata successiva bisogna tenere aperte le due immagini data-sheet ed avere gli schemi elettrici costantemente sott'occhio (consigliata una fotocopia...), solo così non uscirai di senno a leggere. Però posso dirti senza timore di smentita che quella è didattica vera, non c'è un solo componente dello schema di cui non venga spiegato il funzionamento e tutta la logica è come se fosse rallentata di 100.000.000 di volte, per cui potrai capire il funzionamento di ogni pin in sequenza ed in contemporanea, aiutato dalle foto del DSO. So che chi legge intuirà la mia immensa passione per queste logiche, ed è così, ed ho fatto di tutto per trasmetterla a chi leggerà quei due articoli. Peraltro alla fine posso garantire che quello è uno strumento di tutto rispetto, ho subito abolito il precedente Capacimetro che avevo in lab.

e' bello bello l'articolo, riconfermo le prime impressioni.
purtroppo non riesco a leggere velocemente e lo sto' facendo a spezzoni per vari problemi, alberi di natale, presepi ecc :slight_smile:

Spettacolare il grafico Low-High e ottimi gli schemi per gli adattamenti, ero sobbalzato dalla sedia guardando l'ultimo con il transistor, ho detto, ecco qui l'errore, non si e' accorto che cosi' inverte il segnale... giro la pagina e BUM c'e' proprio la precisazione in bella mostra :slight_smile:

una cosa manca, almeno fino ad ora, non so se dopo lo hai inserito, citi piu' di una volta che le logiche CMos avevano come vantaggi una maggiore estensione sulla tensione di alimentazione ed u minor consumo, ma questo secondo punto non viene mai messo in luce numericamente. Credo sarebbe utile dare i valori per avere un'idea di quanti mA sono in gioco come consuo proprio dell'IC.

vediamo a letto se riesco a finirlo :slight_smile:

Visto che non ti è sfuggito, una piccola confessione :D. In prima battuta il circuito era costituito da 2 NPN in cascata con una pull-up sulla base del 2° TR, in tal modo il circuito rispettava la logica ma un siffatto adattamento diventava piuttosto "complicato", per cui ho tolto il secondo transistor, semplificando l'adattamento ma anche invertendo la logica. Diciamo che questo schema è utile con i cosiddetti segnali periodici, cioè frequenze fisse o variabili ma che vengono inviate a "treni", quindi in sequenze più o meno lunghe, dove non è importante se ciene prima H o L, ma solo la frequenza del segnale. Invece diventa inutilizzabile nelle logiche di "comando", quelle in cui è fondamentale, p.es., lo stato H di una porta NAND, per "aprirla" e portare sull'uscita il negato dell'altro ingresso; ecco peché è stato indispensabile fare la precisazione. Bravo Test! hai vista e mente acuta, ma non lo scopro certo io e non lo scopro certo ora :wink:
Sui CMOS non ho approfondito, quindi non troverai altri riferimenti, da un certo punto in poi non ne parlo proprio più; ho solo detto in linee generali quali sono le differenze (alimentazione 3-15V contro i 5V dei TTL e basso consumo in generale), ma poiché non ne ho usati. Devi anche considerare che la Rivista NON vuole articoli oltre 12 pagine/numero; nel mio caso e per questo lavoro in particolare ha fatto un'eccezione, pubblicando 13 pagine sul numero che stai leggendo e ben 15 sulla puntata successiva. Spaziare ulteriormente avrebbe significato fare a pugni con la Redazione. Inoltre la mia idea era quella che periodicamente avrei potuto presentare un progetto "vintage", e la prossima sarebbe stata un orologio analogico da parete completamente a LED: 1 per i secondi, 12 per le ore, 60 per i minuti, questa volta tutto in logica CMOS. Però loro non hanno la mia stessa passione :disappointed_relieved: e quindi più avanti forse metteranno sul blog l'articolo ed il progetto del Capacimetro, per vedere se riscuoterà successo (tramite rivista non hanno feedback); solo in caso positivo mi autorizzeranno a fare questo nuovo lavoro, vedremo..... :slight_smile:

Sono riuscito a finire di leggere l'articolo, con un picclo trucco pero', leggere velocemente le ultime sezioni tecniche visto che al momento non mi interessava capire il quarto di bit come girava :smiley:
Sei sempre puntualissimo su tutto, addirittura hai fatto una paginetta per la sezione montaggio, in stile NE, quando di questo aggeggio non esiste nulla, non hanno nemmeno scritto la frase standard (tutti i pezzi sono facilmente reperibili :stuck_out_tongue_closed_eyes:)

Istruttivo senza ombra di dubbio, non avevo mai approfondito il funzionamento di un capacimetro anche se logicamente mi aspettavo che la misura si poteva basare solo sul tempo di carica, ma come poi fare il tutto senza micro mi era ignoto. Viva il clock, i divisori ed i contatori :slight_smile:

unico appunto giornalistico, visto che e' un articolo difficile da seguire nel suo funzionamento, sia per lunghezza che per la necessita' di seguire lo schema punto punto, ogni piccola cosa che avvantaggia il lettore e' buona cosa, cambierei quindi i nomi ai "mezzi integrati" in modo da chiamarli allo stesso modo dello schema, mi riferisco ai vari U3B che invece da schema e' U3-2QD

Che' c'e' sul prossimo numero ? (sara' anche il mio ultimo numero, per vari motivi :blush:)

Grazie Test, mi fa piacere che tu sia riuscito a completare la lettura del lavoro.
Io quell'articolo ptevo farlo anche in 5-6 pagine, invece delle circa 30 uscita, ma lo scopo era avvicinare qualche interessato alle logiche anni 70-80. Inoltre realizzare questo Capacimetro senza capire a fondo la logica di funzionamento sarebbe stato fuori luogo, visto che oggi fai tutto con un micro e qualche componente esterno.
Sulla questione corrispondenza schema-descrizione hai ragione tu ma questa è una spina nel fianco per me. Per una ragione che ancora non mi è data di capire, io disegno schemi eccellenti con Eagle, ma loro li RIFANNO con questo loro programma, per standardizzare gli articoli, ciò significa che uno della REDAZIONE si mette a copiare ogni schema che arriva, con tutto ciò che ne può derivare, visto che non effettuano alcun controllo oltre quello visivo. Da qui nacque il bordello sul primo articolo del Programmatore HV, che poi misero gratuitamente disponibile sul sito perché lo schema era pieno di strafalcioni allucinanti. Nonostante le mie segnalazioni la cosa sfuggì per fretta e ne uscì una schifezza. Anche in questo caso ci sono stati svariati errori e impostazioni dei componenti tali da rendere incomprensibili certe parti della logica e qui ho fatto il casino, perché si perdeva tutto il lavoro dell'articolo. Purtroppo determinate siglature dei componenti appartengono alle librerie, e considerando la lunghezza dell'articolo ho pensato che avrei fatto più danno a tentare di adeguarlo che a lasciarlo così. A gennaio sarà messo sul loro blog, vogliono giustamente capire se la materia è di interesse, nel qual caso farò altri MEGA-Progetti con queste logiche, in caso contrario la storia vintage finisce qui :disappointed_relieved:
Prossimo numero purtroppo niente, abbiamo palleggiato tra due diversi lavori alla fine non ne hanno pubblicato nessuno. A Febbraio invece usciranno le due schedine Convertitore USB-Seriale con MCP2200, o forse l'altro lavoro, del quale però non parlo perché c'è una cosa molto particolare che annuncerò solo dopo la pubblicazione :wink:
Ciao e Buon Natale