{"id":988,"date":"2020-07-09T12:51:56","date_gmt":"2020-07-09T10:51:56","guid":{"rendered":"https:\/\/retrofixes.it\/?page_id=988"},"modified":"2024-01-18T08:53:27","modified_gmt":"2024-01-18T07:53:27","slug":"dram-tester","status":"publish","type":"page","link":"https:\/\/retrofixer.it\/en\/dram-tester\/","title":{"rendered":"Dram Tester"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"988\" class=\"elementor elementor-988\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fc1db22 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"fc1db22\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5103e58\" data-id=\"5103e58\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a63d601 elementor-widget elementor-widget-image\" data-id=\"a63d601\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"550\" height=\"225\" src=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/dram16-64.png\" class=\"attachment-large size-large wp-image-1291\" alt=\"\" srcset=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/dram16-64.png 550w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/dram16-64-300x123.png 300w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/dram16-64-16x7.png 16w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/dram16-64-260x106.png 260w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/dram16-64-50x20.png 50w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/dram16-64-150x61.png 150w\" sizes=\"(max-width:767px) 480px, 550px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7149883 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7149883\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2ceda59\" data-id=\"2ceda59\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-dbcd6f0 elementor-widget elementor-widget-heading\" data-id=\"dbcd6f0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Come posso testare le DRAM ?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e202522 elementor-widget elementor-widget-text-editor\" data-id=\"e202522\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Capita di doversi cimentare nel riparare un vecchio computer o console che utilizza queste tipologie di RAM e fortunatamente ci sono dei modi che ci aiutano a trovare il banco (o pi\u00f9) difettoso.<br \/>Ma perch\u00e9 le DRAM? Queste RAM dinamiche (da cui il nome) a differenza di quelle statiche hanno necessit\u00e0 di rinfrescare i loro dati memorizzati riscrivendoli spesso ogni tot millisecondi. I dati su queste RAM vengono memorizzati e mantenuti da una carica di un condensatore presente sulla cella di memoria, ma questo condensatore anche se non mantiene la carica per molto tempo e\u00a0 se il dato viene letto la carica si esaurisce molto pi\u00f9 rapidamente, quindi i dati devono essere riscritti sia se si legge (solo la riga letta) che periodicamente (tutti i dati presenti).<br \/>Sono state scelte queste RAM per un semplice motivo, il costo!, infatti rispetto alle SRAM questo modello richiede molti meno transistor nella costruzione quindi si possono avere RAM con molta pi\u00f9 capacit\u00e0 al costo di una SRAM 4 volte pi\u00f9 piccola.<\/p><p>Beh, ora vediamo come risolvere i problemi di queste memorie, spesso a causa del deterioramento dei condensatori non mantengono pi\u00f9 i dati scritti e un metodo per trovare la RAM guasta pu\u00f2 essere quello di posizionarne un&#8217;altra sopra di essa (metodo Piggyback), in questo modo i dati verranno scritti e memorizzati sulle due ram e se un dato va perso sulla ram difettosa, sar\u00e0 recuperato da quella buona.<br \/>Attenzione che non \u00e8 un sistema infallibile, infatti se la RAM ha dei pin in corto, quella messa sopra non riuscir\u00e0 a passare nessun dato sulla linea in corto, inoltre se ci sono pi\u00f9 banchi difettosi il computer potrebbe non partire (se non ha un sistema per controllare la RAM all&#8217;avvio) e non saprete quale altra \u00e8 rovinata.<\/p><p>Questo metodo invece richiede di costruirsi un piccolo tester basato su Arduino, lo schema si trova in rete ed \u00e8 molto semplice, il funzionamento non fa altro che scrivere e leggere diverse volte per verificare che i dati siano effettivamente corretti.<br \/>Potete trovare le informazioni e lo schema a questo link:\u00a0<a style=\"letter-spacing: 0px;\" href=\"https:\/\/forum.defence-force.org\/viewtopic.php?t=1699\">https:\/\/forum.defence-force.org\/viewtopic.php?t=1699<\/a><\/p><div style=\"background-color: #660;\"><em>Attenzione<\/em>: il firmware di Arduino su questo link contiene un bug su l&#8217;indirizzamento della memoria, vi potr\u00e0 dare ram ok mentre invece \u00e8 guasta, perch\u00e9 non testa tutti gli indirizzi. Seguite la guida fino in fondo dove metter\u00f2 il link con il firmware corretto!<\/div><p>Visto che lo schema \u00e8 disegnato a mano, ve ne metto uno rifatto seguendo l&#8217;originale (by ISS):<\/p><h3>Tester per 4164<\/h3><p>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c1e7e7a elementor-widget elementor-widget-image\" data-id=\"c1e7e7a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"810\" height=\"739\" src=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/ardudram.jpg\" class=\"attachment-large size-large wp-image-997\" alt=\"\" srcset=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/ardudram.jpg 810w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/ardudram-300x274.jpg 300w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/ardudram-768x701.jpg 768w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/ardudram-160x146.jpg 160w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/ardudram-50x46.jpg 50w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/ardudram-82x75.jpg 82w\" sizes=\"(max-width:767px) 480px, (max-width:810px) 100vw, 810px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-80c1741 elementor-button-warning elementor-widget elementor-widget-button\" data-id=\"80c1741\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/retrofixer.it\/download\/dramarduino.zip\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"far fa-arrow-alt-circle-down\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Download Firmware<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1f941d6 elementor-widget elementor-widget-accordion\" data-id=\"1f941d6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-accordion\">\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-3311\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-3311\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"fas fa-code\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" tabindex=\"0\">Codice sorgente<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-3311\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-3311\"><p>#include &lt;SoftwareSerial.h&gt;<\/p><p>#define DI 15 \/\/ PC1<br \/>#define DO 8 \/\/ PB0<br \/>#define CAS 9 \/\/ PB1<br \/>#define RAS 17 \/\/ PC3<br \/>#define WE 16 \/\/ PC2<\/p><p>#define XA0 18 \/\/ PC4<br \/>#define XA1 2 \/\/ PD2<br \/>#define XA2 19 \/\/ PC5<br \/>#define XA3 6 \/\/ PD6<br \/>#define XA4 5 \/\/ PD5<br \/>#define XA5 4 \/\/ PD4<br \/>#define XA6 7 \/\/ PD7<br \/>#define XA7 3 \/\/ PD3<br \/>#define XA8 14 \/\/ PC0<\/p><p>#define M_TYPE 10 \/\/ PB2<br \/>#define R_LED 11 \/\/ PB3<br \/>#define G_LED 12 \/\/ PB4<\/p><p>#define RXD 0 \/\/ PD0<br \/>#define TXD 1 \/\/ PD1<\/p><p>#define BUS_SIZE 9 \/\/ impostare a 7 se utilizzato per 4116<\/p><p>volatile int bus_size;<\/p><p>\/\/SoftwareSerial USB(RXD, TXD);<\/p><p>const unsigned int a_bus[BUS_SIZE] = {<br \/>XA0, XA1, XA2, XA3, XA4, XA5, XA6, XA7, XA8<br \/>};<\/p><p>void setBus(unsigned int a) {<br \/>int i;<\/p><p>\/\/funzione corretta<\/p><p>for (i = 0; i &lt; bus_size; i++) {<\/p><p>\u00a0\u00a0\u00a0 if (bitRead(a, i)==1) {<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0 digitalWrite(a_bus[i], HIGH);<br \/>\u00a0\u00a0\u00a0 } else {<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0 digitalWrite(a_bus[i], LOW);<br \/>\u00a0\u00a0\u00a0 }<br \/>\u00a0 }<br \/>}<\/p><p>void writeAddress(unsigned int r, unsigned int c, int v) {<br \/>\/* row *\/<br \/>setBus(r);<br \/>digitalWrite(RAS, LOW);<\/p><p>\/* rw *\/<br \/>digitalWrite(WE, LOW);<\/p><p>\/* val *\/<br \/>digitalWrite(DI, (v &amp; 1)? HIGH : LOW);<\/p><p>\/* col *\/<br \/>setBus(c);<br \/>digitalWrite(CAS, LOW);<\/p><p>digitalWrite(WE, HIGH);<br \/>digitalWrite(CAS, HIGH);<br \/>digitalWrite(RAS, HIGH);<br \/>}<\/p><p>int readAddress(unsigned int r, unsigned int c) {<br \/>int ret = 0;<\/p><p>\/* row *\/<br \/>setBus(r);<br \/>digitalWrite(RAS, LOW);<\/p><p>\/* col *\/<br \/>setBus(c);<br \/>digitalWrite(CAS, LOW);<\/p><p>\/* get current value *\/<br \/>ret = digitalRead(DO);<\/p><p>digitalWrite(CAS, HIGH);<br \/>digitalWrite(RAS, HIGH);<\/p><p>return ret;<br \/>}<\/p><p>void error(int r, int c)<br \/>{<br \/>unsigned long a = ((unsigned long)c &lt;&lt; bus_size) + r;<br \/>digitalWrite(R_LED, LOW);<br \/>digitalWrite(G_LED, HIGH);<br \/>interrupts();<br \/>Serial.print(&#8221; FAILED $&#8221;);<br \/>Serial.println(a, HEX);<br \/>Serial.flush();<br \/>while (1)<br \/>;<br \/>}<\/p><p>void ok(void)<br \/>{<br \/>digitalWrite(R_LED, HIGH);<br \/>digitalWrite(G_LED, LOW);<br \/>interrupts();<br \/>Serial.println(&#8221; OK!&#8221;);<br \/>Serial.flush();<br \/>while (1)<br \/>;<br \/>}<\/p><p>void blink(void)<br \/>{<br \/>digitalWrite(G_LED, LOW);<br \/>digitalWrite(R_LED, LOW);<br \/>delay(1000);<br \/>digitalWrite(R_LED, HIGH);<br \/>digitalWrite(G_LED, HIGH);<br \/>}<\/p><p>void green(int v) {<br \/>digitalWrite(G_LED, v);<br \/>}<\/p><p>void fill(int v) {<br \/>int r, c, g = 0;<br \/>v %= 1;<br \/>for (c = 0; c &lt; (1&lt;&lt;bus_size); c++) {<br \/>green(g? HIGH : LOW);<br \/>for (r = 0; r &lt; (1&lt;&lt;bus_size); r++) {<br \/>writeAddress(r, c, v);<br \/>if (v != readAddress(r, c))<br \/>error(r, c);<br \/>}<br \/>g ^= 1;<br \/>}<br \/>blink();<br \/>}<\/p><p>void fillx(int v) {<br \/>int r, c, g = 0;<br \/>v %= 1;<br \/>for (c = 0; c &lt; (1&lt;&lt;bus_size); c++) {<br \/>green(g? HIGH : LOW);<br \/>for (r = 0; r &lt; (1&lt;&lt;bus_size); r++) {<br \/>writeAddress(r, c, v);<br \/>if (v != readAddress(r, c))<br \/>error(r, c);<br \/>v ^= 1;<br \/>}<br \/>g ^= 1;<br \/>}<br \/>blink();<br \/>}<\/p><p>void setup() {<br \/>int i;<\/p><p>Serial.begin(9600);<br \/>while (!Serial)<br \/>; \/* wait *\/<\/p><p>Serial.println();<br \/>Serial.print(&#8220;DRAM TESTER &#8220;);<\/p><p>for (i = 0; i &lt; BUS_SIZE; i++)<br \/>pinMode(a_bus[i], OUTPUT);<\/p><p>pinMode(CAS, OUTPUT);<br \/>pinMode(RAS, OUTPUT);<br \/>pinMode(WE, OUTPUT);<br \/>pinMode(DI, OUTPUT);<\/p><p>pinMode(R_LED, OUTPUT);<br \/>pinMode(G_LED, OUTPUT);<\/p><p>pinMode(M_TYPE, INPUT);<br \/>pinMode(DO, INPUT);<\/p><p>digitalWrite(WE, HIGH);<br \/>digitalWrite(RAS, HIGH);<br \/>digitalWrite(CAS, HIGH);<\/p><p>digitalWrite(R_LED, HIGH);<br \/>digitalWrite(G_LED, HIGH);<\/p><p>\/\/ se si usa la memoria 4146 non inserire questo ciclo if (digitalRead)&#8230; else ..<\/p><p>if (digitalRead(M_TYPE)) {<br \/>\/* jumper not set &#8211; 41256 *\/<br \/>bus_size = BUS_SIZE;<br \/>Serial.print(&#8220;256Kx1 &#8220;);<br \/>} else {<br \/>\/* jumper set &#8211; 4164 *\/<br \/>bus_size = BUS_SIZE &#8211; 1;<br \/>Serial.print(&#8220;64Kx1 &#8220;);<br \/>}<\/p><p>Serial.flush();<\/p><p>digitalWrite(R_LED, LOW);<br \/>digitalWrite(G_LED, LOW);<\/p><p>noInterrupts();<br \/>for (i = 0; i &lt; (1 &lt;&lt; BUS_SIZE); i++) {<br \/>digitalWrite(RAS, LOW);<br \/>digitalWrite(RAS, HIGH);<br \/>}<br \/>digitalWrite(R_LED, HIGH);<br \/>digitalWrite(G_LED, HIGH);<br \/>}<\/p><p>void loop() {<br \/>interrupts(); Serial.print(&#8220;.&#8221;); Serial.flush(); noInterrupts(); fillx(0);<br \/>interrupts(); Serial.print(&#8220;.&#8221;); Serial.flush(); noInterrupts(); fillx(1);<br \/>interrupts(); Serial.print(&#8220;.&#8221;); Serial.flush(); noInterrupts(); fill(0);<br \/>interrupts(); Serial.print(&#8220;.&#8221;); Serial.flush(); noInterrupts(); fill(1);<br \/>ok();<br \/>}<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-771a2d8 elementor-widget elementor-widget-text-editor\" data-id=\"771a2d8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Realizzate questo circuito, programmate Arduino scaricando il file .ino oppure incollando il codice sorgente su di un progetto vuoto dell&#8217;ide di Arduino e programmatelo. Con Arduino connesso ad un pc potete vedere tramite il monitor seriale lo stato del test, oppure visibile tramite i led.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5fa0b98 elementor-widget elementor-widget-heading\" data-id=\"5fa0b98\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Funzionamento<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fd9f21a elementor-widget elementor-widget-text-editor\" data-id=\"fd9f21a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>1. Selezionate il tipo di RAM (4164 &#8211; 41256) tramite il jumper, se inserito si testano le 4164, se lasciato aperto si testano le 41256.<br \/>2. Inserite la RAM da testare facendo attenzione al corretto orientamento (una inversione di polarit\u00e0 vi brucer\u00e0 il banco di RAM).<br \/>3. Alimentate Arduino che comincer\u00e0 subito il test, attendete poco pi\u00f9 di un minuto e se tutto ok si accender\u00e0 il led verde, in caso contrario il rosso.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eac6e5a elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"eac6e5a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<i aria-hidden=\"true\" class=\"fas fa-crown\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f7878dd elementor-widget elementor-widget-heading\" data-id=\"f7878dd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Un altro esempio di DRAM tester (4164) V1<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-ef1aa29 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ef1aa29\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-0e293e9\" data-id=\"0e293e9\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-de3786b elementor-widget elementor-widget-text-editor\" data-id=\"de3786b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Questa \u00e8 una realizzazione di un tester simile a quello descritto sopra.<\/p><p>E&#8217; la prima versione che ho realizato e legge solo le 4164-256.<br \/>Il funzionamento \u00e8 leggermente diverso e funziona con un display e due pulsanti, uno per scegliere il tipo di RAM da testare e uno per iniziare il test.<\/p><p>I vari test effettuati sono visibili nel display come il risultato finale.<br \/>In questo caso l&#8217;alimentazione della memoria viene gestita da Arduino che provveder\u00e0 ad alimentare la RAM appena\u00a0 si inizia il test e la interromper\u00e0 quando finito. Una piccola sicurezza per evitare di bruciare la RAM se viene posizionata al contrario.<\/p><p>Ora tocca a voi inventare un vostro tester personale o pi\u00f9 semplicemente usare quello descritto.<\/p><p>IL CODICE PRECEDENTE NON VA BENE PER QUESTO TESTER.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-72ef597\" data-id=\"72ef597\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ed055ff elementor-widget elementor-widget-image\" data-id=\"ed055ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/dram_v2-768x1024.jpg\" class=\"attachment-large size-large wp-image-1022\" alt=\"\" srcset=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/dram_v2-768x1024.jpg 768w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/dram_v2-225x300.jpg 225w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/dram_v2-1152x1536.jpg 1152w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/dram_v2-110x146.jpg 110w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/dram_v2-38x50.jpg 38w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/dram_v2-56x75.jpg 56w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/07\/dram_v2-rotated.jpg 1512w\" sizes=\"(max-width:767px) 480px, (max-width:768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-5f191b8 elementor-widget elementor-widget-text-editor\" data-id=\"5f191b8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Ed ora ecco il nuovo tester adatto anche per le 4116 V2<\/h3><div>Il funzionamento \u00e8 identico al precedente solo che queste memorie hanno bisogno oltre della 5v anche di una 12v e una tensione negativa di -5v, oltre ad avere una linea di indirizzi in meno.<\/div><div>In questo schema del nuovo tester ho utilizzato un lcd per visualizzare lo stato (come in quello sopra) ed ho aggiunto la parte di alimentazione per il chip 4116 (qui ho usato uno switch a 4 poli per gestire le due memorie, ma ne basta uno da 3 canali, uno l&#8217;ho usato per segnalare ad Arduino il tipo di memoria selezionata, anzi anche da 2 poli se non vogliamo controllare lo stato da arduino).<\/div><div>Le resistenze da 47ohm sono opzionali, le ho usate come test e anche con queste si riesce a testare correttamente la memoria ed in caso di pin in corto sulla dram si evita di bruciare i pin di Arduino.<\/div><div>L&#8217;alimentazione deve essere di circa 14V per avere una 12V corretta, altrimenti \u00e8 possibile utilizzare un dc-dc per portare la 5V di Arduino a 12V ed alimentare la ram cos\u00ec da evitare i 7812 e 7805 ed i diodi di protezione. Nella nuova revisione infatti ho alimentato tutto tramite la 5V di Arduino, portata a 12V con un booster e a -5V con il 7660.<\/div><div>\u00a0<\/div><div>Attenzione! non usate questo schema con il codice precedente, la piedinatura \u00e8 differente sia per la gestionre della ram che per i pulstanti e lcd.<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9cfb82e elementor-widget elementor-widget-image\" data-id=\"9cfb82e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"720\" src=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/4116_4164_tester-1024x720.jpg\" class=\"attachment-large size-large wp-image-1293\" alt=\"\" srcset=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/4116_4164_tester-1024x720.jpg 1024w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/4116_4164_tester-300x211.jpg 300w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/4116_4164_tester-768x540.jpg 768w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/4116_4164_tester-16x12.jpg 16w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/4116_4164_tester-208x146.jpg 208w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/4116_4164_tester-50x35.jpg 50w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/4116_4164_tester-107x75.jpg 107w, https:\/\/retrofixer.it\/wp-content\/uploads\/2020\/12\/4116_4164_tester.jpg 1162w\" sizes=\"(max-width:767px) 480px, (max-width:1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3d7d663 elementor-widget elementor-widget-text-editor\" data-id=\"3d7d663\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Ed Infine la versione 4<\/h3>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-51117eb elementor-widget elementor-widget-image\" data-id=\"51117eb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"947\" src=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/scheda.jpg\" class=\"attachment-large size-large wp-image-3440\" alt=\"\" srcset=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/scheda.jpg.webp 1024w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/scheda-300x277.jpg.webp 300w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/scheda-768x710.jpg.webp 768w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/scheda-13x12.jpg.webp 13w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/scheda-158x146.jpg.webp 158w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/scheda-50x46.jpg.webp 50w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/scheda-81x75.jpg.webp 81w\" sizes=\"(max-width:767px) 480px, (max-width:1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8d9ccd9 elementor-widget elementor-widget-text-editor\" data-id=\"8d9ccd9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Questo utilizza l&#8217;alimentazione di Arduino e la eleva a 12V con il booster, pin pi\u00f9 crea la -5V con il 7660.<br \/>Lo switch \u00e8 stato sostituito con un jumper per evitare di spostarlo accidentalmente e bruciare la ram, per il resto \u00e8 simile alla versione 3.<\/p><p>Anche questo PCB non \u00e8 compatibile con il sorgente originale.<\/p><p>Se vuoi costruitlo visita la mia pagina github<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2afeb1d elementor-widget elementor-widget-button\" data-id=\"2afeb1d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/github.com\/zeus074\/dramtester\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fab fa-github\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Dram tester V4<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2223e08 elementor-widget elementor-widget-text-editor\" data-id=\"2223e08\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Beta testing versione 4.2<\/h3>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-488d19e elementor-widget elementor-widget-text-editor\" data-id=\"488d19e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>non finisce qui, in test la versione software per testare anche le ram 4532 (parte alta o bassa), con finale animato! \ud83d\ude42<br \/>Questa versione esegue 5 test:<br \/>1 scrittua-lettura bit 0-1<br \/>2 scrittura-lettura tutti 1<br \/>3 solo scrittura tutti 1<br \/>4 solo lettura attesi tutti 1 (verifica che i dati vengano mantenuti)<br \/>5 scrittura-lettura tutti 0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-df5dbce elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"df5dbce\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-2c86b43\" data-id=\"2c86b43\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-822af67 elementor-widget elementor-widget-image\" data-id=\"822af67\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6378-768x1024.jpg.webp\" class=\"attachment-large size-large wp-image-3555\" alt=\"\" srcset=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6378-768x1024.jpg.webp 768w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6378-225x300.jpg.webp 225w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6378-1152x1536.jpg.webp 1152w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6378-9x12.jpg.webp 9w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6378-110x146.jpg.webp 110w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6378-38x50.jpg.webp 38w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6378-56x75.jpg.webp 56w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6378-rotated.jpg.webp 1512w\" sizes=\"(max-width:767px) 480px, (max-width:768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-b9fec83\" data-id=\"b9fec83\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1c7079e elementor-widget elementor-widget-image\" data-id=\"1c7079e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6379-768x1024.jpg.webp\" class=\"attachment-large size-large wp-image-3557\" alt=\"\" srcset=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6379-768x1024.jpg.webp 768w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6379-225x300.jpg.webp 225w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6379-1152x1536.jpg.webp 1152w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6379-9x12.jpg.webp 9w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6379-110x146.jpg.webp 110w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6379-38x50.jpg.webp 38w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6379-56x75.jpg.webp 56w, https:\/\/retrofixer.it\/wp-content\/uploads\/2021\/06\/IMG_6379-rotated.jpg.webp 1512w\" sizes=\"(max-width:767px) 480px, (max-width:768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Dram tester per 4116 e 4164!<br \/>\nCome costruirlo da soli..<\/p>","protected":false},"author":1,"featured_media":1291,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-988","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/pages\/988","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/comments?post=988"}],"version-history":[{"count":3,"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/pages\/988\/revisions"}],"predecessor-version":[{"id":8992,"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/pages\/988\/revisions\/8992"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/media\/1291"}],"wp:attachment":[{"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/media?parent=988"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/categories?post=988"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/tags?post=988"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}