Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Scambio dati fra microcontrollori ad alta velocità (STM32)

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[1] Scambio dati fra microcontrollori ad alta velocità (STM32)

Messaggioda Foto UtenteLucast85 » 12 mar 2021, 12:26

Ciao a tutti,
dovrei scambiare dei dati fra due microcontrollori (un STM32L4 ed un STM32MP153) e mi servirebbe un aiuto nella scelta dell'interfaccia più adatta.
Per non avere limiti in futuro avevo pensato di scegliere una Quad-SPI ma al momento della selezione dei parametri della periferica, in CUBE-MX, vedo che esiste un campo "Memory Type" dove posso scegliere esclusivamente fra 4 tipi di memorie differenti (Micron , Macronix, ecc).
Da ulteriori ricerce sul web semrerebbe che la Quad-SPI si utilizzata esclusivamente come interfaccia microcontrollori-memorie.

Secondo voi, posso utilizzare una Quad-SPI?
Quali interfacce che consigliereste per lo scambio di dati fra due uC?

Grazie O_/
Avatar utente
Foto UtenteLucast85
120 2 8
Frequentatore
Frequentatore
 
Messaggi: 178
Iscritto il: 13 nov 2009, 16:34
Località: MC

2
voti

[2] Re: Scambio dati fra microcontrollori ad alta velocità (STM3

Messaggioda Foto Utentedimaios » 12 mar 2021, 12:59

Dipende da molti fattori.

1. Che rate di scambio dati devi supportare?
2. E' bidirezionale?
3. Usi l'M4 interno all'STM32MP153 oppure lo scambio dati è direttamente con il Cortex A7?

Sicuro di dover utilizzare proprio un L4?
Non basta l'M4 interno?
Ingegneria : alternativa intelligente alla droga.
Avatar utente
Foto Utentedimaios
29,7k 7 10 12
G.Master EY
G.Master EY
 
Messaggi: 3319
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes

0
voti

[3] Re: Scambio dati fra microcontrollori ad alta velocità (STM3

Messaggioda Foto Utenteharpefalcata » 12 mar 2021, 16:06

Secondo me, la DMA è la piu indicata
Avatar utente
Foto Utenteharpefalcata
306 1 3 6
Stabilizzato
Stabilizzato
 
Messaggi: 383
Iscritto il: 28 lug 2015, 21:03

1
voti

[4] Re: Scambio dati fra microcontrollori ad alta velocità (STM3

Messaggioda Foto Utentedimaios » 12 mar 2021, 16:13

harpefalcata ha scritto:Secondo me, la DMA è la piu indicata

Il DMA è correlato alle periferiche I/O con le quali vuoi scambiare dati.
Cosa intendi? qual è la periferica, una shared memory?
Ingegneria : alternativa intelligente alla droga.
Avatar utente
Foto Utentedimaios
29,7k 7 10 12
G.Master EY
G.Master EY
 
Messaggi: 3319
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes

1
voti

[5] Re: Scambio dati fra microcontrollori ad alta velocità (STM3

Messaggioda Foto UtenteLucast85 » 12 mar 2021, 16:28

Secondo me, la DMA è la piu indicata
Intendi una tecnica come questa?

dimaios ha scritto:1. Che rate di scambio dati devi supportare?
2. E' bidirezionale?
3. Usi l'M4 interno all'STM32MP153 oppure lo scambio dati è direttamente con il Cortex A7?

Sicuro di dover utilizzare proprio un L4?
Non basta l'M4 interno?
1. I pacchetti dati sono circa 3kB ogni 20 ms
2. SI, bidirezionale
3. Utilizziamo l'M4, l'A7 farà altro.
4. Potenzialmente si ma complicherebbe tutta la certificazione del FW per cui preferiamo tenere tutto il FW da certificare in un MCU ad hoc (L4) che poi possiamo riutilizzare nei i vari progetti futuri, dove non è detto che si utilizzerà anche un STM32MP1.
Avatar utente
Foto UtenteLucast85
120 2 8
Frequentatore
Frequentatore
 
Messaggi: 178
Iscritto il: 13 nov 2009, 16:34
Località: MC

3
voti

[6] Re: Scambio dati fra microcontrollori ad alta velocità (STM3

Messaggioda Foto Utentedimaios » 12 mar 2021, 16:45

Dunque, 3kB in 20 ms sono circa 150 kB al secondo quindi con 1 bit start ed uno stop circa 1.5 Mb/s.
Con questi baud rate una UART a 3 Mb/s è più che sufficiente utilizzando anche il protocollo MODBUS RTU che trovi implementato gratuitamente.
Se non hai bisogno di ottimizzazioni particolari funziona benissimo e lo realizzi immediatamente.
Inoltre lo puoi riciclare ad ogni progetto rimappando adeguatamente le zone di memoria.
La UART la usi col DMA così non carichi l'MCU.
Lato MPU per la gestione della seriale hai quello che vuoi sotto ogni sistema operativo.
Ingegneria : alternativa intelligente alla droga.
Avatar utente
Foto Utentedimaios
29,7k 7 10 12
G.Master EY
G.Master EY
 
Messaggi: 3319
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes

2
voti

[7] Re: Scambio dati fra microcontrollori ad alta velocità (STM3

Messaggioda Foto Utentedimaios » 12 mar 2021, 16:50

P.S. Anche con i GPIO puoi fare lo scambio dati ma dipende dal pinout dell'MCU. Se hai pochi pin a disposizione è un problema. Ho proposto la soluzione seriale perché è semplice ed economica dal punto di vista dei pin e della parte software ma non escludo anche altre possibilità. Bisognerebbe dare un'occhiata anche al part-number dell' STM32L
Ingegneria : alternativa intelligente alla droga.
Avatar utente
Foto Utentedimaios
29,7k 7 10 12
G.Master EY
G.Master EY
 
Messaggi: 3319
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes

0
voti

[8] Re: Scambio dati fra microcontrollori ad alta velocità (STM3

Messaggioda Foto UtenteLucast85 » 12 mar 2021, 18:18

Grazie per i consigli Foto Utentedimaios.
Per quanto riguarda il rate dei dati ti ho fornito un numero di massima per il dimensionamento. Tuttavia, come accade spesso, questo dato immagino tenda a salire come un po' tutte le specifiche di un progetto :lol: . Da progettista HW sono abituato a sovradimensionare un po' tutto ed anche per la comunicazione pensavo di tenermi largo con la QSPI.
Mi aspettavo che mi avresti proposto come alternativa la SPI ma hai preferito consigliarmi la UART. Posso chiederti come mai? In particolare:
  • Conosci la QSPI? E' solo utilizzata per le memorie o è possibile anche la comunicazione fra due microcontrollori?
  • Come mai non mi hai consigliato la SPI? Immagino che il throughput sia molto maggiore della UART ed il numero di pin occupati sono solo due in più. Forse è difficilmente gestibile a livello di protocollo FW?
Avatar utente
Foto UtenteLucast85
120 2 8
Frequentatore
Frequentatore
 
Messaggi: 178
Iscritto il: 13 nov 2009, 16:34
Località: MC

2
voti

[9] Re: Scambio dati fra microcontrollori ad alta velocità (STM3

Messaggioda Foto Utentedimaios » 12 mar 2021, 18:36

Ti ho consigliato la UART perché la gestione dell'SPI è più complessa lato CPU.
Come fai a gestire l'SPI dall'altra parte se non con un driver?
Devi scendere a basso livello. Se necessario non è un problema ma visto che i driver delle UART sono già pronti e funzionanti non vedo perché complicarsi la vita.
Il data rate non è così elevato da pregiudicare il funzionamento con una UART ; tutto qui.
Quando progetto penso anche a chi scrive il software per una questione di economia globale.

P.S. I driver per SPI esistono nelle distribuzioni anche per CPU ma ci sono dei vincoli diversi. Con l'UART è più semplice.
Inoltre se non hai problemi di sincronismo l'UART è il canale giusto. Attenzione allo scheduler del sistema operativo e ai vincoli real-time se li dovessi avere.
Ingegneria : alternativa intelligente alla droga.
Avatar utente
Foto Utentedimaios
29,7k 7 10 12
G.Master EY
G.Master EY
 
Messaggi: 3319
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes


Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti