Salve a tutti, sono 2 giorni che cerco di capire qual possa essere l'errore ma proprio non riesco a venirne a capo.
Ho realizzato un progetto FUNZIONANTE già da circa un anno su PCB stampato. Il progetto consente di leggere una scheda RFID mediante lettore RC522 e arduino Pro-Mini 3.3V.
Quindi premesso che ho più di un prototipo funzionante, ne ho realizzato un'altro. Meraviglie delle meraviglie non funziona!
Premesso che:
il software è funzionante in altro prototipo, quindi credo l'unica probabilità è un errore hardware.
ho controllato tutti i collegamenti dei Pin nella classica configurazione:
MOSI: Pin 11 / ICSP-4
MISO: Pin 12 / ICSP-1
SCK : Pin 13 / ICSP-3
SS : Pin 10
RST : Pin 9
ho controllato le saldature e la continuità di collegamento.
ho controllato le tensioni su ogni singolo Pin di arduino nel caso fosse rotta qualche porta a livello logico (realizzato sketch di controllo: Porta Alta porta bassa ad intervallo regolare).
ho preso il lettore e l'ho spostato sull'altro prototipo e funziona correttamente.
il comando di versione firmware del lettore mi risponde correttamente sul nuovo prototipo.
Non riesco a capire perchè il lettore sul prototipo nuovo non legge le card (che sull'altro prototipo vengono lette) e non so più che altro controllare. Non ha senso!
Qualcuno mi sa dire cosa posso controllare ancora?
Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentartiIN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie.
Guglielmo
P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto.
Mi vengono in mente un paio di cose ...
... Pro-Mini cinese di bassa qualità che sembra funzionare, ma invece monta una MCU fallata.
... lunghezza dei cavi SPI differente o passaggio dei cavi vicino a sorgenti di disturbo differenti.
Altrimenti, a parità di collegamenti, HW collegato e FW ... deve andare.
Guglielmo
P.S.: Magari metti una foto nitida dei due prototipi ...
Altrimenti, a parità di collegamenti, HW collegato e FW ... deve andare.
Appunto...
Ho effettivamente comprato una partita di dieci pezzi Cinese, quattro dei quali già risultano funzionanti correttamente.
Stesso difetto quando le saldature sul lettore non erano buone.
Ho provato la continuità di ogni singolo collegamento e anche il valore della tensione di livello alto e basso di questi.
Ma se fosse Fallata l'MCU perchè quelle porte vengono pilotate correttamente e il lettore mi risponde correttamente al comando:
byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);
dove v viene valorizzato con 0x92
Si presuppone che tutto sia OK.
Questa è la cosa che proprio non riesco a capire.
Mi sono ritrovato in altre situazioni dove il lettore risponde al comando e non funzionava perchè il lettore stesso era guasto!
Ma questo l'ho provato su l'altro prototipo e funziona...
Ad ogni modo ora provo a sostituire il Pro-Mini (mi sento sconfitto perchè sembra funzionare e non sono riuscito a capire la causa dell'anomalia).
Grazie ancora Guglielmo.
HaHa... la faccenda si complica... ho sostituito l' arduino e stessa anomalia!!!
Chiaramente ho solo riutilizzato i cavi di collegamento...
Ora anche se la loro continuità è buona proverò a sostituirli...
Mi sembra assurdo...
Considera che il bus SPI è un bus ad alta velocità nato per collegamenti sulla stessa scheda (... come del resto il bus I2C) e NON per essere portato in giro con cavi. Purtroppo i cavi possono introdurre ritardi, deformare i fronti di salita, introdurre capacità parassite, ecc. ecc. e ... su un bus che viaggio a frequenze dei MHz la cosa può creare problemi ... :
Guigliemo concordo pienamente con te, effettivamente cambiando cavi stessa lunghezza (20cm) e arduino il tutto funziona perfettamente, ora proverò a mettere i cavi nuovi su gl'altri due così da determinare se il problema erano i cavi o gli arduino con problemi.
RISOLTO! L'ARCANO!
Grazie Guglielmo, le tue considerazioni sono state concrete!
I cavi creavano qualche problema nonostante la continuità misurata al tester.
Ho ricollegato con piattina nuova il prototipo che non andava e tutto funziona perfettamente.
Almeno ora, dopo questa nuova sorprendente esperienza, ho determinato che non bisogna mai dare nulla per scontato! Anche se c'è continuità nei cavi nell'utilizzo del bus SPI bisogna stare molto attenti se si vuole utilizzare una piattina di cavi.
gpb01:
... la continuità, misurata con il tester, viene verificata in DC, il bus SPI di Arduno ... viaggia a 4MHz di default (2MHz se usi il clock a 8MHz)
Guglielmo
Nel mio caso con arduino pro-mini a 3.3v a 8Mhz viaggiano a 2MHz. Ad ogni modo per chi si imbattesse in tale utilizzo ho verificato personalmente che fino a 20 cm la scheda RC522 su bus SPI non crea problemi (tranne questa volta che non ho utilizzato una piattina ma ho provato con cavi parzialmente sciolti)