| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  27-06-2012, 22:38 | #1 | 
| Junior Member Iscritto dal: Feb 2010 Città: CR 
					Messaggi: 2
				 | 
				
				giroscopio SPI
			 
		Ciao a tutti progettando un sistema di controllo attivo per un aeromodello è giunto il momento di pensare ai sensori.. Il giroscopio che ho prescelto sarebbe SPI oppure I²C, che vorrei utilizzare usando un microcontrollore PIC. Ora... ho programmato qualche pic finora e di protocolli so poco - nulla e wikipedia non mi chiarisce del tutto le idee.. Qualcuno saprebbe aiutarmi? Dunque, quel che mi sembra di aver capito e' che (SPI) 1) il gyro e' il mio slave, il micro e' il master 2) il micro da un impulso sul clock, il gyro risponde sul piedino MISO, che col micro posso leggere. Così ho un bit alla volta e quando arriva a 8 passa direttamente al successivo canale (asse nel caso del giroscopio) Ma... Allora a cosa serve il piedino MOSI?? Ed il CS? mi sembra arabo   Giusto per farvi capire, il giroscopio e' questo(datasheet inside): http://it.rs-online.com/web/p/accelerometri/7428666/ Ma secondo voi conviene usare il protocollo I2C o SPI? | 
|   |   | 
|  27-06-2012, 23:54 | #2 | ||
| Senior Member Iscritto dal: Jan 2006 Città: Vergate Sul Membro (MI) 
					Messaggi: 16538
				 | Quote: 
 in linea generale il pic dovrebbe avere un buffer di 8/16 bit per la trasmissione e 8/16 bit per la ricezione. Il segnale di clock serve per pilotare lo scorrimento dei bit nel buffer. La fase di lettura e scrittura vengono eseguite "contemporaneamente" ( il bus è sincrono ) Quando usi il device inserisci una word nel buffer, e questa viene trasmessa al device. Per ogni bit trasmesso al device, il master riceve un bit. Questo significa che per realizzare una lettura del device devi inviare due comandi. Il primo impartisce l'ordine di lettura e durante la sua trasmissione viene ricevuta una word priva di significato che va scartata. Il secondo comando è un comando fittizio, e durante la sua trasmissione viene ricevuto il valore richiesto. Questa pratica apparentemente inefficiente serve per il pipelining dei comandi, perché permette di impartire una sequenza di comandi senza soluzione di continuità. Il segnale cs ad attivare il device. Il protocollo spi prevede infatti configurazioni multi punto, e quindi un master può gestire più slave. In questo caso i differenti device ignorano i comandi trasmessi sul bus a meno che non ricevano il segnale CS sulla loro porta. Quote: 
 i confronti tra i due protocolli li trovi un po ovunque, ad esempio qui: http://www.byteparadigm.com/kb/article/AA-00255/ | ||
|   |   | 
|  28-06-2012, 10:53 | #3 | |
| Moderatore Iscritto dal: Nov 2006 
					Messaggi: 21833
				 | Quote: 
 imho ti conviene usare quella è facilissima da usare come interfaccia la spi è fatta da 4 linee CS , mosi, miso e clk clk è il clock un onda quadra emessa dal master (il micro) cs o chip select è la linea che attiva / disattiva la periferica, è attiva bassa e devi abbassarla quando vuoi parlare con il giroscopio ( serve per configurazioni multislave in cui hai più periferiche collegate in parallelo alla spi, usando cs puoi scegliere quale periferica deve essere attiva in un determinato momento) se il giroscopio è l'unica periferica che parla sulla spi piantala a massa con una resistenza di pulldown ora vediamo alla parte di comunicazione la spi è una periferica full duplex simmetrico quindi per leggere un byte dalla spi devi scrivere un byte sulla spi, e una volta fatto quello ti troverai il dato letto devi guardare il datasheet del tuo giroscopio per vedere se implementa un protocollo di comunicazione o meno ma alla fine usare la spi è facilissimo, se non implementa nessun protocollo scrivi qualche byte sulla spi e leggerai i dati dal sensore, non ho mai lavorato con i pic ma alla fine di solito la scrittura sulla spi si limita ad abilitare la periferica e poi scrivere un byte sul registro, controllare il flag di fine trasmissione e recuperare dal registro di lettura il valore, se hai problemi chiedi pure 
				__________________ "WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 Ultima modifica di !fazz : 28-06-2012 alle 10:59. | |
|   |   | 
|  28-06-2012, 15:56 | #4 | 
| Junior Member Iscritto dal: Feb 2010 Città: CR 
					Messaggi: 2
				 | 
		Aaaah, ora tutto inizia ad avere senso! Grazie mille ad entrambi per le spiegazioni!!   | 
|   |   | 
|  28-06-2012, 16:04 | #5 | 
| Moderatore Iscritto dal: Nov 2006 
					Messaggi: 21833
				 | 
		
di niente se hai problemi con la spi chiedi pure ho messo la notifica al thread non dovrebbe sfuggirmi, comunque calcola che è un interfaccia di una banalità allucinante, ad esempio l'anno scorso l'ho dovuta emulare completamente via sw a causa di un errore di progettazione (un modulo che non rilasciava il cs ) e non ha fatto una piega, un lavoretto di mezzora
		 
				__________________ "WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 06:33.









 
		 
		 
		 
		

 
			






 
  
 



 
                        
                        










