Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 12 novembre 12, 22:12   #1 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
c'è qualcosa che non mi convince

salve a tutti,

mi rivolgo a chi ha maggiore pazienza !!

leggendo il documento seguente:

Il protocollo seriale I2C con un PIC16F84 - Davide Bucci

trovo qualcosa che nn mi convince, per quando concerne la parte della ricezione, da nessuna parte leggo BSF I2CTRIS, SCL
ovvero da nessuna parte pone SCL come input.... chiedo se la mia osservazione è corretta?

a presto fausto
faustog_2 non è collegato   Rispondi citando
Vecchio 13 novembre 12, 00:46   #2 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
Citazione:
Originalmente inviato da faustog_2 Visualizza messaggio
...ovvero da nessuna parte pone SCL come input.... chiedo se la mia osservazione è corretta?

a presto fausto
Se guardi nel codice originale (quello postato nel link) vedrai che l'assegnazione di I/O è giusto qualche riga sopra la parte che hai estratto tu...

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Vecchio 13 novembre 12, 08:04   #3 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
okkio

attenzione mettendo ad (uno) il bit di posto SCL (zero) di I2CPORT non stai settando la porta come input, ma stai mettendo semplicemente valore alto..

bsf I2CPORT, SCL (pone valore alto !)

Quindi il dubbio rimane!

Adesso sposto l'attenzione all'accelerometro... ..perchè In questo link c'è un esempio di come usare l'accelerometro on Arduino, per il momento ho solo dato una lettura, ancora nn ho provato a metterci le mani.

Arduino & LIS302DL


dove I2C_ADDRESS dovrebbe essere 28 ..anche se nel codice non c'è la #define, l'autore spiega sopra che l'indirizzo per I2C è proprio 28

qui spiega alcune cose utili specie per la velocità 100 oppure 400 Hz

Tripple Axis Accelerometer - LIS302DL - bildr

a dopo

Citazione:
Originalmente inviato da MSchiepp Visualizza messaggio
Se guardi nel codice originale (quello postato nel link) vedrai che l'assegnazione di I/O è giusto qualche riga sopra la parte che hai estratto tu...

Michele

Ultima modifica di faustog_2 : 13 novembre 12 alle ore 08:08
faustog_2 non è collegato   Rispondi citando
Vecchio 13 novembre 12, 09:05   #4 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
Citazione:
Originalmente inviato da faustog_2 Visualizza messaggio
attenzione mettendo ad (uno) il bit di posto SCL (zero) di I2CPORT non stai settando la porta come input, ma stai mettendo semplicemente valore alto..
Infatti SCL è la linea di clock e non deve essere messa in ingresso, è il dato (SDA) che viene dichiarato come uscita durante l'operazione di scrittura e in ingresso durante la lettura del dato e la lettura del bit di ack.

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Vecchio 13 novembre 12, 12:48   #5 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
???

allora c'è qualcosa che mi sfugge.. dunque.... supponendo che ci sia il master (per esempio un Pic16F84 ) ..che decide di comunicare con lo slave il sensore LIS302DL ...dopo aver concordato l'indirizzo SAD e dopo aver preso l'ack ...inizia la vera e propria comunicazione ..che si avvale di due linee.... in cui il Mastrer deve ascoltare x entrambe.. quindi per entrambe deve avere una modalità di lettura Input, quindi mi aspetto anche

BSF TRISB, 0
oltre che
BSF TRISB,1

invece non c'è! ..non esiste nel codice sorgente!

In teoria il master dovrebbe ascoltare su entrambe le linee, quindi modalità Input per entrambe. Appena arriva un fronte di salita sulla SCL ...allora prende per buono il valore :alto, basso che legge nella SDA.

..dalla tua risposta intuisco ...di non aver capito qualcosa da questo protocollo!


Citazione:
Originalmente inviato da MSchiepp Visualizza messaggio
Infatti SCL è la linea di clock e non deve essere messa in ingresso, è il dato (SDA) che viene dichiarato come uscita durante l'operazione di scrittura e in ingresso durante la lettura del dato e la lettura del bit di ack.

Michele
faustog_2 non è collegato   Rispondi citando
Vecchio 13 novembre 12, 13:03   #6 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
OKkio

rileggendo il sorgete in ASM e la tua risposta ho dedotto il funzionamento corretto.. dunque Il master legge dalla SDA solo dopo aver scritto sulla SCL un bit Alto (uno) .. come dire.... DAMMI UN BIT DEL BYTE DA RICEVEREEEE !

per cui è essenziale che SCL sia di uscita per il master , mentre l'SDA di ingresso.. in questo modo si spiega il perchè..

spero d'aver centrato il concetto ..purtroppo usando le classi pronte di Arduino queste cose non si imparano, rimangono concetti inesplorati...

a dopo
fausto


Citazione:
Originalmente inviato da faustog_2 Visualizza messaggio
allora c'è qualcosa che mi sfugge.. dunque.... supponendo che ci sia il master (per esempio un Pic16F84 ) ..che decide di comunicare con lo slave il sensore LIS302DL ...dopo aver concordato l'indirizzo SAD e dopo aver preso l'ack ...inizia la vera e propria comunicazione ..che si avvale di due linee.... in cui il Mastrer deve ascoltare x entrambe.. quindi per entrambe deve avere una modalità di lettura Input, quindi mi aspetto anche

BSF TRISB, 0
oltre che
BSF TRISB,1

invece non c'è! ..non esiste nel codice sorgente!

In teoria il master dovrebbe ascoltare su entrambe le linee, quindi modalità Input per entrambe. Appena arriva un fronte di salita sulla SCL ...allora prende per buono il valore :alto, basso che legge nella SDA.

..dalla tua risposta intuisco ...di non aver capito qualcosa da questo protocollo!

Ultima modifica di faustog_2 : 13 novembre 12 alle ore 13:06
faustog_2 non è collegato   Rispondi citando
Vecchio 13 novembre 12, 13:20   #7 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
LIS302DL & Pic

di seguito c'è la codifica per far comunicare un Pic16F88 con il LIS302DL, ovviamente tale sorgente può essere trasportato su qualunque Pic equivalente. Comuque dal sorgente si possono conoscere i dettagli per la comunicazione con il sensore http://www.sparkfun.com/datasheets/S...2DL-Tester.zip


qui c'è il link della sparkfun per LIS302DL:
https://www.sparkfun.com/products/8658?

Ultima modifica di faustog_2 : 13 novembre 12 alle ore 13:29
faustog_2 non è collegato   Rispondi citando
Vecchio 13 novembre 12, 14:52   #8 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
Citazione:
Originalmente inviato da faustog_2 Visualizza messaggio
rileggendo il sorgete in ASM e la tua risposta ho dedotto il funzionamento corretto..
...spero d'aver centrato il concetto ..purtroppo usando le classi pronte di Arduino queste cose non si imparano, rimangono concetti inesplorati...
Fausto, invece di dedurre e supporre c'è un altro sistema per imparare le cose: studiarle! Sul sito NXP trovi tutta la documentazione sul bus I2C, ma un minimo di base su cosa sono una comunicazione sincrona ed una asincrona ci vuole!!!!

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
I2C - lezione faustog_2 Circuiti Elettronici 1 13 marzo 12 20:36
I2C - lezione faustog_2 Circuiti Elettronici 3 23 febbraio 12 11:06
I2C PIC SLAVE LeoPG Circuiti Elettronici 1 17 febbraio 05 19:51



Tutti gli orari sono GMT +2. Adesso sono le 09:25.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002