Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Arduino memoria esterna veloce

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteMassimoB, Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[1] Arduino memoria esterna veloce

Messaggioda Foto Utentewimatech » 22 apr 2022, 14:29

Buongiorno a tutti,
Sto sviluppando un progetto di un GFA con la possibilità di descrivere una matrice di punti e utilizzarli come campionatura della forma d'onda e proprio a fagiolo un amico mi ha chiesto di dargli una mano a sviluppare il suo che è un proiettore laser a galvanometri.
Per generare la forma d'onda col GFA creo una matrice di integer e in loop continuo vado ad utilizzare questi valori per settare lo stato dei vari output di una porta usando il comando PORTx=Valori[...] poi uso gli output per passare il valore ad un DAC parallelo e l'uscita del DAC agli opamp che offsettano e amplificano il segnale.
Sdoppiando questo sistema posso tranquillamente creare i 2 valori analogici da passare alla scheda di controllo dei galvanometri.
Il problema è che la quantità di punti da visualizzare è davvero notevole e molto superiore della memoria di Arduino pensavo quindi di utilizzare una memoria esterna (EEprom o SDcard).
Le caratteristiche fondamentali che devo tenere in considerazione sono la grande quantità di letture e la velocità di lettura.
Vi chiedo quindi di consigliarmi la strada giusta:
Se uso una SDcard rischio di rovinarla presto se continuo a leggere?
qual è la comunicazione più veloce per questo device? SPI? I2C?
Avatar utente
Foto Utentewimatech
15 3
New entry
New entry
 
Messaggi: 84
Iscritto il: 24 feb 2022, 9:34

0
voti

[2] Re: Arduino memoria esterna veloce

Messaggioda Foto Utentexyz » 22 apr 2022, 16:24

wimatech ha scritto:SPI? I2C?

SPI è più veloce del I2C. Alcuni micro-controllori ATmega possono gestire una SRAM esterna. Se il problema è la RAM valuta di usare un micro-controllore ARM con più memoria RAM.
Avatar utente
Foto Utentexyz
6.819 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1758
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[3] Re: Arduino memoria esterna veloce

Messaggioda Foto Utentewimatech » 22 apr 2022, 16:56

per fare un conto a spanne parliamo di circa 10000 valori a 12bit, consideriamo 16bit nel caso volessi mettere un DAC più accurato.
Ho fatto questa prova (non so se e quanto possa essere corretta ed indicativa), in un file di testo ho scritto 10000 volte il valore 65535 e l'ho salvato sul PC nelle sue proprietà mi dice che pesa 70KB.
Posso considerarlo un valore indicativo di dimensione che mi serve o ho fatto una mera stupidaggine?
Avatar utente
Foto Utentewimatech
15 3
New entry
New entry
 
Messaggi: 84
Iscritto il: 24 feb 2022, 9:34

0
voti

[4] Re: Arduino memoria esterna veloce

Messaggioda Foto Utentewimatech » 22 apr 2022, 17:00

Proprio oggi mi hanno consegnato un teensy 4.1 che monta un ARM M7 a 600MHz ha una SRAM da 1024 K e lo slot per la sd già on board
Avatar utente
Foto Utentewimatech
15 3
New entry
New entry
 
Messaggi: 84
Iscritto il: 24 feb 2022, 9:34

0
voti

[5] Re: Arduino memoria esterna veloce

Messaggioda Foto Utenteboiler » 22 apr 2022, 18:44

Perché vuoi far passare i dati dal microcontroller?
Quello che tu vuoi fare è
microcontroller --> RAM esterna --> microcontroller --> DAC

Se usi una RAM esterna con interfaccia parallela, puoi usare questa versione semplificata:
microcontroller --> RAM esterna --> DAC

Durante la lettura della RAM, il microcontroller si limita ad incrementarne l'indirizzo di lettura, i pin collegati alla porta dati della RAM devono essere tri-state.
Quando invece carichi i dati nella RAM, disattivi il DAC e configuri i pin del microcontroller come output.

Boiler
Avatar utente
Foto Utenteboiler
21,6k 5 8 13
G.Master EY
G.Master EY
 
Messaggi: 4230
Iscritto il: 9 nov 2011, 12:27

0
voti

[6] Re: Arduino memoria esterna veloce

Messaggioda Foto Utentelelerelele » 22 apr 2022, 19:16

Sei sicuro che la velocità di elborazione sia sufficiente per passare tutti quei dati all'adc?

Gia per gestire sorgenti audio, si usa DMA, perché l'elaborazione software non è sufficiente, secondo me dovresti preoccuparti prima di questo, poi della ram veloce.

saluti.
Avatar utente
Foto Utentelelerelele
3.402 3 7 9
Master
Master
 
Messaggi: 4061
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[7] Re: Arduino memoria esterna veloce

Messaggioda Foto Utentewimatech » 24 apr 2022, 20:31

L'idea della ram esterna è sorta dal fatto che non riesco a memorizzare nel uC tutti i punti che mi servono quindi pensavo di "appoggiarli" in ram.
perché sostanzialmente la proiezione è composta da un loop continuo che spara sulla porta un valore numerico così:

Codice: Seleziona tutto
int SINE[100]={127, 134, 142, 150, 158, 166, 173, 181, 188, 195, 201, 207, 213, 219, 224, 229, 234, 238, 241, 245, 247, 250, 251, 252, 253, 254, 253, 252, 251, 250, 247, 245, 241, 238, 234, 229, 224, 219, 213, 207, 201, 195, 188, 181, 173, 166, 158, 150, 142, 134, 127, 119, 111, 103, 95, 87, 80, 72, 65, 58, 52, 46, 40, 34, 29, 24, 19, 15, 12, 8, 6, 3, 2, 1, 0, 0, 0, 1, 2, 3, 6, 8, 12, 15, 19, 24, 29, 34, 40, 46, 52, 58, 65, 72, 80, 87, 95, 103, 111, 119};

void setup()
{
  DDRA = B11111111;// Setta tutte le porte D come uscita per il DAC
}

int p=0;

void loop()
{
for(int i=0;i<=100;i++){
    PORTA=SINE[i];
    delayMicroseconds(p);
  }
}


Ora andrò a cercare in rete cos'è il DMA e se trovo indicazioni per gestire la Ram parallela tri-state e farmi un po di cultura perché sono 2 cose di cui non ne so nulla
Avatar utente
Foto Utentewimatech
15 3
New entry
New entry
 
Messaggi: 84
Iscritto il: 24 feb 2022, 9:34

0
voti

[8] Re: Arduino memoria esterna veloce

Messaggioda Foto UtentedrGremi » 24 apr 2022, 21:21

wimatech ha scritto:L'idea della ram esterna è sorta dal fatto che non riesco a memorizzare nel uC tutti i punti che mi servono quindi pensavo di "appoggiarli" in ram.

Ma non puoi calcolarli nel mentre?
Avatar utente
Foto UtentedrGremi
2.284 3 5 9
Master EY
Master EY
 
Messaggi: 1457
Iscritto il: 20 nov 2019, 19:49

0
voti

[9] Re: Arduino memoria esterna veloce

Messaggioda Foto Utentewimatech » 24 apr 2022, 21:26

No derivano da un disegno cad
Avatar utente
Foto Utentewimatech
15 3
New entry
New entry
 
Messaggi: 84
Iscritto il: 24 feb 2022, 9:34

0
voti

[10] Re: Arduino memoria esterna veloce

Messaggioda Foto UtenteEtemenanki » 24 apr 2022, 23:29

Come velocita' e durata la scelta migliore sarebbe una FRAM (o FeRAM, e' lo stesso), sono piu veloci, consumano meno, sono non-volatili, ed hanno cicli garantiti di scrittura di almeno 10^14, contro i 10000 delle flash ... non so pero' se siano disponibili delle schedine gia pronte per Arduino, a parte quelle SPI di Adafruit.
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
Avatar utente
Foto UtenteEtemenanki
4.307 3 5 9
Master
Master
 
Messaggi: 2958
Iscritto il: 2 apr 2021, 23:42
Località: Dalle parti di un grande lago ... :)

Prossimo

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti