Vai al contenuto
PLC Forum


RAM esterna+PIC


spugna85

Messaggi consigliati

Salve! Abbiamo un progettino da fare utilizzando un PIC18f452: dobbiamo interfacciare una RAM esterna parallela e verificarne il corretto funzionamento.

Vorremmo qualche consiglio considerando che non conosciamo ancora il tipo di RAM che ci assegneranno e non abbiamo molta esperienza unsure.gif

E' secondo voi possibile iniziare la scrittura del codice senza conoscere la RAM o ci conviene aspettare?

Se avete qualche link che potrebbe esserci utile ve ne saremmo grati.

Link al commento
Condividi su altri siti


Dipende dal parallelismo della RAM (8, 16, 32) e dalla sua grandezza.

Comunque parametrizzando i limiti di indirizzo e la larghezza di parola, se avete chiara la configurazione Hw, è possibile scrivere il softeare. Tra l'altro il test di una RAM è una cosa estremamente semplice. Si alternano, in scrittura, due valori: 0xAA e 0x55 che contengono 0101... e sono duali. SI scirve tutta la memoria, alternanandi i due valori; la si rilegge verificandone la corrispondenza. Si ripete scambiando l'ordine, cioè se si la prima volta si scrive 0xAA e 0x55, al secondo ciclo si scrive 0x55 e 0xAA.

Link al commento
Condividi su altri siti

Grazie dell'attenzione, vorremmo solo un chiarimento sulla verifica della corrispondenza: se noi dobbiamo leggere la nostra ram esterna piena, non la possiamo vedere completa nella ram interna del pic, quindi dobbiamo valutare in tempo reale 0xAA e 0x55 che si alternano in un registro specifico del pic dopo la singola lettura? se si quale? scusi se la domanda le risulta banale ma siamo alle prime armi.

Link al commento
Condividi su altri siti

Forse dovreste studiare come funziona un microprocessore-microcontrollore generico e come lavora il PIC in particolare. Tutte le operazioni si svolgono tramite i registri accomulatori. Nel PIC ne esiste uno, denominato W. Tutte le operazioni, se non sono sul bit, si svolgono su questo registro. Nel casospecifico potrebbe essere:

--------------------

MOVLW 0x55

XORWF f dove f è la locazione di memoria in cui si è caricato il dato della RAM.

Come caricare la RAM? dipende da come avete realizzato l'HW. Se ustate solo le porte del PIC per i leggere e scrivere i dati e per indirizzare la memoria si dovrà prima scrivere l'indirizzo sulle porte che sono state dedicate allo scopo e poi leggere la porta dedicata ai dati.

Link al commento
Condividi su altri siti

Il progettino è cambiato. Dobbiamo semplicemente creare un'interfaccia per la RAM e controllare che un dato da noi specificato possa essere scritto e letto correttamente in una determinata locazione di memoria.

Abbiamo una Ram 32k x 8bit, quindi avremmo 23 pin del pic da connettere(15 indirizzo - 8 dati). Per evitare questa eccessiva occupazione dei pin abbiamo pensato di utilizzare 2 shift register da 8bit per l'indirizzamento, mentre per i dati manteniamo il parallelismo utilizzando un port (D). E' la soluzione ideale?

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...