⚠️Su segnalazione di Romano Morittu (grazie!) nello schema a 8:21 manca il collegamento degli shift register al pin A7 della EPROM. Il pin 13 di 164(1) e' collegato al pin 2 di 164(2) e deve essere anche collegato ad A7 (pin 1 della EPROM M2716). 📌 Si possono usare anche dei 595 come shift register, vanno benissimo, ma bisogna ricordarsi di gestire anche l'Output Enable.
Bravo come sempre Pier, con la chiave della conoscenza e della non comune capacità divulgativa, mi hai aperto cassetti della memoria da tempo chiusi, facendo riemergere i ricordi di quando si perdeva il sonno trafficando con questi dispositivi. Grazie per questo *_Amarcord_*
grazie Enzo, le EPROM, EEPROM, PROM in package DIL, pilastri portanti delle macchine ante 2000.. quante volte per aggiornare un macchinario si estraevano dagli zoccoli le memorie e si sostituivano per un aggiornamento firmware o di configurazione. Ricordo poi che negli anni d'oro in ambito automotive si era creato un bel giro di "elaborazioni" auto in centralina...
Negli anni 80-90 anche le macchine da maglieria, che io riparavo come lavoro principale in tutta la Toscana, avevano EPROM a iosa. Quando venivano aggiornate, i tedeschi inviavano nuove EPROM già programmate per ogni macchina che sapevano attiva in zona, ma i giapponesi inviavano solo una serie a modello e dovevo copiare e programmare nuove EPROM per tutte le altre macchine. Penso di avere da qualche parte il programmatore ma sicuramente so dove ho ancora ogni tipo di EPROM vergine :). Ottimo lavoro, Pier 👍
Grazie per questo interessante commento, che ci fare piombare in quegli anni dove le eprom effettivamente erano gl 'oggetti fisici più importanti usati per conservare i programmi applicativi. Ciao e alla prossima
Ciao Pier. Ottimo video esplicativo che ma ha fatto tornare ragazzo. Per semplificarti la vita, il codice, ed avere più efficienza (anche se con qualche componente in più), invece dei registri a scorrimento, un'altra possibilità era data dall'utilizzare 3 comuni Latch 74HC373 di cui 2 per creare il bus a 11 bit per indirizzamento e l'altro per scrivere i dati. Complimenti come sempre ;)
Buongiorno Ingegnere. Che dire.....complimenti!! Questo per me è il punto in cui finisce la tecnologia e incomincia la.....magia nera!😁 Ancora complimenti.
Grazie a te GianPiero per la disponibilità e l'opportunità di studiare questi simpatici dispositivi. Ci vediamo prossimamente per la parte due sulla programmazione. Ciao e alla prossima
Bellissimo video! E' bellissimo creare un applicazione per Arduino partendo dalle specifiche dei datasheet! Aspettiamo la versione per la scrittura 😀 Complimenti per la chiarezza 😍
Grazie, per eseguire questa operazione ci sono mille modi e mille prodotti pronti... ma quello che mi piacerebbe è.. rianimare .. lo spirito di progettazione, quindi partendo da zero, con i metodi più primitivi... ce ne sono molti altri di metodi per fare questa operazione come abbiamo visto nei commenti in puntata 2 ci occupiamo della scrittura
complimenti Pier, un ottimo video, me lo sono gustato tutto, mi ha riportato indietro di trentanni, nel prototipo del circuito non dimenticare di mettere i soliti condensatori di filtro sui piedini di alimentazione 😉, ciao e buona domenica.
grazie per il commento.. sempre seguire le. buone pratiche protoripali... specialmente in questo caso dove abbiamo un po' di spaghetti... a queste velocità c'è ancora margine di manovra su realizzazioni artigianali anche grossolane... se saliamo di frequenza... la. musica cambia
grazie Pasquale oggi ci possiamo deliziare con questi giochetti "ready to go"... qualche riga di codice e vai... la soddisfazione arriva presto... sono sostanze stupefacenti per elettronici... e creano dipendenza...
Appassionato di decodifica ✋ 😁: essendo il bitrate rs232 il doppio di quello della seriale sincrona dell'arduino, sulla linea clock legge 1 bit quando il clock è alto e un bit quando il clock è basso, in pratica 01010101, con tanto di bit di start, Che in ASCII è una 'U' 😁... Poi è arrivata la pausa di 5 uS, non c'ha capito più nulla e ha trovato quel Tab 😂. Complimenti! Progettino molto simpatico, molto utile a chi si vuole cimentare nella lettura/scrittura di eprom con una spesa minima (do per scontato che implementerai anche la scrittura 😜)
grazie... ottimo.. ho lasciato un po' vago questo aggancio fortuito sulla decodifica del rigol... ci vediamo in parte due per la scrittura, ciao e alla prossima!
Mi fai tornare indietro di 40 anni, quando non esistevano ancora i pc e dovevo caricare a mano con tastierino esadecimale, che poteva fare solo push, il firmware su eprom da 1k per dare funzionalità minime usando Z80 come microcontroller. Pier Sempre TOP INGEGNERE UA-camR ♥ ITALIANO
che bei ricordi... la cosa stupefacente era la possibilità di lavorare "a basso livello"... veramente molto vicino al circuito...quasi in linguaggio macchina o microcodice. Oggi se facciamo un paragone con i pc odierni e quello che ci gira sopra, abbiamo molti livelli di astrazione sovrapposti... molto comodo da un lato, ma nello stesso tempo si perde il contatto con l'hardware...
@@PierAisa Già. Tempo fa ho interfacciato un sensore di temperatura su I2C con un raspberry. Sono rimasto stupito dai vari esempi su internet dove neanche ti viene spiegato come funziona e cosa è I2C.... C'è la libreria Python no? Copia incolla, usa, e non capire niente su come funziona cosa consente e cosa è i2c..... bah...... sarà che sono vecchio ma per me è valido il vecchio detto "conosci, capisci e 'impera'". ;-(
Con me sai benissimo con me sfondi una porta aperta, infatti nei video cerco sempre di partire dalle basi. Come dici per dominare la tecnologia bisogna scendere a livello più basso possibile.... il copia incolla nella nostra memoria dura meno di un secondo
Buonasera Pier, grande idea rispolverare la vecchia elettronica digitale. La butto lì : perché non utilizzare dei contatori cmos al posto degli shift register? Io utilizzo dei 4040 (74hc4040), con una sola linea fai tutto, dai n colpi di clock per raggiungere l'indirizzo n, con il reset azzeri . Secondo me il programma di arduino sarebbe più semplice. Grazie per il bel video.
grazie, ero sicuro di riaccendere unagrande anima creativa a 8 bit... ottima idea l'uso dei contatori, se si vuole fare una lettura sequenziale , come è logico per un lettore di eprom...ci vediamo per la parte due, di programmazione.
@@PierAisa Grazie Pier, ottimo video! Anche io mi ero cimentato con i lettori di Eprom ed allora dico la mia 🙂 Si potrebbero anche usare due latch tipo HC373 per gli indirizzi piu' qualche pin per abilitazioni ed indirizzamento. Poi si girano in input ed output 8 bit di arduino a seconda che si scriva l'indirizzo o si legga il dato dalla eprom 🙂 Saluti!!
Video molto istruttivo come sempre. Domanda: utilizzando Arduino Mega avremmo evitato l'uso degli shift register rendendo il tutto un po' piu' semplice o sbaglio ?
buonasera, sono un autodidatta e mi interessa costruire questo circuito per leggere e scrivere vecchie eprom , pero' nello schema al piunto 8.20 che mi sono stampato nel 164(1) il piedino 13 e' collegato al 164(2) piedino 2 ma non trovo corrispondenza con il piedino 1 della eprom (A7) con il 164(2) dove ci sono A8 A9 e A10, mi sfugge qualcosa? per favore poi volevo chiedere se invece di mettere i 74hc164 posso adattagli i 74hc595 che mi avanzano da un vecchio progetto? grazie per le risposte. 😀
Ottimo osservatore. Esatto il pin 13 di 164(1) e' collegato al pin 2 di 164(2) e deve essere anche collegato ad A7 (pin 1 della EPROM M2716). Lo metto nel commento in evidenza, grazie. Si puoi usare anche dei 595, vanno benissimo, ma ricordati di gestire anche l'Output Enable.
Ottimo video, mi vengono in mente gli anni 90/2000 di fianco a me c'era un meccanico che faceva piccole elaborazioni alle auto(in particolare diesel) sostituendo le eprom. Mitici flip-flop 👉shift register
Sebbene mi accodo con ritardo... A livello di codice ho visto un paio di ottimizzazioni apportabli. la funzione readEprom non deve ritornare un "int", paradossalmente in linguaggi moderni è a 16 bit, bensì o un uint_8 (un intero senza segno di 8 bit) od il suo equivalente standardizzato come "byte". Piuttosto che utilizzare i delay, personalmente utilizzerei altri meccanismi di timing, utilizzando "il tempo perso" dei delay per qualche funzione preparatoria. 9A potrebbe essere una CALL (in standard 8088/8086) all'indirizzo 0xB8FD... 47357. Dopo il NULL... C'è la CMC... Possibile provenga da un bancomat? Alcuni vecchi bancomat avevano il BIOS così modifcato. Ed il resto del codice era splittato su altri 3 banchi EPROM. Considerando che la funzione è dozzinale, fai sparare su seriale un file INTELHEX. Così elimini i problemi di eventuali interpretazioni.
grazie!! Gentilissimo... dovrei affrontare la parte due per la scrittura... spero di poterla mettete in cantiere perché qui ne arriva unna nuova ogni giorno...
Come sempre progetto molto interessante e spiegato molto bene! A suo tempo usavo un programmatore autocostruito con interfaccia a porta parallela. Non vedevo da anni le EPROM (a mio avviso erano bellissimi i packages con l'apertura trasparente). Ormai le poche che mi sono rimaste le uso solo per fare capire ai miei amici come sono fatti i chip all'interno 😁
.. la porta parallela... una manna per gli elettronici... addirittura si poteva avere accesso diretto all'hardware. Dalle prime user port su commodore64, la tentazione di comandare hardware esterno è sempre stato molto forte. Poi con le prime versioni di Windows, sempre più difficile accedere in modo diretto... ricordo la libreria DirectIO per superare il problema.
Video interessante Pier! vorrei provare a raffinare questo progetto sotto molti aspetti; mi potresti consigliare una EEPROM operante in parallelo e ben conosciuta su cui basarmi? Grazie per tutti i tuoi contenuti :D
Ciao Pier! Interessante progetto. Anche se sono "vecchie" comunque la lettura da seriale "pura" necessita di accorgimenti non immediati..... Complimenti e, alla prossima!
Come sempre, un video molto interessante, mi piacerebbe che ne seguissero altri sempre sullo stesso argomento. Per quanto riguarda l'indovinello, suppongo che quella U maiuscola corrisponda al valore 85 decimale (55 in esadecimale) ASCII decodificato e la HT stia per "Horizontal Tab" che corrisponde al valore 09 ASCII. Fammi sapere se questa è la risposta esatta. Buona domenica, Pier.
grazie Giovanni... molto bene proprio così!!! Il valore 0x55 viene comunque riconosciuto facilmente.... considerando che la shiftout di Arduino non rispetta il protocollo RS-232, ne come timing, ne come struttura... buona domenica!
Segui le orme del Maestro. Scheda millefiori, saldatore, 2 ore a saldare fili su piazzole che non vedi nemmeno con la lente. Finito! Aspetta che controllo PIN ti PIN prima di dare tensione. Noooooo! Non ho specchiato la EPROM nello schema lato rame. Ho tutti i collegamenti scambiati! @#!#!&
Bel video Pier....come sempre. Per quanto riguarda l'indovinello credo ci sia un errore, mi sembra che nel programma la seriale sia stata impostata a 57600 baud mentre nel Rigol a 115200 quindi sicuramente il Rigol non è "allineato" nell'interpretazione dei dati che legge. Magari mi sbaglio, però non trovo nessun nesso tra quello che legge in emulazione rs232 e quanto inviato sulla seriale. Dove sbaglio ? grazie e buona domenica a tutti.
Ciao ho volutamente fatto una forzatura... la funzione shiftOut di Arduino ha un timing che non è compatibile con nessun protocollo RS-232 sia a livello di timing che di struttura. Ho trovato una "combinazione" con la velocità di decodifica di rigol che ha permesso di riconoscere 0x55 con il carattere ASCII "U" come effettivamente è... ma vale solo per poche combinazioni di caratteri / velocità...
@@PierAisa in effetti le seriali che in qualche campo sono ancora utilizzate, sono qualcosa che ci portiamo dietro dai primi computer degli anni 80 e oggi come allora il loro punto debole è la gestione delle varie sincronizzazioni. Ho capito che dietro quel U e HT ci sono stati vari tentativi di timing e questo era il meglio che Rigol riusciva a intercettare. grazie e ciao
grazie, si cerco di puntare sui principi e poi l'implementazione può essere fatta in tanti modi.. ognuno può sfogare la propria creatività, ciao e alla prossima
grazie Guido, avevo bisogno di scendere a basso livello. Arduino è una scelta molto comoda. Negli anni '80 l' approccio sarebbe stato ancora più vicino all'hardware con l'uso di assembly
🤣🤣🤣... me ne ero accorto troppo tardi e mi sono detto "non dico niente... vediamo se qualcuno se ne accorge..." e ne ero quasi sicuro, che qualcuno lo avrebbe notato.... siete sempre sul pezzo!! Ciao e alla prossima!
@@PierAisa considerando che non sono un elettronico, ma sono entusiasta, e che alle superiori l'elettronica mi è stata spiegata male ieri ho capito come funziona uno "shit" register 😁
Lavoro eccellente. Ora è necessario scrivere. E cosí riesci a fare un programmatore eprom low-cost. Attento ai mix di lingua "readEpromRiga" ... pericoloso. Fatto in passato tanto per fare poi a cercare le righe è stato """divertente""" 29:57 se sei su W10, seleziona uno dei due reader, premi il tasto Windows seguito da una delle freccette orizzontali. Se vuoi metterlo sulla parte sinistra dello schermo: Windos + Freccia Sinistra. Fai lo stesso per l'altro reader. Ti permette facilmente di sistemare le finestre aperte sullo schermo senza overlap e rapidamente. Su W11 è ancora più semplice ma credo tu abbia il 10 su quella macchina. 34:00 hai pensato di convertire il file binario in Base64, trasferirlo via seriale e poi riconvertirlo da Base64 a Binary? È spesso usato per non avere il problema che hai riscontrato. Cosí facendo salvi il contenuto della Eprom e lo carichi per la programmazione di altre eprom come copia-back-up
grazie Tormy per il commento. Nel video ho lasciato questi spunti di riflessione proprio per scatenare la vostra creatività, che come prevedibile è partita....benissimo. Sarà necessaria anche una parte su PC, vediamo cosa selezionare per renderla facile e replicabile. Ciao e buona domenica!
Ciao Pier! Proprio quello che aspettavo, visto che ho una scatola di scarpe piena di Memorie ed affini da controllare. Grazie anche a Paolo che saluto. Ora mi gusto il video.👍👍👍👍👍
grazie Nonno Beppe, questo è un primo episodio. Poi per ottenere un lettore infallibile bisogna curare altri aspetti, si vede bene nella parte finale dove è necessario gestire lo scarico dati da seriale
Un altro video utilissimo ed interessante complimenti. Ho una eeprom da copiare ma ha un blocco dalla casa madre e non riesco. Almeno il mio fornitore di materiale elettronico non riesce
L'attivazione sul livello "basso" di solito viene impostata per progetto per questioni di risparmio energetico oltre che per possibili problemi dovuti al rumore elettrico.
Video molto interessante. Mi ha fatto venire il desiderio di fare scorta di chip 74HC164. Spiegazione poi estremamente chiara, ma con Pier non ci sono dubbi ;-)
grazie! Infatti ho selezionato queste porte logiche, perché è abbastanza probabile trovarle nei cassetti e ancora oggi si trovano facilmente sul mercato.... visto il periodo...
Ottimo, io anni orsono 30 e più, avevo urgenza di programmare un eprom e l'unica cosa a disposizione era un plc a 16 uscite e un po' di TTL cMos, avevo fatto un programmatore simile al tuo, ma indirizzi e dati li memorizzano in parallelo sui FF e poi WR, la velocità di scrittura era 10byte al secondo viste che avevo le uscite a rele. ..però ha funzionato .. comunque sei sempre un grande
grazie.. esatto proprio questo lo spirito giusto: capire il problema, analizzarlo e risolverlo con le proprie armi a disposizione... poi si può passare ad una fase successiva di razionalizzazione.. ma la cosa importante è affrontare il problema sulla carta
Salve Pier , Video molto interessante , io mi ritrovo tra le mani un sacco di memorie 3-wire tipo 93c66-93c56-93c46 e in rete non trovo niente su come fare per leggere o scrivere su queste memorie , sarebbe interessante se facessi un Video tutorial anche su questo tipo di eeprom .
Sarebbe utile capire come programmarlo perché avrei da programmare gli EC Embended controller dei notebook solo che il programmatore annesso costa oltre i mille euro.... Aspetto con ansia la seconda puntata sperando ła farai così poi la modificherò per le mie esigenze Bel video!👍
grazie.. per la. programmazione bisogna studiare bene il datasheet in particolare i diagrammi con i timing e i tempi da rispettare. Inoltre deve essere gestita la fase di caricamento da PC del file binario con un piccolo sw lato PC
il dump in caratteri non è uguale per via del fatto che oggi i caratteri sono codificati con u nicode non più come ai bei vecchi tempi dove un carattere == byte. quando senti il beep è perchè il carattere è il codice 7 (chiamato bell) che fa fare " beep" quando stampato, tanto a schermo quanto se lo inviassi su una vecchia stampante ad aghi come carattere. Nel vecchio set caratteri ascii infatti i codici sotto il 32 non sono veri propri caratteri stampabili ma più che altro "codici di comando". Fanno parte di questi caratteri: il codice 9 -> tabulazione il codice 13 -> ritorno di carrello il codice 10 -> line feed il codice 7 -> bell...... sono retaggi del fatto che le stampanti dei computer sono derivate dalle macchine per scrivere. probabilmente il monitor seriale di arduino interpreta secondo la codifica non ascii (non ricordo la codepage) per cui vedi "simboli" differenti che in notepad++
Ad inizio anni '80 avevo fatto un programmatore di Eprom che funzionava con in Vic-20. Ma anche una versione per una scheda Z-80 autocostruita. Erano altri tempi, non mi ci metterei più con dispositivi del genere.
che ricordi gloriosi.... quando l'accesso diretto all'hardware era una funzionalità logica concessa senza nessuna preoccupazione di accessi "non leciti"... ora nei sistemi operativi questo non è più permesso
@@PierAisa Già, avevo fatto un computer su scheda con Z-80, "ben" 4 k di RAM statica ed altrettanti k previsti per le EPROM, in realtà ho montato solo una 2708 da un k (in seguito una seconda Eprom con il programma di programmazione Eprom). A tripla alimentazione, dove il ramo negativo doveva arrivare un attimo in anticipo sulle altre tensioni per non rischiare di bruciarla. Così, giusto per complicare l'alimentatore. Ci avevo messo un semplice programma monitor con tastiera esadecimale e display LED a 8 digit. Era in grado di scrivere/leggere i programmi su di un'audiocassetta collegando un registratore e di programmare le Eprom. In seguito ho fatto una scheda video e pure un semplice videogioco. Poi sono passato al Vic-20 con il quale ho fatto un programmatore di Eprom gestito in... Basic! Le temporizzazioni fatta con cicli FOR... NEXT, che roba! E funzionava magnificamente. Il difficile è stato partire con la mia scheda Z-80: se non hai un minimo programma che parte al boot non fai nulla. Sono partito quindi da una ROM fatta programmare da mio fratello che aveva fatto un computer simile con un 8080. Per poter funzionare senza ROM: aveva un interruttore di Reset, si teneva ferma la CPU e si scriveva in RAM con una tastiera esadecimale, agendo in DMA. L'hardware che faceva questo (e la visualizzazione su display) era un progetto mio. Una volta partito con la ROM ho potuto scrivere la mia Eprom e quindi sostituire la ROM iniziale (256 byte!) con il mio sistema più evoluto. Consentiva anche l'esecuzione di programmi un'istruzione alla volta per il debug e si potevano inserire breakpoint.
... il sogno di ogni 8bit lover... io iniziai con la serie di video z80 ed il primo fu proprio la accensione del mitico zilog che ha una funzione tostissima... lo puoi cloccare con velocità anche molto lente.. scelsi un secondo. ua-cam.com/video/eGq1UhNv7Bg/v-deo.html poi sono andato avanti con il pcb di un mini computer governato da seriale ua-cam.com/play/PL_ztu1krqOLq9f7TLi86TFP-m8PO4Wf7L.html soddisfazioni immediate... attenzione crea dipendenza
@@PierAisa sì, io a inizio anni '90 per motivi famigliari ho dovuto smettere, poi ho messo su famiglia. Ora, dopo 30 anni sono in pensione ed ho provato a ricominciare. Ho scoperto di essere ancora in grado di progettare circuiti analogici e per quanto riguarda il digitale mi sono fatto una stazione meteo con un Raspberry e poi parecchie cose con Arduino ed altri microcontrollori. Certo che con questo video mi hai scoperchiato la memoria.
la cosa bella è proprio quella.... quando hai nel DNA quel tipo di approccio, risalta fuori anche dopo tante ere tecnologiche. Ora ci sono giocattolini con i quali si può fare tutto in poco tempo.
⚠️Su segnalazione di Romano Morittu (grazie!) nello schema a 8:21 manca il collegamento degli shift register al pin A7 della EPROM. Il pin 13 di 164(1) e' collegato al pin 2 di 164(2) e deve essere anche collegato ad A7 (pin 1 della EPROM M2716).
📌 Si possono usare anche dei 595 come shift register, vanno benissimo, ma bisogna ricordarsi di gestire anche l'Output Enable.
Ciao Grazie interessante
grazie se ti può fare comodo ecco la mia videolist www.pieraisa.it/videolist
Bravo come sempre Pier, con la chiave della conoscenza e della non comune capacità divulgativa, mi hai aperto cassetti della memoria da tempo chiusi, facendo riemergere i ricordi di quando si perdeva il sonno trafficando con questi dispositivi. Grazie per questo *_Amarcord_*
grazie Enzo, le EPROM, EEPROM, PROM in package DIL, pilastri portanti delle macchine ante 2000.. quante volte per aggiornare un macchinario si estraevano dagli zoccoli le memorie e si sostituivano per un aggiornamento firmware o di configurazione. Ricordo poi che negli anni d'oro in ambito automotive si era creato un bel giro di "elaborazioni" auto in centralina...
Negli anni 80-90 anche le macchine da maglieria, che io riparavo come lavoro principale in tutta la Toscana, avevano EPROM a iosa. Quando venivano aggiornate, i tedeschi inviavano nuove EPROM già programmate per ogni macchina che sapevano attiva in zona, ma i giapponesi inviavano solo una serie a modello e dovevo copiare e programmare nuove EPROM per tutte le altre macchine. Penso di avere da qualche parte il programmatore ma sicuramente so dove ho ancora ogni tipo di EPROM vergine :). Ottimo lavoro, Pier 👍
Grazie per questo interessante commento, che ci fare piombare in quegli anni dove le eprom effettivamente erano gl 'oggetti fisici più importanti usati per conservare i programmi applicativi.
Ciao e alla prossima
Ciao Pier. Ottimo video esplicativo che ma ha fatto tornare ragazzo. Per semplificarti la vita, il codice, ed avere più efficienza (anche se con qualche componente in più), invece dei registri a scorrimento, un'altra possibilità era data dall'utilizzare 3 comuni Latch 74HC373 di cui 2 per creare il bus a 11 bit per indirizzamento e l'altro per scrivere i dati.
Complimenti come sempre ;)
grande! Ero sicuro che qualche progettista digitale del tempo avrebbe proposto i transceivers.... il prezzemolo di quei tempi!!
Grande Pier , grazie
grazie a voi... amanti degli 8 bit!!!
Bravissimi un abbraccio ad entrambi
Ottimo lavoro! Complimenti!
Buongiorno Ingegnere. Che dire.....complimenti!! Questo per me è il punto in cui finisce la tecnologia e incomincia la.....magia nera!😁
Ancora complimenti.
Grazie a te GianPiero per la disponibilità e l'opportunità di studiare questi simpatici dispositivi. Ci vediamo prossimamente per la parte due sulla programmazione. Ciao e alla prossima
Bellissimo video! E' bellissimo creare un applicazione per Arduino partendo dalle specifiche dei datasheet! Aspettiamo la versione per la scrittura 😀
Complimenti per la chiarezza 😍
Grazie, per eseguire questa operazione ci sono mille modi e mille prodotti pronti... ma quello che mi piacerebbe è.. rianimare .. lo spirito di progettazione, quindi partendo da zero, con i metodi più primitivi... ce ne sono molti altri di metodi per fare questa operazione come abbiamo visto nei commenti in puntata 2 ci occupiamo della scrittura
Pier sei il super Migliore 💪🏻
Complimenti Pier, lavoretto veramente tosto, complimenti anche a Paolo🔝🔝🔝🔝
grazie, ciao e alla prossima!
ah che onore! Il mio "pasticcetto" UNO-DIY sul tuo canale!
... l'onore è reciproco... mi sembrava l'occasione giusta.. gran bel lavoro Paolo.... come sempre!
complimenti Pier, un ottimo video, me lo sono gustato tutto, mi ha riportato indietro di trentanni, nel prototipo del circuito non dimenticare di mettere i soliti condensatori di filtro sui piedini di alimentazione 😉, ciao e buona domenica.
grazie per il commento.. sempre seguire le. buone pratiche protoripali... specialmente in questo caso dove abbiamo un po' di spaghetti... a queste velocità c'è ancora margine di manovra su realizzazioni artigianali anche grossolane... se saliamo di frequenza... la. musica cambia
Ciao Pier, ennesimo lavoro pazzesco, bellissimo vedere Arduino come lettore di EEPROM. Complimenti davvero. 73s Pasquale IW0HEX
grazie Pasquale oggi ci possiamo deliziare con questi giochetti "ready to go"... qualche riga di codice e vai... la soddisfazione arriva presto... sono sostanze stupefacenti per elettronici... e creano dipendenza...
Appassionato di decodifica ✋ 😁: essendo il bitrate rs232 il doppio di quello della seriale sincrona dell'arduino, sulla linea clock legge 1 bit quando il clock è alto e un bit quando il clock è basso, in pratica 01010101, con tanto di bit di start, Che in ASCII è una 'U' 😁... Poi è arrivata la pausa di 5 uS, non c'ha capito più nulla e ha trovato quel Tab 😂.
Complimenti! Progettino molto simpatico, molto utile a chi si vuole cimentare nella lettura/scrittura di eprom con una spesa minima (do per scontato che implementerai anche la scrittura 😜)
grazie... ottimo.. ho lasciato un po' vago questo aggancio fortuito sulla decodifica del rigol... ci vediamo in parte due per la scrittura, ciao e alla prossima!
Mi fai tornare indietro di 40 anni, quando non esistevano ancora i pc e dovevo caricare a mano con tastierino esadecimale, che poteva fare solo push, il firmware su eprom da 1k per dare funzionalità minime usando Z80 come microcontroller. Pier Sempre TOP INGEGNERE UA-camR ♥ ITALIANO
che bei ricordi... la cosa stupefacente era la possibilità di lavorare "a basso livello"... veramente molto vicino al circuito...quasi in linguaggio macchina o microcodice. Oggi se facciamo un paragone con i pc odierni e quello che ci gira sopra, abbiamo molti livelli di astrazione sovrapposti... molto comodo da un lato, ma nello stesso tempo si perde il contatto con l'hardware...
@@PierAisa Già. Tempo fa ho interfacciato un sensore di temperatura su I2C con un raspberry. Sono rimasto stupito dai vari esempi su internet dove neanche ti viene spiegato come funziona e cosa è I2C.... C'è la libreria Python no? Copia incolla, usa, e non capire niente su come funziona cosa consente e cosa è i2c..... bah...... sarà che sono vecchio ma per me è valido il vecchio detto "conosci, capisci e 'impera'".
;-(
Con me sai benissimo con me sfondi una porta aperta, infatti nei video cerco sempre di partire dalle basi. Come dici per dominare la tecnologia bisogna scendere a livello più basso possibile.... il copia incolla nella nostra memoria dura meno di un secondo
@@PierAisa +/- come una memoria dinamica senza refresh ;-)
@@gasparinizuzzurro6306 Sì esatto oppure come una EPROM con la finestra UV, che se ne va a spasso il sole di mezzogiorno
Buonasera Pier, grande idea rispolverare la vecchia elettronica digitale. La butto lì : perché non utilizzare dei contatori cmos al posto degli shift register? Io utilizzo dei 4040 (74hc4040), con una sola linea fai tutto, dai n colpi di clock per raggiungere l'indirizzo n, con il reset azzeri . Secondo me il programma di arduino sarebbe più semplice.
Grazie per il bel video.
grazie, ero sicuro di riaccendere unagrande anima creativa a 8 bit... ottima idea l'uso dei contatori, se si vuole fare una lettura sequenziale , come è logico per un lettore di eprom...ci vediamo per la parte due, di programmazione.
@@PierAisa Grazie Pier, ottimo video! Anche io mi ero cimentato con i lettori di Eprom ed allora dico la mia 🙂
Si potrebbero anche usare due latch tipo HC373 per gli indirizzi piu' qualche pin per abilitazioni ed indirizzamento.
Poi si girano in input ed output 8 bit di arduino a seconda che si scriva l'indirizzo o si legga il dato dalla eprom 🙂
Saluti!!
@@cxlabs grande.. il 373 insieme ai 245 sono i mattoni base... il prezzemolo del mondo 8 bit.. di quegli anni gloriosi
Video molto istruttivo come sempre. Domanda: utilizzando Arduino Mega avremmo evitato l'uso degli shift register rendendo il tutto un po' piu' semplice o sbaglio ?
con tutti quei pin di I/O si può fare accesso diretto
@@PierAisa Ok
buonasera, sono un autodidatta e mi interessa costruire questo circuito per leggere e scrivere vecchie eprom , pero' nello schema al piunto 8.20 che mi sono stampato nel 164(1) il piedino 13 e' collegato al 164(2) piedino 2 ma non trovo corrispondenza con il piedino 1 della eprom (A7) con il 164(2) dove ci sono A8 A9 e A10, mi sfugge qualcosa? per favore poi volevo chiedere se invece di mettere i 74hc164 posso adattagli i 74hc595 che mi avanzano da un vecchio progetto? grazie per le risposte.
😀
Ottimo osservatore. Esatto il pin 13 di 164(1) e' collegato al pin 2 di 164(2) e deve essere anche collegato ad A7 (pin 1 della EPROM M2716). Lo metto nel commento in evidenza, grazie. Si puoi usare anche dei 595, vanno benissimo, ma ricordati di gestire anche l'Output Enable.
Ottimo video, mi vengono in mente gli anni 90/2000 di fianco a me c'era un meccanico che faceva piccole elaborazioni alle auto(in particolare diesel) sostituendo le eprom. Mitici flip-flop 👉shift register
eh già... proprio quello uno dei settori dove queste memorie venivano maneggiate in maniera autonoma.
Sebbene mi accodo con ritardo... A livello di codice ho visto un paio di ottimizzazioni apportabli. la funzione readEprom non deve ritornare un "int", paradossalmente in linguaggi moderni è a 16 bit, bensì o un uint_8 (un intero senza segno di 8 bit) od il suo equivalente standardizzato come "byte". Piuttosto che utilizzare i delay, personalmente utilizzerei altri meccanismi di timing, utilizzando "il tempo perso" dei delay per qualche funzione preparatoria.
9A potrebbe essere una CALL (in standard 8088/8086) all'indirizzo 0xB8FD... 47357. Dopo il NULL... C'è la CMC... Possibile provenga da un bancomat? Alcuni vecchi bancomat avevano il BIOS così modifcato. Ed il resto del codice era splittato su altri 3 banchi EPROM.
Considerando che la funzione è dozzinale, fai sparare su seriale un file INTELHEX. Così elimini i problemi di eventuali interpretazioni.
grazie!! Gentilissimo... dovrei affrontare la parte due per la scrittura... spero di poterla mettete in cantiere perché qui ne arriva unna nuova ogni giorno...
Come sempre progetto molto interessante e spiegato molto bene! A suo tempo usavo un programmatore autocostruito con interfaccia a porta parallela.
Non vedevo da anni le EPROM (a mio avviso erano bellissimi i packages con l'apertura trasparente). Ormai le poche che mi sono rimaste le uso solo per fare capire ai miei amici come sono fatti i chip all'interno 😁
.. la porta parallela... una manna per gli elettronici... addirittura si poteva avere accesso diretto all'hardware. Dalle prime user port su commodore64, la tentazione di comandare hardware esterno è sempre stato molto forte. Poi con le prime versioni di Windows, sempre più difficile accedere in modo diretto... ricordo la libreria DirectIO per superare il problema.
Ing Pier , Magistrale come sempre, ma purtroppo ho mollato, troppo per me, sigh
grazie! Mai dire mai.... nella vita non si può mai sapere cosa accade.. specialmente se è scritto nel DNA
Le icone come viene scritta testualmente per poi vederla noi sullo schermo tipo l ingranaggio
Non ho capito, mi riesci a spiegare meglio?
Video interessante Pier! vorrei provare a raffinare questo progetto sotto molti aspetti; mi potresti consigliare una EEPROM operante in parallelo e ben conosciuta su cui basarmi? Grazie per tutti i tuoi contenuti :D
ottimo....ce ne sono tantissime, ma vedo molto usate le EPROM M27C1001 e EEPROM CSI CAT28C16A ad esempio
Va bene! Andrò per questi modelli allora 👍
Ciao Pier! Interessante progetto. Anche se sono "vecchie" comunque la lettura da seriale "pura" necessita di accorgimenti non immediati..... Complimenti e, alla prossima!
... ciao... infatti spero di avervi provocato.. sulla decodifica "casuale" di rigol e sul fatto di mandare i dati raw su seriale 😉
👍👍👍👍👍
Complimenti, video molto interessante. Ancor piu' interessante sarebbe vedere la realizzazione di un programmatore... Saluti
Ancora meglio, che già c'è l'avevo in testa, un programmatore di pic😁
Lo scopo finale sarebbe quello, ma la puntata uno se ne è andata solo per la lettura...
Bel progetto con le mitiche memorie e l'ottima lezione. Buona Domenica :-)
grazie!! Quelle memorie sono lo zoccolo duro di tutti i macchinari anni '80..
Buona domenica pier
grazie anche a te.. ultimi spiragli d'estate
Grande video di Pier !
Un vero mito Pier, sempre spiegazioni chiarissime e molto dettagliate complimenti👍👍👍
grazie, siamo partiti da zero, poi per ottenere un oggetto affidabile serve altro tempo
Come sempre, un video molto interessante, mi piacerebbe che ne seguissero altri sempre sullo stesso argomento. Per quanto riguarda l'indovinello, suppongo che quella U maiuscola corrisponda al valore 85 decimale (55 in esadecimale) ASCII decodificato e la HT stia per "Horizontal Tab" che corrisponde al valore 09 ASCII. Fammi sapere se questa è la risposta esatta. Buona domenica, Pier.
grazie Giovanni... molto bene proprio così!!! Il valore 0x55 viene comunque riconosciuto facilmente.... considerando che la shiftout di Arduino non rispetta il protocollo RS-232, ne come timing, ne come struttura... buona domenica!
Segui le orme del Maestro. Scheda millefiori, saldatore, 2 ore a saldare fili su piazzole che non vedi nemmeno con la lente. Finito! Aspetta che controllo PIN ti PIN prima di dare tensione. Noooooo! Non ho specchiato la EPROM nello schema lato rame. Ho tutti i collegamenti scambiati! @#!#!&
.. sono cose che fanno diventare matto.. .. ma poi quando ci salti fuori... grande festa!!
@@PierAisa Non mollo, tranquillo :)
Ciao,splendita ,interessante complimenti come sempre
grazie buona domenica!
Bel video Pier....come sempre. Per quanto riguarda l'indovinello credo ci sia un errore, mi sembra che nel programma la seriale sia stata impostata a 57600 baud mentre nel Rigol a 115200 quindi sicuramente il Rigol non è "allineato" nell'interpretazione dei dati che legge. Magari mi sbaglio, però non trovo nessun nesso tra quello che legge in emulazione rs232 e quanto inviato sulla seriale. Dove sbaglio ? grazie e buona domenica a tutti.
Ciao ho volutamente fatto una forzatura... la funzione shiftOut di Arduino ha un timing che non è compatibile con nessun protocollo RS-232 sia a livello di timing che di struttura. Ho trovato una "combinazione" con la velocità di decodifica di rigol che ha permesso di riconoscere 0x55 con il carattere ASCII "U" come effettivamente è... ma vale solo per poche combinazioni di caratteri / velocità...
Anche per via dei biondi start stop
si esatto rigol si attende una struttura conforme al protocollo... è stato simpatico avere una decodifica in maniera così coatta 😉
@@PierAisa in effetti le seriali che in qualche campo sono ancora utilizzate, sono qualcosa che ci portiamo dietro dai primi computer degli anni 80 e oggi come allora il loro punto debole è la gestione delle varie sincronizzazioni. Ho capito che dietro quel U e HT ci sono stati vari tentativi di timing e questo era il meglio che Rigol riusciva a intercettare. grazie e ciao
Ciao Pier video interessante spiegato bene come sempre. Grazie anche a Paolo che saluto. Buona domenica.
grazie e buona domenica!
Video davvero ben fatto. Complimenti soprattutto per la fruizione dei concetti.
grazie, si cerco di puntare sui principi e poi l'implementazione può essere fatta in tanti modi.. ognuno può sfogare la propria creatività, ciao e alla prossima
Fantastico chiarimento sulla programmazione delle eeprom. Fantastica l'applicazione hw di programmazione .
grazie Guido, avevo bisogno di scendere a basso livello. Arduino è una scelta molto comoda. Negli anni '80 l' approccio sarebbe stato ancora più vicino all'hardware con l'uso di assembly
Scusa ma "gli uni" non si può sentire 😜
🤣🤣 a che minuto del video? Tu cosa useresti come plurale di uno?
SUPERLATIVO !!!
Ok che l'elettronica digitale può non piacere , ma chiamarli "shit register "
😄😄😄
(Guardate il commento su IDE appena comincia a spiegare lo sketch)😄
🤣🤣🤣... me ne ero accorto troppo tardi e mi sono detto "non dico niente... vediamo se qualcuno se ne accorge..." e ne ero quasi sicuro, che qualcuno lo avrebbe notato.... siete sempre sul pezzo!! Ciao e alla prossima!
@@PierAisa considerando che non sono un elettronico, ma sono entusiasta, e che alle superiori l'elettronica mi è stata spiegata male ieri ho capito come funziona uno "shit" register 😁
Bel video!
Davvero interessante!
Lavoro eccellente. Ora è necessario scrivere. E cosí riesci a fare un programmatore eprom low-cost. Attento ai mix di lingua "readEpromRiga" ... pericoloso. Fatto in passato tanto per fare poi a cercare le righe è stato """divertente"""
29:57 se sei su W10, seleziona uno dei due reader, premi il tasto Windows seguito da una delle freccette orizzontali. Se vuoi metterlo sulla parte sinistra dello schermo: Windos + Freccia Sinistra. Fai lo stesso per l'altro reader. Ti permette facilmente di sistemare le finestre aperte sullo schermo senza overlap e rapidamente. Su W11 è ancora più semplice ma credo tu abbia il 10 su quella macchina.
34:00 hai pensato di convertire il file binario in Base64, trasferirlo via seriale e poi riconvertirlo da Base64 a Binary? È spesso usato per non avere il problema che hai riscontrato.
Cosí facendo salvi il contenuto della Eprom e lo carichi per la programmazione di altre eprom come copia-back-up
grazie Tormy per il commento. Nel video ho lasciato questi spunti di riflessione proprio per scatenare la vostra creatività, che come prevedibile è partita....benissimo. Sarà necessaria anche una parte su PC, vediamo cosa selezionare per renderla facile e replicabile.
Ciao e buona domenica!
Molto interessante pier
ogni tanto un video "back to basics"
Top video!
. tu aspetto iin lab per la parte due sulla programmazione 😉
Ciao Pier! Proprio quello che aspettavo, visto che ho una scatola di scarpe piena di Memorie ed affini da controllare. Grazie anche a Paolo che saluto.
Ora mi gusto il video.👍👍👍👍👍
grazie Nonno Beppe, questo è un primo episodio. Poi per ottenere un lettore infallibile bisogna curare altri aspetti, si vede bene nella parte finale dove è necessario gestire lo scarico dati da seriale
Conversione sipo input seriale uscita parallela...
Un altro video utilissimo ed interessante complimenti. Ho una eeprom da copiare ma ha un blocco dalla casa madre e non riesco. Almeno il mio fornitore di materiale elettronico non riesce
... il tema "blocchi", "protezione" andrebbe esplorato attentamente
@@PierAisa esatto. Infatti sono bloccato per questo. E una eeprom che comanda un orologio con datario
ti ricordi il part number?
@@PierAisa sulla eeprom c'è un numero se non ricordo male. Domani mattina guardo e ti faccio sapere
@@giuseppecolombo4701 ok scrivimi a pieraisaforum@gmail.com
L'attivazione sul livello "basso" di solito viene impostata per progetto per questioni di risparmio energetico oltre che per possibili problemi dovuti al rumore elettrico.
grazie per il commento
Video molto interessante. Mi ha fatto venire il desiderio di fare scorta di chip 74HC164. Spiegazione poi estremamente chiara, ma con Pier non ci sono dubbi ;-)
grazie! Infatti ho selezionato queste porte logiche, perché è abbastanza probabile trovarle nei cassetti e ancora oggi si trovano facilmente sul mercato.... visto il periodo...
Ottimo, io anni orsono 30 e più, avevo urgenza di programmare un eprom e l'unica cosa a disposizione era un plc a 16 uscite e un po' di TTL cMos, avevo fatto un programmatore simile al tuo, ma indirizzi e dati li memorizzano in parallelo sui FF e poi WR, la velocità di scrittura era 10byte al secondo viste che avevo le uscite a rele. ..però ha funzionato .. comunque sei sempre un grande
grazie.. esatto proprio questo lo spirito giusto: capire il problema, analizzarlo e risolverlo con le proprie armi a disposizione... poi si può passare ad una fase successiva di razionalizzazione.. ma la cosa importante è affrontare il problema sulla carta
Salve Pier , Video molto interessante , io mi ritrovo tra le mani un sacco di memorie 3-wire tipo 93c66-93c56-93c46 e in rete non trovo niente su come fare per leggere o scrivere su queste memorie , sarebbe interessante se facessi un Video tutorial anche su questo tipo di eeprom .
... uuhh protocoppo interessante, se lo hai già mandami il link del datasheet
Eccomi ! E dopo due secondi, uno invero ecco già in vicinanza il gufo in giallo Fluke 87V.
.. gli ho dato il ruolo di attore protagonista nel prologo... ciao e buona domenica!
Grande Pier Alessandro...il Grande !
Sarebbe utile capire come programmarlo perché avrei da programmare gli EC Embended controller dei notebook solo che il programmatore annesso costa oltre i mille euro.... Aspetto con ansia la seconda puntata sperando ła farai così poi la modificherò per le mie esigenze
Bel video!👍
grazie.. per la. programmazione bisogna studiare bene il datasheet in particolare i diagrammi con i timing e i tempi da rispettare. Inoltre deve essere gestita la fase di caricamento da PC del file binario con un piccolo sw lato PC
il dump in caratteri non è uguale per via del fatto che oggi i caratteri sono codificati con u nicode non più come ai bei vecchi tempi dove un carattere == byte.
quando senti il beep è perchè il carattere è il codice 7 (chiamato bell) che fa fare " beep" quando stampato, tanto a schermo quanto se lo inviassi su una vecchia stampante ad aghi come carattere. Nel vecchio set caratteri ascii infatti i codici sotto il 32 non sono veri propri caratteri stampabili ma più che altro "codici di comando". Fanno parte di questi caratteri:
il codice 9 -> tabulazione
il codice 13 -> ritorno di carrello
il codice 10 -> line feed
il codice 7 -> bell......
sono retaggi del fatto che le stampanti dei computer sono derivate dalle macchine per scrivere.
probabilmente il monitor seriale di arduino interpreta secondo la codifica non ascii (non ricordo la codepage) per cui vedi "simboli" differenti che in notepad++
Grazie per il commento assolutamente così Infatti quando ci occuperemo della scrittura dobbiamo tenere presente il discorso dei raw bytes
Ad inizio anni '80 avevo fatto un programmatore di Eprom che funzionava con in Vic-20. Ma anche una versione per una scheda Z-80 autocostruita. Erano altri tempi, non mi ci metterei più con dispositivi del genere.
che ricordi gloriosi.... quando l'accesso diretto all'hardware era una funzionalità logica concessa senza nessuna preoccupazione di accessi "non leciti"... ora nei sistemi operativi questo non è più permesso
@@PierAisa Già, avevo fatto un computer su scheda con Z-80, "ben" 4 k di RAM statica ed altrettanti k previsti per le EPROM, in realtà ho montato solo una 2708 da un k (in seguito una seconda Eprom con il programma di programmazione Eprom). A tripla alimentazione, dove il ramo negativo doveva arrivare un attimo in anticipo sulle altre tensioni per non rischiare di bruciarla. Così, giusto per complicare l'alimentatore. Ci avevo messo un semplice programma monitor con tastiera esadecimale e display LED a 8 digit. Era in grado di scrivere/leggere i programmi su di un'audiocassetta collegando un registratore e di programmare le Eprom. In seguito ho fatto una scheda video e pure un semplice videogioco. Poi sono passato al Vic-20 con il quale ho fatto un programmatore di Eprom gestito in... Basic! Le temporizzazioni fatta con cicli FOR... NEXT, che roba! E funzionava magnificamente. Il difficile è stato partire con la mia scheda Z-80: se non hai un minimo programma che parte al boot non fai nulla. Sono partito quindi da una ROM fatta programmare da mio fratello che aveva fatto un computer simile con un 8080. Per poter funzionare senza ROM: aveva un interruttore di Reset, si teneva ferma la CPU e si scriveva in RAM con una tastiera esadecimale, agendo in DMA. L'hardware che faceva questo (e la visualizzazione su display) era un progetto mio. Una volta partito con la ROM ho potuto scrivere la mia Eprom e quindi sostituire la ROM iniziale (256 byte!) con il mio sistema più evoluto. Consentiva anche l'esecuzione di programmi un'istruzione alla volta per il debug e si potevano inserire breakpoint.
... il sogno di ogni 8bit lover... io iniziai con la serie di video z80 ed il primo fu proprio la accensione del mitico zilog che ha una funzione tostissima... lo puoi cloccare con velocità anche molto lente.. scelsi un secondo. ua-cam.com/video/eGq1UhNv7Bg/v-deo.html poi sono andato avanti con il pcb di un mini computer governato da seriale ua-cam.com/play/PL_ztu1krqOLq9f7TLi86TFP-m8PO4Wf7L.html soddisfazioni immediate... attenzione crea dipendenza
@@PierAisa sì, io a inizio anni '90 per motivi famigliari ho dovuto smettere, poi ho messo su famiglia. Ora, dopo 30 anni sono in pensione ed ho provato a ricominciare. Ho scoperto di essere ancora in grado di progettare circuiti analogici e per quanto riguarda il digitale mi sono fatto una stazione meteo con un Raspberry e poi parecchie cose con Arduino ed altri microcontrollori. Certo che con questo video mi hai scoperchiato la memoria.
la cosa bella è proprio quella.... quando hai nel DNA quel tipo di approccio, risalta fuori anche dopo tante ere tecnologiche. Ora ci sono giocattolini con i quali si può fare tutto in poco tempo.
P.S.: mi sarei aspettato, nello spirito di condivisione, un link al file .ino finale.
li ho resi disponibili per i Patrons in descrizione, puoi scrivermi a pieraisaforum@gmail.com
Ed altro che mi sovviene ora...la questione little o big endian a seconda proprio della disposizione e peso dei bit.
eh infatti nel video se ci fai caso ho dovuto invertite l'ordinamento sui pin di indirizzo Ax