Occhio, che seguendo questa china, finisci come me ...
Ricordo che, diversi secoli fa' (:P), avevo realizzato un programmatore "piu o meno universale" ... ero partito da quello che chiamavano "willem" (o un nome simile, che a sua volta era l'adattamento di un progetto ancora piu vecchio), ed a forza di "questo lo cambio perche' cosi e' piu efficente" , "questo lo modifico perche' funziona male" , "questo lo mettiamo perche' potrebbe essere utile" , "questo lo aggiungo perche' potrebbe servirmi" , "quest'altro ce lo attacco perche' non si sa mai", "questo lo aggiungiamo perche' e' rimasto un'angolo di millefori vuoto" , e cosi via, era diventato una cosa mostruosa ... dal blocco base con i buffer ad alta velocita' per la parallela e lo switching per le tensioni VPROG maggiori di 12V, si era sviluppato sopra un "doppio eurocard" millefori, con una decina di zoccoli per le varie famiglie teoricamente programmabili, piu 4 diversi ZIF (rigorosamente di recupero, dati i prezzi degli ZIF dell'epoca :P), piu uno slot montato sotto per le smartcard, circondati da una dozzina di banchi di dipswitch da 8, piu qualche header da 3, 6 e 10 posizioni di quelli con i jumper ... alla fine, avevo un "coso" assurdo in grado teoricamente di programmare quasi ogni chip programmabile, con allegato un quaderno di scuola con tutte le varie combinazioni possibili dei dip e dei jumper per i vari dispositivi ...
E, come al solito, lo usavo al massimo per una decina di chip diversi, roba che bastava un decimo del programmatore ... e' una specie di droga, quando inizi a ragionare con il "ci aggiungiamo anche questo perche' potrebbe servire", cadi in un'abisso senza fondo da cui e' impossibile salvarsi ...
Come immaginavo, le cose si complicherebbero parecchio. Alla fine, se uno ha necessità di un programmatore universale, in giro si trova il TL866CS a ~40€, che gode di un'ottima reputazione (e tra l'altro è facilmente hackabile alla versione A, aggiungendo supporto per i chip programmabili tramite ICSP).
Le mie esigenze sono molto più ristrette: devo programmare ROM solo per il retrogaming su piattaforme dove 64 KB sono già un'enormità, tanto che si posso fare delle multirom. Ho identificato questo preciso modello perché è cancallabile elettricamente e costa un'inezia (~0.50€). Se funziona bene come mi attendo, all'atto pratico non dovrò programmare altro, per cui eviterei volentieri l'acquisto di un programmatore generico.
Ieri ho iniziato la costruzione e la scrittura del software, vediamo :).
docsavage:
Ma tu te ne sei salvato?
O adesso che scrive qui è l'intelligenza artificiale aggiuntiva del tuo programmatore?
Accidenti, se n'e' accorto ...
(Nota per il mio programmatore: aggiungere piu funzionalita' random per l'output creativo ed un modulo extra di personalita' simulata, la presente versione ancora non supera il test di Turing nel 100% dei casi)
Sukko: se vuoi riservarti future possibilita', realizzalo modulare ... esempio, la logica di connessione, i buffer e la parte switching su una schedina con degli header "tipo arduino", in cui infilare schede aggiuntive che contengano gli zoccoli ed i relativi cablaggi ... cosi puoi usare la base per un po tutto, e costruirti le schede aggiuntive solo se e quando ti servono ...
Sukko: se vuoi riservarti future possibilita', realizzalo modulare ... esempio, la logica di connessione, i buffer e la parte switching su una schedina con degli header "tipo arduino", in cui infilare schede aggiuntive che contengano gli zoccoli ed i relativi cablaggi ... cosi puoi usare la base per un po tutto, e costruirti le schede aggiuntive solo se e quando ti servono ...
se invece vuoi la tranquillità comprali gia programmati
Paghi qualcuno, ma
1 risparmi denaro
2 risparmi fegato
3 non hai la soddisfazione di Averlo fatto da solo
Ok, ok
Mi vergogno da solo di quello che ho scritto...
Ennesima domanda: visto che non avevo un ULN a portata di mano, per ora aziono i MOSFET tramite un PN2222A con un resistore da 1k sulla base. Sembra funzionare, ma che ne dite?
Devo dire che lettura, scrittura e cancellazione funzionano alla grande! Anche il software che ho scritto tra PC e Arduino è già molto stabile e contiene una serie di finezze quali controllo del checksum e comunicazione in base64 che lo rendono piuttosto solido.
Adesso resta da tirare fuori uno shied... Mi date un'ultima dritta sulla questione dei transistor? Basta R 1k?
Il 2222 e' un transistor abbastanza veloce (non ha un grosso guadagno, ma "viaggia" senza problemi fino a 250MHz, non dovrebbe darti problemi con le commutazioni ... solo se ti servisse piu corrente, andrebbe sostituito, non tanto per la sua corrente che arriva massimo a 600mA, ma per lo scarso guadagno, per il quale dovresti dargli piu corrente in base dal pin ... con 1K pilotato dalla logica a 5v, fino al centinaio di mA dovrebbe pilotarli, al massimo dimezza la resistenza se serve un po piu corrente ... e se metti una resistenza da 100K fra base e massa, male non gli fa ...
Deve solo accendere il MOSFET, nulla di più. Sperimentalmente funziona. Ecco, quella R 100k di cui parli è proprio fondamentale? È un pull-down? Perché al momento gli ho messo 10k di pull-up...
10K di pull-up sulla base del transistor ? ... se la connessione della logica si interrompe, il transistor si accende fisso ... i 100K (o valori simili) sulle basi degli NPN, verso massa, servono ad impedire che il transistor si accenda nel caso la connessione con la logica venisse a mancare ... non sono indispensabili, ma io li metto sempre comunque, un'incidente puo sempre succedere ... stiamo parlando di configurazione open-collector, vero ?
Aspetta, sto andando a memoria e potrei confondermi, stasera verifico. Tieni comunque conto che quel che interessa a me è che sia spento il MOSFET a valle, quando manca la logica. Per cui c'è una doppia inversione, visto che sia il transistor che il MOSFET sono accesi quando il loro ingresso è basso: