SB ( snipped-for-privacy@tin.it) ha scritto:
::: Dopo che ST7540 mi ha richiesto i dati tramite SPI, potrei ::: usare delle porte di trasmissione per inibire la SPI verso ::: ST7540 e comunicare con l'altro chip.
:: No, non puoi, primo perchè sei lo slave, secondo perchè :: quella non è una SPI classica, ma un'altra cosa. :: Infatti se guardi la fig.8 a pag 21 ti fa vedere un segnale :: chiamato RxTx che influenza la direzione dei dati. :: :: Questo significa che ti devi fare una gestione software della :: comunicazione e usare i pin Rxd e Txd insieme a RxTx e :: Clr_T.
RxTx è semplicemente un segnale che dice al ST7540 se voglio trasmettere i dati sulla powerline o li voglio ricevere dalla stessa (vedi pag. 5).
Da quanto ho capito, la SPI offre una comunicazione full duplex poiché ha il clock e le due linee TX e RX. In questo caso non è possibile farlo poiché il canale di trasmissione (la linea elettrica) consente comunicazione half duplex. Ecco spiegata, a mio avviso, la presenza di quel ulteriore pin RxTx che va gestita dal micro.
In definitiva il ST7540 è master in maniera fittizia perché in realtà è il micro a decidere la direzione (Rx o Tx) della comunicazione, che ne pensi?
Magari possiamo dire che ST7540 è master perché scandisce il clock della trasmissione...
:: Una SPI standard usa solo 3 pins MISO MOSI e SCK, quella :: del ST7540 difatti viene chiamata comunicazione sincrona, :: che significa con un segnale di clock o sincronismo, non una :: SPI standard.
Se il segnale di clk in questo caso è CLR_T da dove ne deduco la frequenza (non la trovo sul datasheet)?
:: No, devi fare come ti ho scritto sopra e soprattutto leggere :: attentamente il datasheet. :: Leggere la documentazione più volte finchè non ti è tutto :: chiaro può sembrare tempo perso, poi quando le cose non :: funzionano di tempo ne perdi molto di più per farle andare.
Ti ringrazio per l'interessamento e per i consigli, sei stato molto chiaro nelle spiegazioni. Leggerò attentamente il datasheet più e più volte come mi hai consigliato.
L'applicazione che devo sviluppare prevede la ricezione di dati dalla linea tramite ST7540 verso il micro. Poi dalla linea elettrica si attende la risposta del micro e non vi è trasmissione ulteriore di dati. Il micro acquisisce i dati da altro dispositivo tramite SPI e li invia al ST7540.
Ecco perché mi serve poter comunicare in SPI con due dispositivi. L'altro dispositivo prevede l'inibizione della SPI tramite CS, quindi non mi da problemi.
Io uso un ATmega8 della atmel, pertanto dispongo di una USART e di una SPI: come ti ho detto l'USART mi serve per il debug e di SPI ne ho una sola.
Se una volta ricevuto il dato dal ST7540 tramite SPI, tengo il micro in modo ricezione RxTx = 1, posso in qualche modo usare la stessa SPI (magari con aggiunta di hardware esterno: porte o buffer 3state) per comunicare con l'altro dispositivo in SPI?