Newsgroup: it.hobby.elettronica.digitale
Titolo: SPI per ST6

Salve a tutti, sono alle prese con i microcontrollori della serie ST626X e
vorrei sapere dove posso recuperare informazioni su come fare colloquiare
2 st6 attraverso la periferica SPI. Vorrei trasferire 1 o più byte tra di
loro evitando l'uso dell'interrupt. Il sit ST già fatto, ma niente! Mi
potete aiutare?
Grazie.

 loro evitando l'uso dell'interrupt. Il sit ST già fatto, ma niente! Mi
Impossibile, sul sito st mi risulta esserci un AN proprio a riguardo...
Guarda bene, mettendo nei criteri di ricerca AN SPI ST6
bye, Rik.
--
--------------------------------
mailto:
riccar...@libero.it
http://www.muha.it
--------------------------------

 wrote in message
news:3BB0DD94...@libero.it...

Ho trovato soltanto l'AN914 che tratta di SPI come UART, non di colloquio
tra due ST6 con SPI, ed in più si impiega l'interrupt.
Serve conoscere cosa succede istante per istante su MASTER e SLAVE
oppure avere sotto mano qualche esempio, anche un diagramma.
Saluti.
-- 
Posted from  [146.133.1.30] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 via Mailgate.ORG Server - 
http://www.Mailgate.ORG
--



--

 wrote in message
news:3BBF8E7E...@libero.it...

Ho provato le due routine e funzionano, solo che per il sincronismo viene 
utilizzato l'interrupt (che io volevo evitare).
Dalle numerosissime prove che ho fatto ho capito che se si vogliono impiegare 
solo due fili per la trasmissione, l'interrupt è inevitabile.
Forse il solo modo per evitare l’uso dell’interrupt è quello di utilizzare un 
terzo filo per il sincronismo (link: PC2 di master con PC3 di slave) e, 
conseguentemente, adeguare il software.
Nel frattempo, provando provando, penso di avere fatto una banale scoperta:
mediante l’utilizzo della funzione SPI è possibile fare eseguire una routine di
interrupt (#2 associato alla porta C e alla periferica SPI) allorquando sul pin
PC4 si presentano un numero di impulsi pari a quelli programmati sul 
registro spdv (da 1 a 15).
Se lo ritieni opportuno posso inviarti (tempo permettendo per rendere
presentabili
i progetti) gli schemi ed i files .asm da caricare sugli ST per svolgere le 
funzioni appena discusse, perchè tu li possa pubblicare sul tuo sito.
Adesso proverò a realizzare i due programmi per lo scambio bidirezionale dei 
dati tra master e slave.
Saluti


Mi correggo.
Se si vuole effettuare una trasmissione affidabile conviewne farla su due 
fili e sfruttare comunque l'interrupt.
Se hai letto i messaggi fammi un cenno.
Saluti.


S', scusa l'ho letto ma sto ancora riflettendo. Quando io utilizzai la spi
ricordo bene
che utilizzavo un st6 come master e uno come slave linea clock, linea dati, e
una linea di busy, non ho
mai avuto problemi di errori. Stavo pensando riguardo a quello che dicevi
sulla gestione dell'irq quando
arrivano i dati sulla spi - sono certo di averlo letto sul datasheet ora ci
guardo.
Ciao, Rik.
Salvo Vivona ha scritto:

--


Bene.
Tutto nasce dal fatto di volere realizzare un sistema di acquisizione dati e
comando remoto.
Se master e slave vengono resettati allo stesso istante, ed hanno magari il 
clock in comune, nessun problema:
il master genera 8 cicli di clock (set 7,MOD)
lo slave attiva l'irq dopo 8 clock ricevuti, se bit 6,MOD=1, per dire che il 
dato sul registro SPIDSR è completo e la routine può salva il dato.
Dalle ormai numerosisime prove effettuate posso affermare che anche impiegando
un terzo filo, se si resettano separatamente master e slave il sistema perde il
sincronismo e il dato ricevuto risulta shiftato di n bit rispetto a quello 
trasmesso.
Se qualcuno mi dimostrerà il contrario cambierò mestiere (forse), intanto 
cambiarò protocollo.
Saluti
