Ciao a tutti, in un mio progettino piloto con la stessa SPI un enc28j60 e un port expander(MCP28S08), il tutto con un PIC24H.
Il tutto funziona, o quasi...quasi perché per farlo funzionare devo mettere una resistenza di pull-down sulla linea MISO, se non la metto l'enc non funziona a dovere, a volte va a volte no(lo vedo perché pingo continuamente la scheda, e senza resistenza a volte il ping fallisce, col la resisetnza invece va sempre bene), mentre il port expander funziona sempre.
Se uso una resistenza di pull-up invece l'enc non va mail!
Ora, mi chiedevo come mai è necessario mettere questa resistenza, potrebbe essere il circuito mal progettato e con disturbi qua e là?
Leggendo in rete ho visto che solitamente si mette una resistenza di pull-up su MOSI e MISO, non di pull-down...
SPI, perché devo usare una resistenza di pull-down?
Moderatore:
Paolino
12 messaggi
• Pagina 1 di 2 • 1, 2
0
voti
PIC24H e MISO.. Sono io che faccio confusione o MISO (Master Input - Slave Output) è nomenclatura adottata sui micro AVR, come ad esempio si legge dalla AN AVR151.
Questi due PDF possono essere di aiuto.
PIC24H Family Datasheet.
PIC24H Overview Book.
Probabile, come anche il codice del firmware.
Questi due PDF possono essere di aiuto.
PIC24H Family Datasheet.
PIC24H Overview Book.
blow ha scritto:potrebbe essere il circuito mal progettato e con disturbi qua e là?
Probabile, come anche il codice del firmware.
0
voti
Suggerimento.
Visto che implementare una SPI software pilotando direttamente le uscite e leggendo l' ingresso (oggi si chiama bit banding o qualcosa del genere) implementate la SPI mediante software (il sorgente è semplice, banale direi) utilizzando gli stessi pin della SPI poi, quando tutto funziona, si può pensare di usare la SPI del micro (i piedini sarebbero gli stessi).
In questo modo si ha tutto sotto controllo,la sequenza dei segnali la si sceglie in modo puntuale e poi ... non è detto che non basti. Di solito basta l' implementazione software... capisciammè
Poi fate un po' come volete.
Visto che implementare una SPI software pilotando direttamente le uscite e leggendo l' ingresso (oggi si chiama bit banding o qualcosa del genere) implementate la SPI mediante software (il sorgente è semplice, banale direi) utilizzando gli stessi pin della SPI poi, quando tutto funziona, si può pensare di usare la SPI del micro (i piedini sarebbero gli stessi).
In questo modo si ha tutto sotto controllo,la sequenza dei segnali la si sceglie in modo puntuale e poi ... non è detto che non basti. Di solito basta l' implementazione software... capisciammè
Poi fate un po' come volete.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
gohan ha scritto:PIC24H e MISO.. Sono io che faccio confusione o MISO (Master Input - Slave Output) è nomenclatura adottata sui micro AVR, come ad esempio si legge dalla AN AVR151.
Questi due PDF possono essere di aiuto.
PIC24H Family Datasheet.
PIC24H Overview Book.blow ha scritto:potrebbe essere il circuito mal progettato e con disturbi qua e là?
Probabile, come anche il codice del firmware.
Ho detto MISO perché il dispositivo che uso per la parte ethernet, cioè questo ha la dicitura MISO nel pin dove io ho aggiunto la resistenza di pull-down.
Io ho collegato il pin SDI del PIC a quel pin, che il rispettivo SDO dell'ENC, come è giusto che sia.
Il firmware è fatto bene, ho dubbi sull'elettronica.
Ho notato che l'ENC funziona bene anche se scollego l'MCP dall'alimentazione, nota bene, dall'alimentazione, se lo scollego solo dal bus SPI i problemi rimangono, quindi potrebbe essere un problema dell'alimentazione?
Vi ringrazio
0
voti
TardoFreak ha scritto:Suggerimento.
Visto che implementare una SPI software pilotando direttamente le uscite e leggendo l' ingresso (oggi si chiama bit banding o qualcosa del genere) implementate la SPI mediante software (il sorgente è semplice, banale direi) utilizzando gli stessi pin della SPI poi, quando tutto funziona, si può pensare di usare la SPI del micro (i piedini sarebbero gli stessi).
In questo modo si ha tutto sotto controllo,la sequenza dei segnali la si sceglie in modo puntuale e poi ... non è detto che non basti. Di solito basta l' implementazione software... capisciammè![]()
Poi fate un po' come volete.
Non ne capisco il motivo....l'SPI funziona benissimo, uso un logic analyzer per quello, i segnali sono corretti, ma probebailmente il logic analyzer filtra qualche disturbo, oppure è meno sensibile e gli va bene anche segnalo più debole, quindi non vedo problemi hardware.
Il software funziona.
0
voti
Ho notato che disconnettendo il pin SO dell'MCP tutto torna a funzionare correttamente, quindi sembra che l'MCP sporchi il segnale, anche quando il rispettivo slave select è disabilitato. È normale questo?
0
voti
La SPI che è inizializzata? Per comunicazione a due o tre fili?
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
Ciao la SPI è inizializzata per comunicazione 2 fili, per inizializzarla uso la libreria spi.h del compilatore microchip C30.
Aggiungo lo schema(è fatto in paint prendendo i pezzi dai vari datasheet...scusatemi
)

Non gli ho messi, ma comunque nei pin dell'alimentazione del PIC ho messo anche un paio di condensatori per disaccoppiamento, e il tutto è alimentato dalla medesima linea 3.3V(per ora forniti dal PICkit 3).
Aggiungo lo schema(è fatto in paint prendendo i pezzi dai vari datasheet...scusatemi

Non gli ho messi, ma comunque nei pin dell'alimentazione del PIC ho messo anche un paio di condensatori per disaccoppiamento, e il tutto è alimentato dalla medesima linea 3.3V(per ora forniti dal PICkit 3).
0
voti
Non e` che le due uscite SO vanno in alta impedenza e l'ingresso del PIC prende rumore che per qualche ragione gli da` fastidio?
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
0
voti
In teoria con il rispettivo slave select disabilitato devono andare in alta impedenza in modo da non dare fastidio all'altra linea, giusto?
Comunque ho notato anche che se stacco il logic analyzer(uso un saleae logic), funziona bene anche senza resistenza di pull-down, se lo attacco invece la devo mettere!
Questo mi fa pensare che c'è sicuramente del rumore e il segnale non è affidabile mi sa, non avendo un oscilloscopio perà non riesco ad individuare la fonte.
Sto facendo un po' di prove inserendo altri condensatori di disaccoppiamento, spostandoli, mettendo resistenze di pull-up ecc, ma per ora l'unica cosa che ha risolto il problema è la resistenza di pull-down, solo che non capendo il perché la devo mettere mi risulta un po' strano...
PS. per ora il prototipo è su breadbord, non so se conta qualcosa
Comunque ho notato anche che se stacco il logic analyzer(uso un saleae logic), funziona bene anche senza resistenza di pull-down, se lo attacco invece la devo mettere!
Questo mi fa pensare che c'è sicuramente del rumore e il segnale non è affidabile mi sa, non avendo un oscilloscopio perà non riesco ad individuare la fonte.
Sto facendo un po' di prove inserendo altri condensatori di disaccoppiamento, spostandoli, mettendo resistenze di pull-up ecc, ma per ora l'unica cosa che ha risolto il problema è la resistenza di pull-down, solo che non capendo il perché la devo mettere mi risulta un po' strano...
PS. per ora il prototipo è su breadbord, non so se conta qualcosa
12 messaggi
• Pagina 1 di 2 • 1, 2
Torna a Realizzazioni, interfacciamento e nozioni generali.
Chi c’è in linea
Visitano il forum: Nessuno e 9 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

