Millefori ed CPLD EPM3064 su socket PLCC

Sezione dedicata alle logiche programmabili

Millefori ed CPLD EPM3064 su socket PLCC

Postby flz47655 » 02 May 2012, 14:51

Ciao a tutti,
Complici gli ultimi acquisti fatti su ebay:

PLCC44 to DIP44
http://www.ebay.it/itm/220946001360

EPM3064ALC44
http://www.ebay.it/itm/370551146026

Volevo costruire su millefori una sorta di scheda di sviluppo che mi permettesse di fare alcuni semplici progetti con le porte di I/O delle logiche programmabili senza rischiare di giocarmi una FPGA da 100€.

Il danno massimo (a meno di non bruciare il programmatore) dovrebbe essere limitato a 3€ nel caso di CPLD bruciata e si risolve sostituendo il chip nel socket senza buttare via tutta la scheda, circostanza molto utile per un "beginner".

Fatto sta che sono stato previdente ed ho ordinato 5 EPM3064 :)

Di interessante della serie Max3000A il range di tensioni dell'IO compatibile con 5.0, 3.3 e 2.5 volt.

Volevo fare qualche domanda che non ha trovato risposta nel datasheet http://www.altera.com/literature/lit-m3k.jsp:

1) Non si parla dei condensatori disaccoppiamento, basta un condensatore da 100nF di tipo ceramico a disco su ogni VCC/GND? Nelle FPGA vedo che si fa un uso generoso di condensatori, in genere ce ne sono a decine sotto il chip, qui potrebbero bastare quindi 4 condensatori?

2) Come quarzi dispongo in casa di pezzi da massimo 27, 24 e 20 Mhz anche se vorrei poter cambiare la frequenza in base al progetto mantenendo la solita scheda di sviluppo, è possibile usare dei pin header femmina per montare i quarzi e i relativi condensatori o c'è la possibilità che il segnali si degradi troppo? Come posso calcolare il valore dei condensatori in base alle frequenza?

3) Si parla di VCCINT e VCCIO ma dal pinout del package PLCC (pag.42 del datasheet) c'è solo un VCC su ogni lato del chip senza ulteriori specificazioni sulla tipologia, come faccio a distinguere tra i due?

4) Eventualmente utilizzando frequenze più moderate, es. 4 Mhz, è probabile secondo voi far funzionare su breadboard il tutto?

Ciao e grazie a tutti
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby deluca » 02 May 2012, 15:23

Per coprire tutto il range per il disaccoppiamento nelle fpga è necessario inserire dei condensatori con valori che coprono tutte le decadi.
Es. 1nF, 10nF e 100nF in tutte le alimentazioni facenti capo i blocchi di I/O e sulle alimentazioni INT.
Lavorando con Freq dell'ordine di qualche decina di Mhz non vi sono particolari accorgimenti..... importante che le saldature non siano fredde.
Il modulo oscillatore deve stare quanto più vicino alla fpga e se hai un certo numero di segnali preferenziali di clock utilizza quelli al posto
di switch o interuttori.

Chiaramente sarebbe cosa buona sequenziare anche le alimentazioni ..... ma solo sulle FPGA di una certa consistenza.

Ciao
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby flz47655 » 02 May 2012, 16:50

Grazie per la risposta, i consigli che mi hai dato mi saranno molto utili.

Ho controllato e per fortuna la CPLD non richiede una sequenza particolare per le alimentazioni.

Ho trovato inoltre una pagina sulla Power Supply Integrity http://www.altera.com/support/devices/power/integrity/pow-integrity.html che mi era sfuggita ma sembra interessante.

Per fortuna l'oscilloscopio è in consegna per domani e l'analisi del ripple di alimentazione potrebbe essere un ottimo primo compito :D per valutare l'effetto di diverse combinazioni di condensatori.

L'unica cosa che non ho capito è: "se hai un certo numero di segnali preferenziali di clock utilizza quelli al posto
di switch o interuttori"

In che senso? Al posto di un quarzo per il segnali di clock si mettono degli interruttori per fare manualmente il segnale di clock?
Ciao e grazie
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby deluca » 02 May 2012, 17:35

Molte fpga hanno più di un ingresso di clock.
Ad ogni pin di clock potresti collegare un segnale proveniente da quarzi diversi :
es:
clk0 = 25Mhz
clk1 = 33Mhz
clk2 = 48Mhz
etc

così, attraverso la configurazione dei pll avresti la possibilità di generare molte freq diciamo standard.

in fase di assegnazione dei pin puoi decidere da dove prelevare il clock, se da clk0 o da altri.

Ciao
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby flz47655 » 02 May 2012, 19:01

Ho risolto il mistero di VCCINT e VCCIO, il pinout "serio" non era nel datasheet ma in un altro pdf: http://www.altera.com/literature/dp/max3k/epm3064a.pdf

Ora ho capito, si in effetti dispongo di pin:
-INPUT/GCLK1 clock1
-INPUT/OE2/GCLK2 clock2, enable2
-INPUT/OE1 enable1
-INPUT/GCLRn clear
che possono essere usati come segnali globali e quindi potrei avere facilmente 4 clock che si propagano per tutta la CPLD

Ciao e grazie ancora
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby flz47655 » 02 May 2012, 19:36

Fatidica osservazione dell'ultimo momento: io ho dei cristalli che uso ad esempio con dei microcontrollori senza problemi, i micro però hanno due ingressi per collegare un cristallo dove semplicemente si collegano entrambi i piedini.
Ora con la CPLD mi ritrovo un unico ingresso per ogni segnale di clock.. :o credo proprio che mi servirà un oscillatore e non un semplice cristallo, magari lo prendo programmabile per tagliare la testa al toro e non giocarmi i pin globali ;)

UPDATE: Ho ordinato 4 cristalli oscillatori, gli ho trovati DIP da 100 Mhz, speriamo arrivino presto e non abbia preso "una sola" http://www.ebay.it/itm/400272412720
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby flz47655 » 09 May 2012, 20:17

Prima di passare il tutto su millefori ho preparato su breadboard un circuito di prova:
Image

Ho messo resistori da 10K collegati a VCC e a TDO, TMS, TDI, un resistore da 10K collegato a TCK e GND
Ho usato 5 condensatori da 100nF e un elettrolitico da 1uF.

Secondo voi potrà funzionare o rischio di bruciare la CPLD ed il programmatore (clone cinese)?
Cosa dite provo o lascio perdere e porto direttamente tutto su millefori?
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby flz47655 » 09 May 2012, 22:17

Nella foto naturalmente mancavano alcuni collegamenti (i cavetti jumper per vcc e gnd)
Mi è sorta una domanda: devo alimentare il circuito prima di collegare il programmatore USB Blaster o l'alimentazione viene presa da VCC del JTAG?
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby flz47655 » 09 May 2012, 22:56

Durante la programmazione il dispositivo va alimentato, fatto questo.. FUNZIONA!!!!
Incredibile, le CPLD vanno anche su breadboard nonostante le capacità parassita :D
Per il momento ho realizzato un semplice NOT, ora passo all'oscilloscopio per verificare se tutto va bene sulle alimentazioni

Update: Diciamo che c'è il ripple è a posto (meno di 1 mVrms)

Ciao
Last edited by flz47655 on 09 May 2012, 23:20, edited 1 time in total.
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby legacy » 09 May 2012, 23:06

Ma basta leggere, cribbiolina, c'e' scritto tra la varia doc di Altera che il cavetto usb-jtag non da l'alimentazione al circuto, non e' pensata per quello, quel segnale non e' Vcc, quel segnale serve al cavetto per capire se il tuo circuito e' alimentato a 5V o a 3.3V, e adattare di conseguenza il level shifting dei buffer interni

Quindi devi alimentare a parte la cpld, e, appena lo scatolotto usb-jtag sente a che tensione lavora la tua cpld, si adatta di conseguenza.

Se i collegamenti sono giusti non puoi bruciare nulla. Se la breadboard e la varia cavetteria e' sana riesci anche a programmare tutto al primo colpo, altrimenti ... succede che e' successo a me non va un tubo, e la colpa e' di un cavetto fetente che faceva male contatto. Classico, e si risolve in 5 minuti trovando il colpevole e vendicandosi poi con un bel paio di forbici.

Zac, nel cestino!

Si, ho fatto la stessa cosa proprio oggi perche' mi sono scocciato di chiedere al collega un portatile con su la porta parallela, c'e' una scheda fpga che ha a bordo la byteblaster (fatta con un 244 e un paio di resistenze), mentre io ho solo macchine con la usb e senza parallela.

Presa la fpga vecchiotta flex10K, che mi piace perche' ha sram config alla vecchia scuola, messa su zoccolo plcc84, saldata su una 1000fori di fortuna, wirewrappato il jtag sul 10pin connector, tirate le alimentazioni a 5V, le masse, messi condensatori qua e la, un bel oscillatore a 4 pin da 50Mhz sul clk3, e fine. Avevo un bitstream che fa blinkare un paio di led, giusto per vedere se tutto funziona, lo carico e tutto pedala come deve andare, anche se poi apro un progetto e li inizio a tirare imprecazioni varie per un altro fatto: a quanto pare serve tornare indietro nel tempo con il software Altera, server il QuartusII v5 (o boh, io avevo la v5 a portata di cd abbandonato in lab, che compila perfettamente, ci ho fatto il blinkled demo nel 2004, e mi scocciava perdere 1 giorno per chiedere ad altera di spulciare altro nei loro archivi) perche' la versione v11 appena scaricata dalla rete mi riconosce il chip ma non sa compiare per lui.

Perche' ? A quanto ho capito perche' la flex10k e' una Fpga del 2003, e nel 2012 e' definita morta e quindi non piu' supportata, tranne dai programmatori che sanno ancora riconoscere un chip ID. Succede, risolta anche questa, anche se ora ho 2 versioni di QuartusII installati.
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby flz47655 » 09 May 2012, 23:33

Il programmatore è "compatibile" quindi senza documentazione se non 2 pagine in cinese su come installare i driver.
Avevo fatto riferimento alla documentazione del prodotto originale ed in effetti non capivo all'inizio cos'era "Target power supply", poteva dire che forniva l'alimentazione al circuito bersaglio sotto programmazione :D, nell'incertezza avevo provato a vedere se il programmatore alimentava il mio circuito, il tester in effetti dava sui 2 volt (ora non ricordo di preciso) e ho continuato a fare alcune prove.
Alla fine dopo aver ricontrollato i collegamenti, verificato TCK con l'oscilloscopio per vedere se c'erano problemi sul clock, ho alimentato il circuito e tutto è funzionato al primo colpo senza problemi.
Ho usato una breadboard piccola per evitare maggiori problemi di capacità parassite e non ho usato nessun clock per il momento (una semplice porta NOT) e per questa semplice prova funziona.
Devo dire che quasi quasi documento il tutto in maniera più dettagliata dopo ulteriori test, perché è in pratica un modo facile e super economico per smanettare con le logiche programmabili, soprattutto perché con lo zoccolo PLCC se qualcosa si rompe si può cambiare ;)

Ciao e grazie
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby legacy » 10 May 2012, 02:04

Guarda che la questione e' molto piu' semplice: i cinesi per "compatibile" intendono che l'hanno proprio clonato, e non potevano fare diversamente perche' nella usb-jtag cable si tratta di 2 circuitelli in croce, una cpld programmata da altera che fa la jtag fsm, e un bufferino di level shifting.

Ergo, se non e' una stra ciofeca da 2 dollari in cui per risparmaire hanno collegato direttamente la cpld al connettorino (e l'ho visto vendere su ebay a cifre ridicole), tutto deve rispondere alla doc ufficiale, specialmente quel pin che serve al circuitino per capire a che tensione stia il target.

Cioe' quel level shifter e' abbastanza importante, abbastanza da giustificare una scopiazzatura fatta a regola d'arte.
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby flz47655 » 10 May 2012, 08:42

Incuriosito da come può essere il mio programmatore compatibile l'ho aperto e...

Image

Sono veramente due chip, un buffer (74HC244D) ed una MCU 8051 Enhanced (CY7C68013A-56PVXC), con qualche componente passivo ed un quarzo da 24.00 Mhz

Mi chiedo però come possano avermelo venduto a $13.68 spedizione inclusa se il prezzo ufficiale per 1000 unità dell'MCU è di 10$... (http://www.cypress.com/?mpn=CY7C68013A-56PVXC) i misteri della cina! Probabilmente è "compatibile" anche questa MCU :D
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby legacy » 10 May 2012, 10:47

bene bene, a te la jtag machine lo fa un micro 8051 che tratta anche il protocollo usb, a me lo fa una cpld programmata da Altera. Probabilmente Altera quelle cpld programmate le fa pagare molto ma molto ma molto di piu' di quello che costa quel micro '51, e ai cinesi conviene economicamente quella soluzione, tanto il software sul pc mica lo sa che ha a che fare con un micro piuttosto che con una cpld, lui e' felice se si vede il vendor & code id giusto (Altera usb blaster release xxxx) e se poi lo scatolino parla la stessa lingua parlata dal driver sulle varie trame usb.

Magari non centra nulla e si tratta di come e' fatta la usb-bluster I rispetto alla II. Io ho una II (originale) e dentro c'e' la cpld al posto del micro, Se invece e' una questione economica, cioe' costa meno il micro, allora qualcuno e' stato addirittura bravissimo e della cpld ne ha fatto il reversing.

In ogni caso il bufferino level shifter l'hanno messo: quindi sono stati bravi =D

(a volte li stimo)
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby legacy » 10 May 2012, 11:18

Certo che se in cina hanno comprato la divisione ibm/lenovo e sanno farsi i chip in casa, direi che un core 51, secondo me lo sanno copiare alla grande, a costi di produzione inferiori riespetto a quanto chiedono per i produttori, e imitando anche la label, anzi mi stupisce che non l'abbiano grattata a carta vetrata e pennarellone indelebile come fanno di solito.

Oppure c'e' una politica commerciale cinese, cypress china fa prezzi interni diversi rispetto a quanto chiede per l'esportazione, chi compra internamente in cina ha prezzi piu' bassi, molto molto piu' bassi del listino che presentano a te che stai fuori dalla cina, perche' chi compra da dentro deve produrre lo scatolino per l'esportazione.

Oppure ancora il micro e' davvero originale e viene da recuperi. In messico ad esempio si trova cio' che negli stati uniti viene venduto a 10 volte tanto. La differenza ? Sono scarti industriali, a volte hanno qualche difetto, o non hanno passato qualche test e "grossomodo" funzionano.

Un esempio e' il mio 68060, e' una cpu vintage del 1997, nel 2000 costava ancora parecchio, in messico la trovai alla meta' di quanto chiedeva motorola. Motivo ? beh .. sull'etichetta del chip c'era scritto 68LC060, LC significa che non ha la FPU ma solo la MMU, eppure chi me lo ha venduto diceva che la FPU c'era e funzionava pure. Possibile ? Motorola parla chiaro

68EC060 -> no MMU no FPU
68LC060 -> si MMU no FPU
68060 -> si MMU si FPU

Mi convinse e la comprai, e a casa ho scoperto che aveva ragione, la fpu c'era! Sbagliava ogni tanto qualche divisione in floating point, ed era questo il motivo per cui avevano scritto sul chip LC. In pratica motorola faceva il die cpu full, poi lo sottoponeva a test, se risultava marcio lo rigettava, se non passava i test sulla MMU scriveva EC, se non passava i test della FPU scriveva LC, bruciando poi i relativi fuse per escludere i circuiti non propriamente funzionanti.

Nel mio caso i fuse non erano stati bruciati correttamente e la FPU risultava ancora visibile sul bus interno alla CPU.
Come sia finita in messico una quantita' enorme di quei chip non lo so spiegare, fatto sta che ne aveva un magazzino intero, e se al posto mio ci fosse stato un cinese l'avrebbe sicuramente svuotato.
Last edited by legacy on 10 May 2012, 14:13, edited 1 time in total.
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby flz47655 » 10 May 2012, 11:19

Anche sulla De0-Nano ho il programmatore on-board ed è costituito sostanzialmente da una CPLD EPM240, in effetti il costo sarà molto simile all'8051, ad altera probabilmente minore..
Non mi riesco a spiegare però come un programmatore ufficiale standalone possa costare 100-200-300 euro.... quello di terasic compatibile costa 50 ed è già chiamato economico... l'oriente mi sa che ha capito tutto e non è ingordo come il resto del mondo. Con 10 euro fa e spedisce un buon programmatore senza tanti fronzoli, a chi lo usa magari occasionalmente sicuramente conviene anche se non sarà diciamo top come quello ufficiale (secondo me è anche meglio :D però).

PS: Il protocollo ho letto da qualche parte che è stato ricavato tramite reverse-engineering, sembra funzionare alla perfezione però :)

EDIT: Sicuramente avrà qualche difetto ma se per fare da programmatore va bene ed ha tutte le funzionalità intatte per quel compito non vedo perchè non riciclare la MCU, ci guadagna anche l'ambiente ;)
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby flz47655 » 10 May 2012, 22:59

Ho notato che scalda parecchio... la plastica diventa abbastanza bollente, è normale secondo voi?
Non ho capito se è meglio alimentare il circuito e poi collegare l'alimentatore al pc o il contrario, io al momento alimento prima il circuito.
Dopo la programmazione è cosa è meglio scollegare prima?
E' dannoso lasciare il programmatore collegato al circuito ma scollegato dal pc?

Ciao e grazie
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby legacy » 10 May 2012, 23:54

Parecchio quanto ? Per quantificare, se ci metti il dito sopra e non provi dolore, hai un micro non efficiente, ma e' accettabile.
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby legacy » 11 May 2012, 00:01

Ma un momento, chi dei due scalda ? Il micro o il buffer ? E parliamo di 5V o 3.3V sul circuito ?

Tu non hai esattamente su un level shifter hai su un buffer che lavora sia a 3.3V che 5V.
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30

Re: Millefori ed CPLD EPM3064 su socket PLCC

Postby flz47655 » 11 May 2012, 08:30

Il circuito sotto test è alimentato a 3.3v, scalda però il programmatore cinese, non sono riuscito a capire quale chip dei due perché l'avevo richiuso, se me lo rifà provo ad aprirlo e a fare la prova del dito (ci metto il dito e sento quale scalda)
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Next

Return to FPGA & CPLD

Who is online

Users browsing this forum: No registered users and 9 guests

cron