Eprom Switcher. Come crearlo e scoprire il funzionamento

Eprom Switcher

Partiamo subito dicendo, che questo progetto (Eprom Switcher) andrà usato solo per auto da corsa e/o pista, in quanto l’ utilizzo su strada non è consentito.

1975-BMW-3.0-CSL-Race-Car-V1-1080

Cos’è questo circuito?

Il circuito in questione si è sviluppato principalmente per il mondo delle corse (auto) ma si può usare per svariati scopi. Il circuito è usato, principalmente per cambiare mappa e/o eprom in corsa (per le Ecu che le supportano) oppure per cambiare da fermi (a motore spento). Il tutto è gestito da un piccolo microcontrollore chiamato PIC.

Come funziona la logica che sta dietro all’ Eprom Switcher?

La logica che sta dietro al microcontrollore o PIC è molto semplice. In poche parole questo microcontrollore ha due “modalità”. La prima modalità è quella che viene usata per cambiare mappa direttamente in corsa, l’ altra è quella per cambiare solo a motore spento. Ho deciso di creare queste due piccole modalità perchè non tutte le Centraline delle auto supportano questa “funzione”.

Anche il circuito è diviso in due blocchi: il primo blocco è il circuito che gestisce la lettura dello stato di un pin da parte della ECU (centralina), il secondo blocco serve a “visualizzare” tramite due led la mappa selezionata. Per selezionare la mappa si va ad agire su un piccolo interruttore.

Il cuore che gestisce il tutto…

Assembly
Programmation Language

Il cuore di questo progetto è il microcontrollore, esso, in base alla modalità scelta (grazie ad un piccolo jumper) decide quale strategia usare. Ad esempio se seleziono la modalità per cambiare mappa in corsa, il PIC legge il pin CE della eprom selezionata e ne rileva lo stato. Lo stato può essere HIGH o LOW. Se la eprom ha uno stato HIGH significa che è in Standby mentre se lo stato è LOW significa che è in lettura.

Lettura & standby..

Il Pic legge questo stato e se la eprom è in standby lascia cambiare la mappa tramite l’ interruttore. Ovviamente il passaggio da Lettura a standby è molto veloce (nell’ ordine dei microsecondi). Nel circuito è presente un led che “mostra” lo stato dell’ ecu. Però visto che la Ecu ha un tempo di lettura/standby molto veloce il led rimane sempre acceso (Per noi esseri umani sembra acceso ma in realtà se si testa con oscilloscopio si vede cosa succede). Questo led di “avviso lettura” più avanti lo modificherò in modo tale che se la Ecu sta leggendo la eprom, il led lampeggi. Ovviamente il led si può sempre escludere.

L’ altra modalità è quella per le ecu che non supportano questa funzione, ovvero il cambio di mappa/eprom in corsa. Per vedere se la tua ecu non ha la funzionalità di mettere in standby la eprom basta applicare il circuito e provare a cambiare mappa (Ad esempio si può semplicemente mettere la eprom con mappa originale e una magari con limitatore a 3000 giri. Facendo questo si riuscirà a vedere se la ecu mette in standby la eprom) se questo non avviene significa che la ecu è sempre in lettura e non è possibile cambiare mappa a motore acceso. Ovviamente per cambiare le modalità si può agire sul jumper presente sulla scheda.

Funzionalità del pcb ecc..

Eprom
Eprom datasheet. Pin 20 : CE

Ovviamente prima di poter fare il pcb ho dovuto pensare come gestire a livello elettronico le due eprom e il passaggio di esse. Dopo un po’ di studio sulle eprom ho scoperto che esiste un pin chiamato: “CE“, la cosa bella di questo pin è che serve a mettere in standby o meno l’ eprom stessa. Quando si da alimentazione (nel mio caso 5v) al pin CE l’ eprom va temporaneamente in sospensione. Prima di tutto ho fatto un semplice sketch con arduino dove mi leggeva lo stato del pin CE su una centralina. Ho creato una semplice simulazione al pc di questo circuito simulando la lettura da parte della centralina per verificare se il circuito e il codice di programmazione rispondevano bene.

Le varie prove…

Prima di fare il pcb ho provato il circuito su breadboard mediante l’ uso di arduino. Ho creato un piccolo sketch di arduino dove ho fatto una serie di controlli, ovvero: 1) Controllo se il jumper è in posizione on oppure off 2)Controllo lo stato del pin CE della ECU 3) Se il jumper è in posizione on eseguo una modalità altrimenti eseguo l’ altra modalità 4) Controllo lo stato dell’ interruttore per cambiare mappa. Forse sembrerà un po’ complicato ma in realtà è molto semplice! Non sono altro che degli IF, Else ecc.. 😀 Tutte le altre funzionalità (ad esempio: Led indicazione mappa, Led indicazione lettura ecu, ecc) sono state aggiunte dopo nel programma.

Una volta testato al banco con Arduino ho creato il programma (grazie ad un mio caro amico) per un piccolo Pic. Ho utilizzato un pic a 8 pin chiamato 12f629. Questo pic ha 6 Gpio di cui 1 sola si può usare solo per l’ Input. Il programma per il pic è scritto in codice Assembly ovvero un linguaggio di programmazione molto simile al linguaggio macchina. Ho deciso di usare un pic per questioni di spazio, difatti il pcb è abbastanza piccolo: 35 x 40 mm.

Eprom Switcher

Prima di spiegare la realizzazione del pcb elencherò il materiale che ho utilizzato per questo progetto. (Base)

  1. Socket Eprom ( es di eprom simili: 27C64, 27C128, 27C256, 27C512, 27SF256, 27SF512, 87C257 e altri) per le eprom da utilizzare
  2. Un paio di connettori per pcb a 3 vie
  3. Pic: 12F629
  4. Un paio di resistenze Smd da 10K Ω 1206
  5. Jumper
  6. Un paio di pin maschi

Produzione dell’ Eprom Switcher

PcbWay
PcbWay

Come si vede non c’ è bisogno di molti componenti. Il pcb l’ ho realizzato presso pcbway. Ho creato i pcb con i contatti dorati per prevenire l’ ossidazione di tali. Ho avuto i pcb in tempi record e con 5 gadget. Inolte i pcb sono colorati con il colore blu. Mi sono trovato bene con questa ditta cinese, sono veramente professionali e molto gentili. Il pacco mi è stato recapitato nel periodo delle feste e il pacco ed i gadget erano in tema natalizio. I gadget in questione erano questi:

I miei pcb

Questo qui è lo schema del circuito fatto a pc:

Eprom-Switcher
Eprom Switcher

L’ Eprom Switcher appena arrivato

File Gerber: QUI!

Per il codice sorgente di Arduino/pic contattatemi via mail : [email protected] oppure tramite la chat di Facebook

Write a comment