Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Interfacciare Pic16f877a a RAM 6264

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[11] Re: Interfacciare Pic16f877a a RAM 6264

Messaggioda Foto Utentestex90 » 16 dic 2014, 15:22

Purtroppo non ho un oscilloscopio. Però potremmo considerare la velocità massima a cui può lavorare la ram in base al datasheet (100ns per la mia HY6264-10) e calcolare se ci sto dentro con un 18f a 40 MHz.
Avatar utente
Foto Utentestex90
150 4
New entry
New entry
 
Messaggi: 88
Iscritto il: 5 lug 2009, 13:27

1
voti

[12] Re: Interfacciare Pic16f877a a RAM 6264

Messaggioda Foto UtenteRobert8 » 16 dic 2014, 18:13

Il PIC 18 a 40 MHz riesce ad eseguire una singola istruzione assembler in 100 ns.
Se vuoi calcolare la velocità massima di scrittura sulla RAM compatibile con la lettura dal PIC dovrai contare quante istruzioni assembler ti servono sul PIC per eseguire il test e quante per, eventualmente, leggere il dato e fare tutto ciò che ti serve, quindi, moltiplicare tale valore per 100 ns.
Supponiamo che tu abbia 20 istruzioni assembler per 100 ns ottieni 2 us: questo è il tempo minimo di scrittura che dovrai impostare sul 6808.

Comunque per sincronizzare il tutto ti servirà o l'oscilloscopio o un analizzatore digitale.
Ce ne sono anche da 100 euro tipo quello descritto in questo articolo
Avatar utente
Foto UtenteRobert8
3.449 2 8 13
Master EY
Master EY
 
Messaggi: 370
Iscritto il: 15 giu 2011, 16:30

1
voti

[13] Re: Interfacciare Pic16f877a a RAM 6264

Messaggioda Foto Utentestex90 » 16 dic 2014, 19:50

Bene. Studiando un po il datasheet del processore (6802) e non (6808) come avevo scritto in precedenza, (una svista) mi sono accorto che coma diceva Foto Utentec1b8 un ciclo di utilizzo bus dati impiega da un minimo di 1us a un massimo di 10 us. Quindi i tempi si fanno un po' più larghi. Ora devo capire se potrò usare il picbasic o dovrò cominciare a studiarmi l' assembler #-o #-o

Quando faccio la compilazione del programma che scrivo in PIC basic mi vengono generati diversi file. Un .asm un .hex un .lst e un .mac. Contando le righe nel file .asm riesco a capire quante operazioni assembler occupa il mio programma?
Avatar utente
Foto Utentestex90
150 4
New entry
New entry
 
Messaggi: 88
Iscritto il: 5 lug 2009, 13:27

2
voti

[14] Re: Interfacciare Pic16f877a a RAM 6264

Messaggioda Foto Utenteposta10100 » 16 dic 2014, 20:02

stex90 ha scritto:Contando le righe nel file .asm riesco a capire quante operazioni assembler occupa il mio programma?

Non basta contare le righe, ci sono istruzioni che vengono eseguite in un solo ciclo macchina (4 cicli di clock) e altre che ne richiedono 2 (non ricordo se ce ne sono di più lunghe).
Se guardi sul datasheet del PIC trovi per ciascuna istruzione la spiegazione di cosa fa e quanti cicli richiede.
Con tutte queste informazioni puoi calcolare il tempo di esecuzione.

O_/
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.420 4 9 13
Master EY
Master EY
 
Messaggi: 4786
Iscritto il: 5 nov 2006, 0:09

2
voti

[15] Re: Interfacciare Pic16f877a a RAM 6264

Messaggioda Foto UtenteAlbertoBianchi » 16 dic 2014, 20:24

Ciao, come ti suggeriva Robert8, lo strumento più idoneo per fare un acquisizione di questo tipo e senza dubbio l'analizzatore di stati logici; anch'io te lo consiglio vivamente. Girando intorno al PIC rischi di perdere ancora un sacco di tempo senza arrivare a nulla di concreto. E' un piccolo investimento che fa risparmiare un sacco di grane e di tempo, che potrai sfruttare in un sacco di altre occasioni. Io ho uno Zeroplus LAP-C 16032 che va benissimo, e quando l'acquistai, mi regalarono anche un sacco di moduli per l'analisi dei protocolli di comunicazione più diffusi.
A.
Avatar utente
Foto UtenteAlbertoBianchi
1.999 3 5
Master
Master
 
Messaggi: 836
Iscritto il: 4 dic 2014, 18:30
Località: Lastra a Signa (FI)

1
voti

[16] Re: Interfacciare Pic16f877a a RAM 6264

Messaggioda Foto UtenteRobert8 » 16 dic 2014, 20:39

stex90 ha scritto:Quindi i tempi si fanno un po' più larghi. Ora devo capire se potrò usare il picbasic o dovrò cominciare a studiarmi l' assembler

Studiare l'assembler non fa certo male ma, visto che i tempi non sono tanto stretti, con l'analizzatore logico te la cavi con poco:
1 - visualizzi i tempi di scrittura sulla RAM
2 - visualizzi i tempi di lettura del PIC
3 - adegui i tempi del PIC col PICbasic e ricicli le fasi 2 e 3 fino alla perfetta sincronizzazione.
Avatar utente
Foto UtenteRobert8
3.449 2 8 13
Master EY
Master EY
 
Messaggi: 370
Iscritto il: 15 giu 2011, 16:30

1
voti

[17] Re: Interfacciare Pic16f877a a RAM 6264

Messaggioda Foto UtenteWALTERmwp » 16 dic 2014, 20:58

stex90 ha scritto:o dovrò cominciare a studiarmi l' assembler
... in tal caso il controllo dell'output del listato assembler è un buon esercizio.
Ma se vuoi provare anche questa strada considera che, oltre alla corrispondenza dei tempi delle istruzioni, devi "leggere" il flusso del programma per determinare i periodi quindi, se ci sono, i loop(s), i salti e le call(s).

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
22,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 6444
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[18] Re: Interfacciare Pic16f877a a RAM 6264

Messaggioda Foto Utentestex90 » 16 dic 2014, 23:13

molte volte ho sentito l' esigenza di uno strumento che mi aiutasse nell' analisi dei segnali logici ma non mi sono mai interessato più di tanto, e sopratutto non immaginavo fosse alla portata di tutte le tasche. Penso proprio che seguirò i vostri consigli e per natale mi regalerò un analizzatore logico!

Nell' attesa di averlo sottomano comincerò a fare qualche prova anche con un PIC serie 18.

Robert8 ha scritto:Studiare l'assembler non fa certo male ma, visto che i tempi non sono tanto stretti, con l'analizzatore logico te la cavi con poco:
1 - visualizzi i tempi di scrittura sulla RAM
2 - visualizzi i tempi di lettura del PIC
3 - adegui i tempi del PIC col PICbasic e ricicli le fasi 2 e 3 fino alla perfetta sincronizzazione.


Foto UtenteRobert8 parli di sincronizzazione tra il PIC e la ram. Ma utilizzando un PIC adeguatamente veloce, in teoria, se vado a leggere "nell' istante" in cui il write va basso, dovrei trovarmi l' indirizzo e i dati corretti senza dover aggiungere pause, e tanto meno sincronizzare le letture del PIC con le scritture della ram. Anche perché molto probabilmente non sono continue e precise nel tempo. E' corretto il mio punto di vista?

Vi ringrazio per le risposte. E continuerò a tenere aggiornata la discussione con gli sviluppi :ok:
Avatar utente
Foto Utentestex90
150 4
New entry
New entry
 
Messaggi: 88
Iscritto il: 5 lug 2009, 13:27

2
voti

[19] Re: Interfacciare Pic16f877a a RAM 6264

Messaggioda Foto Utenteposta10100 » 16 dic 2014, 23:25

stex90 ha scritto:se vado a leggere "nell' istante" in cui il write va basso, dovrei trovarmi l' indirizzo e i dati corretti senza dover aggiungere pause, e tanto meno sincronizzare le letture del PIC con le scritture della ram.

Quello che dovresti fare è far generare un "interrupt on change" quando il pin di write cambia stato, nella routine di interrupt dovresti:
a - verificare che il nuovo stato sia basso (l'interrupt viene attivato anche per la transizione basso alto)
b- leggere l'indirizzo e il dato scritto
c- se l'indirizzo è tra quelli di interesse, salvare il dato da qualche parte


Se riesci a completare i passi a. b. entro il tempo in cui il pin write sta basso ed il passo c. mentre il pin è alto allora non dovresti avere problemi. Con un clock a 48MHz e con un software scritto bene ce la dovresti fare.

O_/
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.420 4 9 13
Master EY
Master EY
 
Messaggi: 4786
Iscritto il: 5 nov 2006, 0:09

1
voti

[20] Re: Interfacciare Pic16f877a a RAM 6264

Messaggioda Foto UtenteRobert8 » 17 dic 2014, 5:17

stex90 ha scritto:Ma utilizzando un PIC adeguatamente veloce, in teoria, se vado a leggere "nell' istante" in cui il write va basso, dovrei trovarmi l' indirizzo e i dati corretti senza dover aggiungere pause

Non avendo la pallida idea sui valori di tWC, tPWE, etc, direi: in "teoria" non proprio e "nell'istante" nemmeno!
Perché l'istante del PIC potrebbe arrivare troppo tardi rispetto all'istante del WE:
ey1.jpg

Forse in pratica ti può andare bene: prova!

Non possedendo un analizzatore cercherei, prima di leggere indirizzo e dato, di valutare il tPWE con gli interrupt come suggerito da Foto Utenteposta10100 e col minor numero possibile di istruzioni.
Ma anche così c'è il rischio di sotto campionare il WE valutandolo il doppio, il triplo o più, nel caso che il tPWE sia più breve del tempo di esecuzione di un interrupt.

Ma devi proprio leggere durante la scrittura :?:
Avatar utente
Foto UtenteRobert8
3.449 2 8 13
Master EY
Master EY
 
Messaggi: 370
Iscritto il: 15 giu 2011, 16:30

PrecedenteProssimo

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite