Go Down

Topic: [OT] Un progetto per imparare a conoscere le logiche TTL/CMOS (Read 13431 times) previous topic - next topic

Michele Menniti


@flz:
un mini-computer? interessante. Hai il link?

@mike:
vedo che ancora non hai studiato bene i link che ti ho messo l'altro giorno...  ]:D

Te lo riporto in Italiano un detto calabrese, estremamente efficace:
Il topo disse alla noce: dammi tempo che prima o poi te lo foro il guscio
Ma l'originale in realtà usa il verbo dialettale "cupare", che ha molti significati reconditi, ma non di quelli che pensi di solito tu, mente malata.... :smiley-yell:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

Allora, "cupa" l'ultimo link. Secondo me è quello fatto meglio che parla di logiche TTL  ;)

Michele Menniti


Allora, "cupa" l'ultimo link. Secondo me è quello fatto meglio che parla di logiche TTL  ;)

ok  XD XD XD
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

flz47655

http://blog.makezine.com/2012/04/30/building-an-8-bit-computer-from-scratch/
http://8bitspaghetti.com/

E' tutta logica TTL ma bisogna essere poco normali per mettersi a costruire a mano una cosa del genere secondo me... basta una semplice CPLD per realizzare un 8 bit molto più performante senza perdere tempo in grovigli vari..

Michele Menniti


http://blog.makezine.com/2012/04/30/building-an-8-bit-computer-from-scratch/
http://8bitspaghetti.com/

E' tutta logica TTL ma bisogna essere poco normali per mettersi a costruire a mano una cosa del genere secondo me... basta una semplice CPLD per realizzare un 8 bit molto più performante senza perdere tempo in grovigli vari..

io ovviamente mi riferivo agli integrati TTL classici, non alla tipologia di segnale o a componenti più evoluti.
Posso assicurarti che avendo già fatto una cosa così squilibrata (bread + jumpers) col Programmatore HV non mi andava di ripetere l'esperienza ed ho chiesto ad Elettronica In di farmi direttamente il PCB del prototipo, altrimenti ti assicuro che sarebbe uscito anche quello un lavoro niente male.
Tu "ci" chiami poco normali solo perché forse non hai vissuto quell'epoca o non ti ci sei appassionato. Io ho litigato sei mesi con me stesso prima di comprare Arduino, oggi non sono affatto pentito, ma per me tra costruire lo stesso strumento con un 328P, un display qualsiasi ed un paio diresistenze, e tutto il malloppo che hai visto nelle foto, non c'è paragone! Quindi fondamentalmente il tizio è stato guidatto dalla passione, stanne certo; nel mio caso aggiungi la necessità di far fronte ad una richiesta, e aver la possibilità di tornare indietro di trent'anni (anche se solo con la mente e col saldatore... :() e mettermi a spiegare il funzionamento del mio schema sarà veramente qualcosa di impagabile, e se per questo mi devo sentire poco normale BEN VENGA!! (naturalmente non è polemica con te, assolutamente, solo voglio farti capire cosa spinge l'essere umano pensante a fare certe cose che agli occhi dei più appaiono stravaganti ;)).
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

dalubar

Quoto Mike al 100%.
Sono colpito anch'io dallo stesso tipo di...anormalità!  :)

flz47655

Con poco normale ovviamente intendevo con abilità manuali superiori al normale, non è da tutti avere tanta pazienza e precisione  :)

Michele Menniti


Con poco normale ovviamente intendevo con abilità manuali superiori al normale, non è da tutti avere tanta pazienza e precisione  :)

ottima svicolata, roba da farsi trovare col cucchiaio nella Nutella e convincere la propria mamma che stavamo solo togliendo una mollica di pane che chissà chi aveva fattop cadere nel prezioso contenitore :smiley-mr-green: GRANDE! ma nello stesso tempo la prendo per buona :)
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

lesto

programmare usando le porte logiche non è differente da programmare nella realtà.. bisogna farsi le tabelle della verità :)

ci sono simulatori/autocompilatori delle tabelle di verità? i componenti tipo and/or/not sono ancora in produzione in qualche formato/modelllo/package?

immagino che se ci sono o lavorano con "alte" tensioni o "alte" frequenze
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

leo72

Ma intendi i chip con porte NOT/OR/AND/NAND?
Certo che sono in vendita:
http://www.datasheet4u.net/TTL/

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?  :smiley-mr-green:
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

flz47655

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

Michele Menniti


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?  :smiley-mr-green:

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 ;)
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
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

lesto

i 74XX li ho usati a scuola... magari avessero tirato fuori un bell'arduino  :smiley-mr-green:
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Michele Menniti

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.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Go Up